详情参考:文章
1. pwd
print working directory: 打印当前工作目录
2. cd
change directory: 修改当前的文件目录
cd // 打开命令行的默认目录(MacOS中~指的是/Users/username)
cd ~ // 打开默认目录
cd / // 打开根目录
cd .. // 打开上级目录
3. mkdir
make directory: 在当前工作目录下新建子文件夹
-
-p: --parent 创建一个可嵌套的多层文件目录
-
-v: --verbose 显示详细信息
mkdir dir1 dir2 dir3 // 同时创建3个同级子文件夹 mkdir -p dir4/dir5 // 创建一个子文件夹dir4,其中dir5为dir4的子目录 mkdir -v dir6 // 输出创建后的详细信息 mkdir "dir7 dir8" // 创建一个子文件夹,名字中间有空格 mkdir dir9\ dir10 // 通过转义字符,创建一个子文件夹,名字中间有空格
其中其他的文件夹全部为空。
4. ls 文件目录
list: 列举出指定目录下所有的文件和文件夹
ls // 列举当前目录
ls dir1 // 列举dir1目录下所有文件和文件夹
ls dir1 dir2 // 同时列出dir1和dir2目录下的内容
- -a 同时展示出隐藏文件和隐藏文件夹
隐藏文件/文件夹: 以
.
开头的文件或者文件夹。
5. > 文件名
redirect:将签名的命令结果写入到后面指定的文件中。
该文件不存在则创建一个;已存在则清空文件中的内容后再写入
ls > output.txt // 将ls的显示内容输出到output.txt中
6. >> 文件名
append to: 在指定的文件中追加内容。
7. echo 内容
echo: 回显。将内容重新打印出来。
可以和(>)命令一起使用。
echo "This is 1" > test_1.txt
echo "This is 2" > test_2.txt
echo "This is 3" > test_3.txt
8. cat 文件名(可多个)
concatenate: 连接。显示命令后的所有文件的内容(所有内容依次组成一个整体)
如果只有一个文件,则直接显示其内容。
cat test_1.txt
cat test_1.txt test_2.txt test_3.txt
-
?表示任一单个字符
cat test_?.txt // 同cat test_1.txt test_2.txt test_3.txt
-
- 表示0个或者多个字符
cat test* // 同cat test_1.txt test_2.txt test_3.txt
和(>)一起使用,可以实现将多个文件的内容拼接输出到一个文件中
cat test* > 4.txt
9. less 文件名
less: 少量。当内容过多时,分页显示一页内容。可通过箭头查看更多内容。
less 4.txt
10. mv 文件/文件目录(已存在) 文件目录(可以不存在)
move: 移动,可理解为剪切。
mv 4.txt dir1
mv dir1/* dir2
mv dir2/* . // .表示当前目录
mv 4.txt .. // ..表示上级目录
mv dir1 dir2 .. // mv可以移动多个文件或者目录;最后一个参数是目的目录
重命名: 当mv的参数类型相同时,即同时为文件目录或者同时为文件名
mv dir1 dir_one // 相当于将dir1的名称重命名为dir_one
mv 1.txt 2.txt // 相当于将1.txt重命名为2.txt
11. cp
copy: 复制。mv的用法适用于cp, 但是效果是复制。
另外,还有其他额外用法。
cp 4.txt 4_backup.txt // 复制4.txt且重命名为4_backup.txt
当mv的参数都是文件目录时,同cp重命名的操作。
12. rm 文件名 文件名
remove: 删除具体的文件;不能删除文件目录
rm 4.txt 4_backup_txt
- -r 递归删除目录内所有内容(文件+文件夹)
recursively: 递归遍历删除所有内容。⚠️
rm -r dir1 // dir1内部嵌套文件和文件夹
13. rmdir 文件目录
remove directory: 删除文件目录
目录必须是空目录(即文件夹为空)
rmdir dir1 dir2 // 删除两个目录
rmdir dir* // 删除正则匹配的目录
- -p 删除嵌套文件目录
parents: 本质上依次(从右向左)删除空文件目录,如果其中一个不是空目录,删除失败
rmdir -p dir1/dir2/dir3 // 依次删除dir3->dir2->dir
14. wc 文件名
word count: 查看文件内部含有的字符数
wc 1.txt
- -l 查看文件含有的行数
wc -l 1.txt
15. 命令 | 命令
| : 管道字符
用于两个命令之间,将前一个命令输出结果,直接用于第二个命令。避免了临时文件的创建。
ls ~ | wc -l // 查看默认目录下所有的文件输出结果的行数
16. uniq 文件名
uniq: 去重。
➜ ls ~ > 1.txt
➜ echo "this is a test" >> 1.txt
➜ echo "this is a test" >> 1.txt
➜ echo "this is a test" >> 1.txt
➜ wc -l 1.txt
18 1.txt
➜ uniq 1.txt | wc -l
16
➜ ls >> 1.txt
➜ echo "this is a test" >> 1.txt
➜ echo "this is a test" >> 1.txt
➜ uniq 1.txt | wc -l
18
注意:uniq并不是完整意义上的去重,根据上面的示例可知,它只能去重相连的文本。
17. man 命令
manual: 手册。对命令的解释说明。
man uniq
结果如下:
由description可知,uniq只能去重相连的文本。
18. sort 文件名
sort: 排序。对文件内容进行排序。
针对上面uniq的问题,通过该命令可以解决。
➜ sort 1.txt | uniq | wc -l
17
19. sudo 命令
switching user and do this command: 以管理员身份运行后面的命令
sudo apt install tree
20. apt install 包名
sudo apt install tree // 以管理员身份安装tree
21. tree
使用该命令的前提是安装了tree。
tree: 展示当前目录的内部树状结构(目录树)
➜ tree
.
├── 1.txt
├── dir1
│ └── dir2
└── dir2
└── dir21
└── dir221
- -a 树中包含隐藏文件和文件夹