命令行入门

给自己弄一个bash环境

本文所使用的系统为Linux,如果你是macOS,大多命令是相通的,你不必担心;如果你使用的是Windows 10,你可以参照此篇博客,不到10分种为你的win10安装一个Linux子系统,如果你是win8/win7/winxp,你可以参考此篇文章使用带有模拟bash环境的命令行终端。

命令行释义

打当你打开你的命令行,通常是这样的

1
user@PC:~$ 

1
2
user@PC ~ 
$
  1. user 指你当前登陆的账户的用户名。
  2. PC 是指你当前登陆的主机名。
  3. ~ 指当前你处在的目录,~代表你处在你的用户目录下。
  4. $ 指示你可以在其后输入命令并执行,并无实际意义,在部分Linux中,此符号为#

通常我们需要在命令后输入使用文件路径进行操作,而文件路径中分为绝对路径相对路径,我们首先要理清这两者的概念。

  1. 绝对路径
    指该文件/文件夹真实的文件路径,在windows中,我们在经常看见的"C:\Program Files\Adobe\Adobe Photoshop CC 2018"就是绝对路径。而在Linux中,没有盘符的概念,只有一个根目录/,在根目录下拥有许多分区,常见的路径是这样的/home/geylun/bilibili,因此在Linux中你可以认为以/开头的路径即是绝对路径。

  2. 相对路径
    相对路径其实只是绝对路径一种缩减的写法,方便我们进行路径输入,比如我总喜欢在我/home/geylun/下做各种操作,我不可能每次都在参数后面跟这一大串路径,相对路径这个办法就出来了,我用.代表当前目录,..代表当前目录的上级目录,~代表我的用户目录,这样在我的文件夹进行各种操作的时候,就只用输入~

命令释义

查看

  • cd
    改变你当前的工作目录,这样你可以以相对路径来更方便的输入路径,并且许多命令也只对当前工作目录生效。
    如果目录太长,你可以按TAB键自动补全路径。

  • pwd
    列出你当前目录的绝对路径

  • ls
    列出当前目录里的文件及文件夹。
    可选参数

    • -a 显示所有文件(包括以.开头的隐藏文件)
    • -l 显示详细信息,包括权限、所有者、创建时间
    • -R 递归的列出所有文件及其所在目录(tree更好)
  • tree
    以树状图的方式展示当前目录结构及文件

    • -a 显示所有文件
      如果你没有此命令,Linux系统可以输入sudo apt-get install tree安装tree工具。
  • cat
    从文件中读入字符并打印到屏幕上
    有很多参数可选,你可以参照菜鸟教程

创建

注意,命令行是以空格等标记分割参数,如果你输入的文件名包含空格,你最好使用""包裹它。

  • touch
    如果文件不存在则创建文件,如存在则以当前系统时间修改时间属性

  • echo
    回声,输入什么就输出什么
    echo是一个很有趣的命令,你输入什么它就输出什么,使用>重定向就能以指定的文本内容创建文件,例如

    1
    $ echo "Hello world" >init.txt

    这样就可以创建一个内容为”Hello world”的文件
    每次重新执行会覆盖之前的内容
    如果你想追加内容,而不是覆盖原文件,可以这样做

    1
    $ echo "QAQ" >>init.txt

    文本内容就会变成
    Hello world QAQ
    事实上你可以使用>把任意的标准输出都重定向到新的文件中。

  • cp
    复制文件到另一个文件,如果另一个文件不存在则创建。

    1
    $ cp init.txt init.txt.backup

    这样就会创建一个init文件的复制。

  • mkdir
    创建一个目录
    可选参数

    • -p 确保目录存在,不存在就创建一个

修改

  • mv
    修改文件/文件夹路径,你可以使用此命令进行重名名、移动、覆盖等
    比如修改名称

    1
    $ mv init.txt hello.txt

    可选参数

    • -i 如果目标文件存在就询问是否覆盖(默认直接覆盖)
    • -u 若目标文件已经存在,且源文件更新时,才进行覆盖。
  • rm
    删除文件
    可选参数

    • r递归删除,如果文件夹中还有文件夹,会一直查询到没有新的目录为止,然后一个个删除文件夹和文件
    • r不要询问、警告我。
      使用rm -rf请再三小心!
  • vim
    命令行界面的文字编辑器,你可以使用输入vimtutor查看它的自带教程。

杂项

  • clrar
    清屏

  • history
    查看命令输入历史

命令行技巧

快捷键

  • TAB 提示命令及补全路径
  • / 上一条下一条命令
  • ALT+. 上一个命令的最后一个参数
  • !! 上一条命令占位符

修改~/.bashrc

可以再.bashrc中添加命令,这些命令会在终端打开时自动执行这些命令
你可以添加

1
$ cd ~/Desketop

自动跳转到桌面

1
alias la='ls -a'

la 定义为'ls -a'

你还可以在这里定义环境变量,这些环境变量会影响到具体命令的执行

1
export SASS_BINARY_SITE="https://npm.taobao.org/mirrors/node-sass"