开始这篇内容之前,读者需要:
- 了解终端、Shell、CLI 等;
- 理解文件和目录的概念;
控制程序运行的命令行参数的一个惯例
观察下面这两条命令:
gcc test1.c -o test1
apt list --upgradable
这里的“list
”“--upgradable
”都是传递给“apt
”程序的参数;更进一步讲,带有横线的“--upgradable
”是用来修饰“list
”命令的。
另外,第一条命令中的“-o
”和下一条命令的“--upgradable
”,前者前边有一根短横线(连字符),后边只跟了一个字母(通常可能为某单词的首字母);后者前边有两根短横线,其后的则是一个完整的单词。这是命令行参数的一个惯例。
再如下面这个命令里,“-Syu
”中的“S
”“y
”“u
”各有含义,且小写的“y
”“u
”为修饰“S
”命令的参数。
pacman -Syu
下面这个命令里的“cvf
”也是类似的道理,三个字母分别指明了操作的三个属性。
jar cvf app1.jar app1
实用技巧
- 自动补全
在敲出 文件/目录/命令 的前几个字母之后,按下 Tab
键,如果输入的没有歧义,系统会自动补全。
如果还存在其他 文件/目录/命令,再按一下 Tab
键,系统会提示可能存在的命令
- 曾经使用过的命令
按键盘上的 上/下 方向键,可以在曾经使用过的命令之间切换。
Linux 基本命令
这里只介绍简单的几个命令,更详细的需要读者自行查找资料。
- 查看目录内容
ls
- 切换目录
cd
- 创建和删除操作
touch
、rm
、mkdir
- 拷贝和移动文件
cp
、mv
ls:列出目录的内容
ls
是英文单词 list 的简写,其功能为列出目录的内容,是用户最常用的命令之一,类似于 DOS 下的 dir
命令
参数 | 含义 |
---|---|
-a | 显示指定目录下所有子目录与文件,包括隐藏文件 |
-l | 以列表方式显示文件的详细信息 |
-h | 配合 -l 以人性化的方式显示文件大小 |
Linux / Unix 操作系统下,以“.
”开头的文件为隐藏文件,需要用 -a
参数才能显示
$ ls -a # 显示目录下的所有文件/目录
$ ls -a -l # 以列表方式显示目录下的所有文件/目录的详细信息
cd:切换目录
cd
是英文单词 change directory 的简写,其功能为更改当前的工作目录,也是用户最常用的命令之一。
.
代表当前目录,..
代表上一级目录,~
代表用户的家目录
注意:Linux 所有的 目录 和 文件名 都是大小写敏感的
$ cd .. # 切换到上级目录
命令 | 含义 |
---|---|
cd ~ |
切换到当前用户的主目录(家目录,亦即/home/用户名 ) |
cd . |
保持在当前目录不变 |
cd .. |
切换到上级目录 |
cd - |
可以在最近两次工作目录之间来回切换 |
相对路径和绝对路径
相对路径:在输入路径时,最前面不是 /
或者 ~
,表示相对 当前目录 所在的目录位置
绝对路径:在输入路径时,最前面是 /
或者 ~
,表示从 根目录 / 家目录 开始的具体目录位置
pwd:查看当前目录
直接在终端中执行 pwd
,即可获得当前目录的路径。
pwd
使用输出重定向创建文件
我们可以用输出重定向的方式新建一个文件。
echo "" > hello.txt
上述的命令将会输出空内容到“hello.txt”文件,如果文件不存在,则将会创建一个新文件;如果文件已存在,则将覆盖掉文件原有的内容。
mkdir:创建一个新的目录
新建目录的名称不能与当前目录中已有的目录或文件同名
$ mkdir workspace
$ cd workspace
$ cd ..
rm:删除文件或目录
使用 rm 命令要小心,因为文件删除后不能恢复
选项 | 含义 |
---|---|
-f |
强制删除,忽略不存在的文件,无需提示 |
-r |
递归地删除目录下的内容,删除目录 时必须加此参数 |
-v |
可以显示出该命令具体执行了哪些操作 |
拷贝和移动文件
命令 | 对应英文 | 作用 |
---|---|---|
cp 源文件 目标文件 |
copy | 复制文件或者目录 |
mv 源文件 目标文件 |
move | 移动文件或者目录/文件或者目录重命名 |
参考链接:文件和目录常用命令 - davidabdy - 博客园 (cnblogs.com)
PowerShell
上述提到的命令,在 PowerShell 中也是基本适用的。
相关内容
《Advanced Bash-Scripting Guide (高级Bash脚本编程指南)》中文版:链接中有原文地址,也有项目的Github地址