在liunx中可能有几百个命令,最常用的就10多个。
liunx中最常用的命令
- ls
- 功能
- 使用说明
- 案例
- pwd
- 功能
- 使用说明
- 案例
- cd
- 功能
- 使用说明
- 案例
- mkdir
- 功能
- 使用说明
- 案例
- touch
- 功能
- 使用说明
- 案例
- rm
- 功能
- 使用说明
- 案例
- cp
- 功能
- 使用说明
- 案例
- mv
- 功能
- 使用说明
- 案例
- clear
- 功能
- 使用说明
- 案例
- tree
- 功能
- 使用说明
- 案例
- cat
- 功能
- 使用说明
- 案例
- echo
- 功能
- 使用说明
- 案例
- grep
- 功能
- 使用说明
- 案例
- 重定向
- >
- >>
- 管道
- 功能
- 使用说明
- 案例
ls
功能
查看目录有哪些内容,全称list
使用说明
代码语言:javascript复制ls [待查看的目录] [参数]
待查看的目录:非必填的选项,一般情况下都是看当前目录,可省去;非当前目录时,需要指定要查看的目录。 参数:包含是否包含隐藏文件,是否显示文件的权限、大小、修改时间等,常用的有 -a表示包含隐藏文件 -lh表示查看文件的权限、修改时间、大小
案例
- 查看当前目录
host@localhost getting-started % ls
Dockerfile app mkdocs.yml
Jenkinsfile build.sh requirements.txt
LICENSE docker-compose.yml yarn.lock
README.md docs
- 包含隐藏文件
host@localhost getting-started % ls -a
. .gitignore build.sh
.. Dockerfile docker-compose.yml
.DS_Store Jenkinsfile docs
.dockerignore LICENSE mkdocs.yml
.git README.md requirements.txt
.github app yarn.lock
- 显示文件权限、大小、修改时间
host@localhost getting-started % ls -lh
total 88
-rw-r--r-- 1 host staff 1.0K 8 28 2021 Dockerfile
-rw-r--r-- 1 host staff 535B 8 28 2021 Jenkinsfile
-rw-r--r-- 1 host staff 11K 8 28 2021 LICENSE
-rw-r--r-- 1 host staff 1.6K 8 28 2021 README.md
drwxr-xr-x 7 host staff 224B 8 8 22:48 app
-rwxr-xr-x 1 host staff 253B 8 28 2021 build.sh
-rw-r--r-- 1 host staff 167B 8 28 2021 docker-compose.yml
drwxr-xr-x 8 host staff 256B 8 8 22:48 docs
-rw-r--r-- 1 host staff 1.9K 8 28 2021 mkdocs.yml
-rw-r--r-- 1 host staff 105B 8 28 2021 requirements.txt
-rw-r--r-- 1 host staff 86B 8 28 2021 yarn.lockpowershell
- 显示隐藏文件和文献信息
host@localhost getting-started % ls -alh
total 120
drwxr-xr-x 18 host staff 576B 2 6 2022 .
drwxr-xr-x 131 host staff 4.1K 8 20 22:49 ..
-rw-r--r--@ 1 host staff 6.0K 8 8 22:48 .DS_Store
-rw-r--r-- 1 host staff 12B 8 28 2021 .dockerignore
drwxr-xr-x 13 host staff 416B 8 28 2021 .git
drwxr-xr-x 3 host staff 96B 8 28 2021 .github
-rw-r--r-- 1 host staff 13B 8 28 2021 .gitignore
-rw-r--r-- 1 host staff 1.0K 8 28 2021 Dockerfile
-rw-r--r-- 1 host staff 535B 8 28 2021 Jenkinsfile
-rw-r--r-- 1 host staff 11K 8 28 2021 LICENSE
-rw-r--r-- 1 host staff 1.6K 8 28 2021 README.md
drwxr-xr-x 7 host staff 224B 8 8 22:48 app
-rwxr-xr-x 1 host staff 253B 8 28 2021 build.sh
-rw-r--r-- 1 host staff 167B 8 28 2021 docker-compose.yml
drwxr-xr-x 8 host staff 256B 8 8 22:48 docs
-rw-r--r-- 1 host staff 1.9K 8 28 2021 mkdocs.yml
-rw-r--r-- 1 host staff 105B 8 28 2021 requirements.txt
-rw-r--r-- 1 host staff 86B 8 28 2021 yarn.lock
pwd
功能
查看当前目录的结构,全称print work directory
使用说明
代码语言:javascript复制pwd
案例
- 查看当前的目录结构
host@localhost getting-started % pwd
/Users/host/getting-started
cd
功能
切换文件夹,全称change directory
使用说明
代码语言:javascript复制cd 待进入的目录
案例
代码语言:javascript复制host@localhost getting-started % pwd
/Users/host/getting-started
host@localhost getting-started % ls
Dockerfile app mkdocs.yml
Jenkinsfile build.sh requirements.txt
LICENSE docker-compose.yml yarn.lock
README.md docs
host@localhost getting-started % cd app
host@localhost app % pwd
/Users/host/getting-started/app
host@localhost app % ls
package.json spec src yarn.lock
mkdir
功能
创建目录
使用说明
代码语言:javascript复制mkdir [-p] dirName
-p 表示可迭代创建目录,确保目录名称存在,不存在的就建一个。对于创建多层目录,使用-p可一层层的判断目录是否存在,若不存在就创建。 dirName表示待创建的目录名称
案例
代码语言:javascript复制host@localhost app % ls
package.json spec src yarn.lock
host@localhost app % ls -lh
total 360
-rw-r--r-- 1 host staff 626B 8 28 2021 package.json
drwxr-xr-x 4 host staff 128B 8 28 2021 spec
drwxr-xr-x 7 host staff 224B 8 20 23:18 src
-rw-r--r-- 1 host staff 175K 8 28 2021 yarn.lock
host@localhost app % mkdir src
mkdir: src: File exists
host@localhost app % mkdir -p src
host@localhost app % mkdir test
host@localhost app % ls -lh
total 360
-rw-r--r-- 1 host staff 626B 8 28 2021 package.json
drwxr-xr-x 4 host staff 128B 8 28 2021 spec
drwxr-xr-x 7 host staff 224B 8 20 23:18 src
drwxr-xr-x 2 host staff 64B 8 20 23:23 test
-rw-r--r-- 1 host staff 175K 8 28 2021 yarn.lock
host@localhost app % mkdir ./test/test/test
mkdir: ./test/test: No such file or directory
host@localhost app % mkdir -p ./test/test/test
host@localhost app % tree
.
├── package.json
├── spec
│ ├── persistence
│ │ └── sqlite.spec.js
│ └── routes
│ ├── addItem.spec.js
│ ├── deleteItem.spec.js
│ ├── getItems.spec.js
│ └── updateItem.spec.js
├── src
│ ├── clear
│ ├── index.js
│ ├── persistence
│ │ ├── index.js
│ │ ├── mysql.js
│ │ └── sqlite.js
│ ├── routes
│ │ ├── addItem.js
│ │ ├── deleteItem.js
│ │ ├── getItems.js
│ │ └── updateItem.js
│ └── static
│ ├── css
│ │ ├── bootstrap.min.css
│ │ ├── font-awesome
│ │ │ ├── all.min.css
│ │ │ ├── fa-brands-400.eot
│ │ │ ├── fa-brands-400.svg#fontawesome
│ │ │ ├── fa-brands-400.ttf
│ │ │ ├── fa-brands-400.woff
│ │ │ ├── fa-brands-400.woff2
│ │ │ ├── fa-regular-400.eot
│ │ │ ├── fa-regular-400.svg#fontawesome
│ │ │ ├── fa-regular-400.ttf
│ │ │ ├── fa-regular-400.woff
│ │ │ ├── fa-regular-400.woff2
│ │ │ ├── fa-solid-900.eot
│ │ │ ├── fa-solid-900.svg#fontawesome
│ │ │ ├── fa-solid-900.ttf
│ │ │ ├── fa-solid-900.woff
│ │ │ └── fa-solid-900.woff2
│ │ └── styles.css
│ ├── index.html
│ └── js
│ ├── app.js
│ ├── babel.min.js
│ ├── react-bootstrap.js
│ ├── react-dom.production.min.js
│ └── react.production.min.js
├── test
│ └── test
│ └── test
└── yarn.lock
14 directories, 39 files
touch
功能
创建文件,如果文件不存在就创建
使用说明
代码语言:javascript复制touch 文件
案例
代码语言:javascript复制host@localhost app % ls -lh
total 360
-rw-r--r-- 1 host staff 0B 8 20 23:27 aaa.txt
-rw-r--r-- 1 host staff 626B 8 28 2021 package.json
drwxr-xr-x 4 host staff 128B 8 28 2021 spec
drwxr-xr-x 7 host staff 224B 8 20 23:18 src
drwxr-xr-x 3 host staff 96B 8 20 23:23 test
-rw-r--r-- 1 host staff 175K 8 28 2021 yarn.lock
host@localhost app % touch aaa.txt
host@localhost app % touch bbb.txt
host@localhost app % ls -lh
total 360
-rw-r--r-- 1 host staff 0B 8 20 23:27 aaa.txt
-rw-r--r-- 1 host staff 0B 8 20 23:27 bbb.txt
-rw-r--r-- 1 host staff 626B 8 28 2021 package.json
drwxr-xr-x 4 host staff 128B 8 28 2021 spec
drwxr-xr-x 7 host staff 224B 8 20 23:18 src
drwxr-xr-x 3 host staff 96B 8 20 23:23 test
-rw-r--r-- 1 host staff 175K 8 28 2021 yarn.lock
rm
功能
删除指定的文件名或文件夹,全称remove
使用说明
代码语言:javascript复制rm [options] name
参数: -i 删除前逐一询问确认。 -f 强制删除,即使原档案属性设为唯读,亦直接删除,无需逐一确认。 -r 将目录及以下之档案亦逐一删除。
案例
- 删除文件 无法删除文件夹
host@localhost app % ls -lh
total 360
-rw-r--r-- 1 host staff 0B 8 20 23:27 aaa.txt
-rw-r--r-- 1 host staff 0B 8 20 23:27 bbb.txt
-rw-r--r-- 1 host staff 626B 8 28 2021 package.json
drwxr-xr-x 4 host staff 128B 8 28 2021 spec
drwxr-xr-x 7 host staff 224B 8 20 23:18 src
drwxr-xr-x 3 host staff 96B 8 20 23:23 test
-rw-r--r-- 1 host staff 175K 8 28 2021 yarn.lock
host@localhost app % rm test
rm: test: is a directory
host@localhost app % rm aaa.txt
host@localhost app % ls -lh
total 360
-rw-r--r-- 1 host staff 0B 8 20 23:27 bbb.txt
-rw-r--r-- 1 host staff 626B 8 28 2021 package.json
drwxr-xr-x 4 host staff 128B 8 28 2021 spec
drwxr-xr-x 7 host staff 224B 8 20 23:18 src
drwxr-xr-x 3 host staff 96B 8 20 23:23 test
-rw-r--r-- 1 host staff 175K 8 28 2021 yarn.lock
- 删除时确认 确认时输入 yes
host@localhost app % rm -i bbb.txt
remove bbb.txt? yes
host@localhost app % ls -lh
total 360
-rw-r--r-- 1 host staff 626B 8 28 2021 package.json
drwxr-xr-x 4 host staff 128B 8 28 2021 spec
drwxr-xr-x 7 host staff 224B 8 20 23:18 src
drwxr-xr-x 3 host staff 96B 8 20 23:23 test
-rw-r--r-- 1 host staff 175K 8 28 2021 yarn.lock
- 删除目录
host@localhost app % ls -lh
total 360
-rw-r--r-- 1 host staff 626B 8 28 2021 package.json
drwxr-xr-x 4 host staff 128B 8 28 2021 spec
drwxr-xr-x 7 host staff 224B 8 20 23:18 src
drwxr-xr-x 3 host staff 96B 8 20 23:23 test
-rw-r--r-- 1 host staff 175K 8 28 2021 yarn.lock
host@localhost app % rm -f test
rm: test: is a directory
host@localhost app % rm -r test
host@localhost app % ls -lh
total 360
-rw-r--r-- 1 host staff 626B 8 28 2021 package.json
drwxr-xr-x 4 host staff 128B 8 28 2021 spec
drwxr-xr-x 7 host staff 224B 8 20 23:18 src
-rw-r--r-- 1 host staff 175K 8 28 2021 yarn.lock
此外,在忽视权限时,可使用rm -rf 目录,强制删除
cp
功能
用于复制文件或目录,全称copy
使用说明
- 复制文件
cp [options] source dest
- 复制目录
cp [options] source... directory
参数说明:
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。 -d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。 -f:覆盖已经存在的目标文件而不给出提示。 -i:与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。 -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。 -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。 -l:不复制文件,只是生成链接文件。
案例
- 将package.json 复制到src目录下
host@localhost app % ls -lh
total 360
-rw-r--r-- 1 host staff 626B 8 28 2021 package.json
drwxr-xr-x 4 host staff 128B 8 28 2021 spec
drwxr-xr-x 7 host staff 224B 8 20 23:18 src
-rw-r--r-- 1 host staff 175K 8 28 2021 yarn.lock
host@localhost app % cp -r package.json src
host@localhost app % ls -lh
total 360
-rw-r--r-- 1 host staff 626B 8 28 2021 package.json
drwxr-xr-x 4 host staff 128B 8 28 2021 spec
drwxr-xr-x 8 host staff 256B 8 20 23:42 src
-rw-r--r-- 1 host staff 175K 8 28 2021 yarn.lock
host@localhost app % cd src
host@localhost src % ls -lh
total 16
drwxr-xr-x 2 host staff 64B 8 20 23:18 clear
-rw-r--r-- 1 host staff 930B 8 28 2021 index.js
-rw-r--r-- 1 host staff 626B 8 20 23:42 package.json
drwxr-xr-x 5 host staff 160B 8 28 2021 persistence
drwxr-xr-x 6 host staff 192B 8 28 2021 routes
drwxr-xr-x 5 host staff 160B 8 28 2021 static
mv
功能
- 全称move
- 为文件或目录改名
- 将文件或目录移入其它位置
使用说明
代码语言:javascript复制mv [options] source dest
mv [options] source... directory
参数说明:
-b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。 -i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。 -f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。 -n: 不要覆盖任何已存在的文件或目录。 -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
案例
- 改名字
host@localhost src % ls -lh
total 16
drwxr-xr-x 2 host staff 64B 8 20 23:18 clear
-rw-r--r-- 1 host staff 930B 8 28 2021 index.js
-rw-r--r-- 1 host staff 626B 8 20 23:42 package.json
drwxr-xr-x 5 host staff 160B 8 28 2021 persistence
drwxr-xr-x 6 host staff 192B 8 28 2021 routes
drwxr-xr-x 5 host staff 160B 8 28 2021 static
host@localhost src % mv clear clear0001
host@localhost src % ls -lh
total 16
drwxr-xr-x 2 host staff 64B 8 20 23:18 clear0001
-rw-r--r-- 1 host staff 930B 8 28 2021 index.js
-rw-r--r-- 1 host staff 626B 8 20 23:42 package.json
drwxr-xr-x 5 host staff 160B 8 28 2021 persistence
drwxr-xr-x 6 host staff 192B 8 28 2021 routes
drwxr-xr-x 5 host staff 160B 8 28 2021 static
- 移动
host@localhost src % ls -lh
total 16
drwxr-xr-x 2 host staff 64B 8 20 23:18 clear0001
-rw-r--r-- 1 host staff 930B 8 28 2021 index.js
-rw-r--r-- 1 host staff 626B 8 20 23:42 package.json
drwxr-xr-x 5 host staff 160B 8 28 2021 persistence
drwxr-xr-x 6 host staff 192B 8 28 2021 routes
drwxr-xr-x 5 host staff 160B 8 28 2021 static
host@localhost src % mv clear0001 static
host@localhost src % cd static
host@localhost static % ls -lh
total 8
drwxr-xr-x 2 host staff 64B 8 20 23:18 clear0001
drwxr-xr-x 5 host staff 160B 8 28 2021 css
-rw-r--r-- 1 host staff 858B 8 28 2021 index.html
drwxr-xr-x 7 host staff 224B 8 28 2021 js
clear
功能
清空屏幕
使用说明
代码语言:javascript复制clear
案例
代码语言:javascript复制host@localhost static % ls -lh
total 8
drwxr-xr-x 5 host staff 160B 8 28 2021 css
-rw-r--r-- 1 host staff 858B 8 28 2021 index.html
drwxr-xr-x 7 host staff 224B 8 28 2021 js
host@localhost static % clear
tree
功能
查看目录结构树
使用说明
代码语言:javascript复制tree
案例
代码语言:javascript复制host@localhost static % tree
.
├── css
│ ├── bootstrap.min.css
│ ├── font-awesome
│ │ ├── all.min.css
│ │ ├── fa-brands-400.eot
│ │ ├── fa-brands-400.svg#fontawesome
│ │ ├── fa-brands-400.ttf
│ │ ├── fa-brands-400.woff
│ │ ├── fa-brands-400.woff2
│ │ ├── fa-regular-400.eot
│ │ ├── fa-regular-400.svg#fontawesome
│ │ ├── fa-regular-400.ttf
│ │ ├── fa-regular-400.woff
│ │ ├── fa-regular-400.woff2
│ │ ├── fa-solid-900.eot
│ │ ├── fa-solid-900.svg#fontawesome
│ │ ├── fa-solid-900.ttf
│ │ ├── fa-solid-900.woff
│ │ └── fa-solid-900.woff2
│ └── styles.css
├── index.html
└── js
├── app.js
├── babel.min.js
├── react-bootstrap.js
├── react-dom.production.min.js
└── react.production.min.js
3 directories, 24 files
cat
功能
连接文件并打印到标准输出设备上
使用说明
代码语言:javascript复制cat [-AbeEnstTuv] [--help] [--version] fileName
参数说明: -n 或 --number:由 1 开始对所有输出的行数编号。
-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
-E 或 --show-ends : 在每行结束处显示 $。
-T 或 --show-tabs: 将 TAB 字符显示为 ^I。
-A, --show-all:等价于 -vET。
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;
案例
- 文档内容加上行号
host@localhost static % ls -lh
total 8
drwxr-xr-x 5 host staff 160B 8 28 2021 css
-rw-r--r-- 1 host staff 858B 8 28 2021 index.html
drwxr-xr-x 7 host staff 224B 8 28 2021 js
host@localhost static % cat -n index.html
1
2 <!DOCTYPE html>
3 <html>
4 <head>
5 <meta charset="utf-8" />
6 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no, maximum-scale=1.0, user-scalable=0" />
7 <link rel="stylesheet" href="css/bootstrap.min.css" crossorigin="anonymous" />
8 <link rel="stylesheet" href="css/font-awesome/all.min.css" crossorigin="anonymous" />
9 <link href="https://fonts.googleapis.com/css?family=Lato&display=swap" rel="stylesheet" />
10 <link rel="stylesheet" href="css/styles.css" />
11 <title>Todo App</title>
12 </head>
13 <body>
14 <div id="root"></div>
15 <script src="js/react.production.min.js"></script>
16 <script src="js/react-dom.production.min.js"></script>
17 <script src="js/react-bootstrap.js"></script>
18 <script src="js/babel.min.js"></script>
19 <script type="text/babel" src="js/app.js"></script>
20 </body>
21 </html>
- 空白行不加行号
host@localhost static % cat -n index.html
echo
功能
显示参数指定的文字,通常会和重定向联合使用
使用说明
代码语言:javascript复制echo 文件名
案例
代码语言:javascript复制host@localhost static % ls -lh
total 8
drwxr-xr-x 5 host staff 160B 8 28 2021 css
-rw-r--r-- 1 host staff 865B 8 21 00:03 index.html
drwxr-xr-x 7 host staff 224B 8 28 2021 js
host@localhost static % echo index.html
index.html
- 重定向
host@localhost static % ls -lh
total 8
drwxr-xr-x 5 host staff 160B 8 28 2021 css
-rw-r--r-- 1 host staff 865B 8 21 00:03 index.html
drwxr-xr-x 7 host staff 224B 8 28 2021 js
host@localhost static % echo hello python > a
zhangxiang@localhost static % ls -lh
total 16
-rw-r--r-- 1 host staff 13B 8 21 00:20 a
drwxr-xr-x 5 host staff 160B 8 28 2021 css
-rw-r--r-- 1 host staff 865B 8 21 00:03 index.html
drwxr-xr-x 7 host staff 224B 8 28 2021 js
host@localhost static % cat a
hello python
grep
功能
搜索文本文件内容
使用说明
代码语言:javascript复制grep 搜索文本 文件名
参数: -n 显示匹配行以及行号 -v 显示不包含匹配文本得所有行 -i 忽略大小写 -nv 反向且行号 ^a 行首, 以a作为开头的行 ke$ 行尾,搜索以ke结束的行
详细请见:https://www.runoob.com/linux/linux-comm-grep.html
案例
- 搜索
host@localhost static % ls -lh
total 16
-rw-r--r-- 1 host staff 13B 8 21 00:20 a
drwxr-xr-x 5 host staff 160B 8 28 2021 css
-rw-r--r-- 1 host staff 865B 8 21 00:03 index.html
drwxr-xr-x 7 host staff 224B 8 28 2021 js
host@localhost static % grep head index.html
<head>
</head>
- 显示行号
host@localhost static % grep -n head index.html
5:<head>
13:</head>
- 反向匹配
host@localhost static % grep -v head index.html
<!DOCTYPE html>
<html>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no, maximum-scale=1.0, user-scalable=0" />
<link rel="stylesheet" href="css/bootstrap.min.css" crossorigin="anonymous" />
<link rel="stylesheet" href="css/font-awesome/all.min.css" crossorigin="anonymous" />
<link href="https://fonts.googleapis.com/css?family=Lato&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="css/styles.css" />
<title>Todo App</title>
<body>
<div id="root"></div>
<script src="js/react.production.min.js"></script>
<script src="js/react-dom.production.min.js"></script>
<script src="js/react-bootstrap.js"></script>
<script src="js/babel.min.js"></script>
<script type="text/babel" src="js/app.js"></script>
</body>
</html>
重定向
>
输出,会覆盖文件原有的内容
>>
表示追加,会将内容追加到已有文件的末尾
管道
功能
一个命令的输出 通过管道作为另一个命令的输入
使用说明
案例
代码语言:javascript复制host@localhost static % ls -lh
total 16
-rw-r--r-- 1 host staff 13B 8 21 00:20 a
drwxr-xr-x 5 host staff 160B 8 28 2021 css
-rw-r--r-- 1 host staff 865B 8 21 00:03 index.html
drwxr-xr-x 7 host staff 224B 8 28 2021 js
host@localhost static % ls -lh | grep index.html
-rw-r--r-- 1 host staff 865B 8 21 00:03 index.html