开始这篇内容之前,读者需要:
- 了解终端、Shell、CLI 等;
- 理解文件和目录的概念;
控制程序运行的命令行参数的一个惯例
观察下面这两条命令:
gcc test1.c -o test1apt 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地址
