模板:Linux常用命令:修订间差异

无编辑摘要
无编辑摘要
第47行: 第47行:
|ls
|ls
|显示目录的内容和属性
|显示目录的内容和属性
|ls [参数...][目录...]
|ls [参数][目录]
|<code>-a</code> 显示所有文件和目录,包括隐藏内容(以.开头文件)<br \> <code>-l</code> 显示属性权限等信息<br \> <code>-h</code> 文件大小以KB、MB、GB等显示,与-l参数搭配<br \> <code>-R</code> 显示包括子孙目录的所有文件和目录
|<code>-a</code> 显示所有文件和目录,包括隐藏内容(以.开头文件)<br \> <code>-l</code> 显示属性权限等信息<br \> <code>-h</code> 文件大小以KB、MB、GB等显示,与-l参数搭配<br \> <code>-R</code> 显示包括子孙目录的所有文件和目录
| <code>ls -l</code> 显示当前目录的内容和信息 <br \> <code>ls -al /home</code> 显示/home目录的包括隐藏文件在内的所有内容和信息
| <code>ls -l</code> 显示当前目录的内容和信息 <br \> <code>ls -al /home</code> 显示/home目录的包括隐藏文件在内的所有内容和信息
第59行: 第59行:
|pwd
|pwd
|查看当前目录的完整路径
|查看当前目录的完整路径
|pwd [参数...]
|pwd [参数]
|
|
| <code>pwd</code> 查看当前目录的完整路径
| <code>pwd</code> 查看当前目录的完整路径
第65行: 第65行:
|mkdir
|mkdir
|创建目录,可一次创建多个
|创建目录,可一次创建多个
|mkdir [参数...] 目录...
|mkdir [参数] 目录  
|<code>-p</code> 创建多级目录 <br \><code>-m 权限值</code> 设置目录权限 <br \><code>-v</code> 显示创建过程的信息
|<code>-p</code> 创建多级目录 <br \><code>-m 权限值</code> 设置目录权限 <br \><code>-v</code> 显示创建过程的信息
| <code>mkdir test</code> 在当前目录下创建一个目录test<br \> <code>mkdir -p test1/test2</code> 递归创建多级目录<br \> <code>mkdir -m 700 test3</code> 创建权限为700的test3目录
| <code>mkdir test</code> 在当前目录下创建一个目录test<br \> <code>mkdir -p test1/test2</code> 递归创建多级目录<br \> <code>mkdir -m 700 test3</code> 创建权限为700的test3目录
第71行: 第71行:
|cp
|cp
|复制文件或目录
|复制文件或目录
|cp [参数...] [-T] 源文件或目录 目标文件或目录 <br \>cp [参数...] 源文件或目录... 目标目录  <br \>cp [参数...] [-t] 目标目录 源文件或目录...
|cp [参数] [-T] 源文件或目录 目标文件或目录 <br \>cp [参数] 源文件或目录  目标目录  <br \>cp [参数] [-t] 目标目录 源文件或目录  
|<code>-i</code> 若目标文件已存在,会询问是否覆盖 <br \><code>-f</code> 若目标文件已存在,直接覆盖  <br \><code>-n</code> 若目标文件已存在,不要覆盖<br \><code>-r</code> 递归复制目录和文件<br \>
|<code>-i</code> 若目标文件已存在,会询问是否覆盖 <br \><code>-f</code> 若目标文件已存在,直接覆盖  <br \><code>-n</code> 若目标文件已存在,不要覆盖<br \><code>-r</code> 递归复制目录和文件<br \>
| <code>cp test1 test2</code> 复制test1到test2(假设当前不存在test2文件夹) <br \> <code>cp t1 t2 dirA</code> 复制t1、t2到dirA文件夹 <br \> <code>cp -t dirA t1 t2</code> 复制t1、t2到dirA文件夹
| <code>cp test1 test2</code> 复制test1到test2(假设当前不存在test2文件夹) <br \> <code>cp t1 t2 dirA</code> 复制t1、t2到dirA文件夹 <br \> <code>cp -t dirA t1 t2</code> 复制t1、t2到dirA文件夹
第77行: 第77行:
|mv
|mv
|文件移动或文件重命名
|文件移动或文件重命名
|mv [参数...][-T] 源文件 目标文件 <br \> mv [参数...] 源文件... 目标目录 <br \> mv [参数...] -t 目标目录 源文件...
|mv [参数][-T] 源文件 目标文件 <br \> mv [参数] 源文件 目标目录 <br \> mv [参数] -t 目标目录 源文件  
|
|
|<code>mv test1 test2</code> 文件test1重命名为test2 <br \> <code>mv test1 test3</code> 移动test1文件到test3目录(假设当前存在test3目录)
|<code>mv test1 test2</code> 文件test1重命名为test2 <br \> <code>mv test1 test3</code> 移动test1文件到test3目录(假设当前存在test3目录)
第83行: 第83行:
|rm
|rm
|删除文件或目录
|删除文件或目录
|rm [参数...] [文件或目录...]
|rm [参数] [文件或目录]
|<code>-i</code> 删除文件时,先询问是否删除 <br \><code>-f</code> 直接强制删除 <br \><code>-r</code> 删除目录及其所有文件。
|<code>-i</code> 删除文件时,先询问是否删除 <br \><code>-f</code> 直接强制删除 <br \><code>-r</code> 删除目录及其所有文件。
| <code>rm test</code> 删除test文件<br \> <code>rm -r testDir</code> 删除testDir目录 <br /><code>find ./ -type d -name "__pycache__" -exec rm -rf {} \;</code> 递归删除当前目录下所有的"__pycache__"目录。<br /><code><nowiki>find ./ -type d -name "__pycache__" | xargs rm -rf</nowiki></code>递归删除当前目录下所有的"__pycache__"目录。
| <code>rm test</code> 删除test文件<br \> <code>rm -r testDir</code> 删除testDir目录 <br /><code>find ./ -type d -name "__pycache__" -exec rm -rf {} \;</code> 递归删除当前目录下所有的"__pycache__"目录。<br /><code><nowiki>find ./ -type d -name "__pycache__" | xargs rm -rf</nowiki></code>递归删除当前目录下所有的"__pycache__"目录。
第89行: 第89行:
|rmdir
|rmdir
|删除空目录
|删除空目录
|rmdir [参数...] [目录...]
|rmdir [参数] [目录]
|<code>-p</code>  
|<code>-p</code>  
| <code>rmdir testDir</code> 删除空目录testDir
| <code>rmdir testDir</code> 删除空目录testDir
第95行: 第95行:
|touch
|touch
|修改文件或目录的日期时间,创建空文件
|修改文件或目录的日期时间,创建空文件
|touch [参数...] [文件...]  
|touch [参数] [文件]  
|<code>-a</code> 修改访问时间(access time) <br \>
|<code>-a</code> 修改访问时间(access time) <br \>
|<code>touch test3</code>创建空文件test3
|<code>touch test3</code>创建空文件test3
|-
|-
| ln
| 创建文件或目录的软链接和硬链接
| ln [参数] [源文件或目录] [目标文件或目录]
| <code>-s</code> 软链接,相当于快捷方式。不加为默认的硬链接
| <code>ln test t1</code> 创建test的硬链接t1 <br \><code>ln -s test t2</code> 创建test的软链接t2
|}
|}


第111行: 第116行:
|cat
|cat
|显示文件内容
|显示文件内容
|cat [参数...] [文件...]  
|cat [参数] [文件]  
|<code>-n</code> 输出内容每行前添加行号
|<code>-n</code> 输出内容每行前添加行号
| <code>cat test</code> 显示test文件内容 <br \>  <code>cat -n test1 test2</code> 显示test1和test2文件内容,并且显示行号。
| <code>cat test</code> 显示test文件内容 <br \>  <code>cat -n test1 test2</code> 显示test1和test2文件内容,并且显示行号。
第117行: 第122行:
|tail
|tail
|显示文件末尾内容,默认10行
|显示文件末尾内容,默认10行
|tail [参数...] [文件...]  
|tail [参数] [文件]  
|<code>-n 行数</code> 显示的行数 <br \> <code>-c 字节数</code> 显示的字节数 <br \> <code>-f</code> 循环显示,文件末尾有更新会刷新
|<code>-n 行数</code> 显示的行数 <br \> <code>-c 字节数</code> 显示的字节数 <br \> <code>-f</code> 循环显示,文件末尾有更新会刷新
| <code>tail test</code> 显示test文件末尾10行内容 <br \>  <code>tail -n 3 test</code> 显示test文件末尾3行内容
| <code>tail test</code> 显示test文件末尾10行内容 <br \>  <code>tail -n 3 test</code> 显示test文件末尾3行内容
第123行: 第128行:
|head
|head
|显示文件开头内容,默认10行
|显示文件开头内容,默认10行
|head [参数...] [文件...]  
|head [参数] [文件]  
|<code>-n 行数</code> 显示的行数 <br \> <code>-c 字节数</code> 显示的字节数 <br \> <code>-v</code> 显示文件名
|<code>-n 行数</code> 显示的行数 <br \> <code>-c 字节数</code> 显示的字节数 <br \> <code>-v</code> 显示文件名
| <code>head test</code> 显示test文件开头10行内容 <br \>  <code>head -n 3 test</code> 显示test文件开头3行内容
| <code>head test</code> 显示test文件开头10行内容 <br \>  <code>head -n 3 test</code> 显示test文件开头3行内容
第129行: 第134行:
|more
|more
|文件内容分页查看,搜索过滤
|文件内容分页查看,搜索过滤
|more [参数...] 文件...
|more [参数] 文件  
|<code>+行数</code> 从第几行开始显示 <br \> <code>-行数</code> 每次显示的行数 <br \> <code>+/字符串 </code> 从搜索到字符串位置的前面2行开始显示  <br \> <code>-c </code>清屏  <br \> <code>-p </code>清屏  <br \> <code>-s </code> 连续多个空行显示为一行  
|<code>+行数</code> 从第几行开始显示 <br \> <code>-行数</code> 每次显示的行数 <br \> <code>+/字符串 </code> 从搜索到字符串位置的前面2行开始显示  <br \> <code>-c </code>清屏  <br \> <code>-p </code>清屏  <br \> <code>-s </code> 连续多个空行显示为一行  
| <code>more +5 test</code> 从第5行显示test文件内容 <br \>  <code>more -12 test</code> 每次显示12行test文件内容 <br \>  <code>more +/晴天 test</code> 从test文件搜索到“晴天”的位置向前2行开始显示
| <code>more +5 test</code> 从第5行显示test文件内容 <br \>  <code>more -12 test</code> 每次显示12行test文件内容 <br \>  <code>more +/晴天 test</code> 从test文件搜索到“晴天”的位置向前2行开始显示
第135行: 第140行:
|[https://man7.org/linux/man-pages/man1/grep.1.html grep]
|[https://man7.org/linux/man-pages/man1/grep.1.html grep]
|文本搜索,使用[[正则表达式]]进行搜索
|文本搜索,使用[[正则表达式]]进行搜索
|grep [参数...] 匹配模式 [文件...]  
|grep [参数] 匹配模式 [文件]  
|<code>-c</code> 统计搜索到的次数 <br \> <code>-i</code> 忽略大小写差别 <br \> <code>-r</code> 递归方式查找,目录的所有文件包括子孙目录
|<code>-c</code> 统计搜索到的次数 <br \> <code>-i</code> 忽略大小写差别 <br \> <code>-r</code> 递归方式查找,目录的所有文件包括子孙目录
| <code>grep test *.log --color=auto </code> 查找.log结尾文件包含test的行,并且test用颜色标记 <br \>  <code>grep -r passwd /etc/</code>查找/etc目录下所有文件中包含passwd的行
| <code>grep test *.log --color=auto </code> 查找.log结尾文件包含test的行,并且test用颜色标记 <br \>  <code>grep -r passwd /etc/</code>查找/etc目录下所有文件中包含passwd的行
第153行: 第158行:
|[[vim|vi/vim]]
|[[vim|vi/vim]]
|文本编辑器
|文本编辑器
|vim [参数...] [文件..] <br \> vim [参数...] -  <br \> vim [参数...] -t tag  
|vim [参数] [文件..] <br \> vim [参数] -  <br \> vim [参数] -t tag  
|<code>+行数</code> 跳到指定行数 <br \> <code>+</code> 跳到最后一行 <br \> <code>-R </code> 只读模式打开文件<br \>  
|<code>+行数</code> 跳到指定行数 <br \> <code>+</code> 跳到最后一行 <br \> <code>-R </code> 只读模式打开文件<br \>  
|<code>vim +10 test </code> 打开test文件,跳到10行位置 <br \> <code>vim -R test </code> 只读模式打开test文件
|<code>vim +10 test </code> 打开test文件,跳到10行位置 <br \> <code>vim -R test </code> 只读模式打开test文件
第159行: 第164行:
|wc
|wc
|统计文件行数、单词数、字节数信息。
|统计文件行数、单词数、字节数信息。
|wc [参数...] [文件...]  
|wc [参数] [文件]  
|<code>-c</code> 行数 <br \> <code>-m </code> 字数  <br \> <code>-c </code> 字节数<br \> <code>-L </code> 最长行的字数 <br /><code>-m </code> 最长行的字数
|<code>-c</code> 行数 <br \> <code>-m </code> 字数  <br \> <code>-c </code> 字节数<br \> <code>-L </code> 最长行的字数 <br /><code>-m </code> 最长行的字数
| <code>wc test</code> 显示test文件行数、字数、字节数信息  
| <code>wc test</code> 显示test文件行数、字数、字节数信息  
第180行: 第185行:
|[https://man7.org/linux/man-pages/man1/find.1.html find]
|[https://man7.org/linux/man-pages/man1/find.1.html find]
|文件搜索,默认当前目录
|文件搜索,默认当前目录
|find [参数...] [搜索目录...] [表达式]  
|find [参数] [搜索目录] [表达式]  
|<code>-name</code> 按文件名查找目录下所有文件包括子孙目录 <br \><code>-iname</code> 文件名忽略大小写 <br \><code>-type 类型</code> 指定查找类型bcdpflsD(d:目录,f:一般文件) <br \><code>-ctime 天数</code> 过去几天修改过的文件 <br \><code>-cmin 分钟数</code> 过去几分钟修改过的文件
|<code>-name</code> 按文件名查找目录下所有文件包括子孙目录 <br \><code>-iname</code> 文件名忽略大小写 <br \><code>-type 类型</code> 指定查找类型bcdpflsD(d:目录,f:一般文件) <br \><code>-ctime 天数</code> 过去几天修改过的文件 <br \><code>-cmin 分钟数</code> 过去几分钟修改过的文件
| <code>find test</code>当前目录查找test文件<br \> <code>find -name *.log</code>当前目录及子孙目录查找以.log结尾的文件 <br /><code>find . -type d -name '.c'</code>递归查找当前目录所有名称为'.c'的目录 <br \> <code>find -ctime 3</code> 当前目录过去3天修改过的文件  <br /><code><nowiki>find testDir | xargs grep -rl 'Python'</nowiki></code> 查找testDir目录及子孙目录中文件内容包含'Python'的文件。
| <code>find test</code>当前目录查找test文件<br \> <code>find -name *.log</code>当前目录及子孙目录查找以.log结尾的文件 <br /><code>find . -type d -name '.c'</code>递归查找当前目录所有名称为'.c'的目录 <br \> <code>find -ctime 3</code> 当前目录过去3天修改过的文件  <br /><code><nowiki>find testDir | xargs grep -rl 'Python'</nowiki></code> 查找testDir目录及子孙目录中文件内容包含'Python'的文件。
第186行: 第191行:
|whereis  
|whereis  
|查找程序、源代码及帮助文件位置
|查找程序、源代码及帮助文件位置
|whereis [参数...] 文件  
|whereis [参数] 文件  
|<code>-b</code> 查找可执行文件<br \> <code>-m</code> 查找帮助文件<br \> <code>-s</code> 查找源代码文件<br \> <code>-u</code> 查找其他文件<br \> <code>-B 目录</code>指定查找可执行文件的目录<br \> <code>-M 目录</code>指定查找帮助文件的目录<br \> <code>-S 目录</code>指定查找源代码文件的目录
|<code>-b</code> 查找可执行文件<br \> <code>-m</code> 查找帮助文件<br \> <code>-s</code> 查找源代码文件<br \> <code>-u</code> 查找其他文件<br \> <code>-B 目录</code>指定查找可执行文件的目录<br \> <code>-M 目录</code>指定查找帮助文件的目录<br \> <code>-S 目录</code>指定查找源代码文件的目录
| <code>which python3</code> 查找python3位置
| <code>which python3</code> 查找python3位置
第207行: 第212行:
|tar
|tar
|打包,多个文件或目录打包成一个存档文件。解包,从存档文件提取所有文件。 <br />使用gzip、bz2压缩解压
|打包,多个文件或目录打包成一个存档文件。解包,从存档文件提取所有文件。 <br />使用gzip、bz2压缩解压
|tar [参数...] [文件...]  <br \> (主参数有且只能一个)
|tar [参数] [文件]  <br \> (主参数有且只能一个)
|主参数:<br \><code>-c</code> 打包,创建一个新存档文件<br \><code>-x</code> 解包,提取所有存档文件<br \><code>-t</code> 查看,显示所有存档文件<br \><code>-r</code> 追加,向存档文件追加文件<br \><code>-u</code> 更新,只更新比存档文件的文件新的文件<br \><code>-d</code> 差异,<br \><br \>副参数:<br \><code>-v</code> 显示操作过程<br \><code>-f 存档文件</code> 指定存档文件<br \><code>-C 目录</code> 指定目录<br \><code>-z</code> 通过gzip压缩解压,现在解压不需要指定,tar会自动选择
|主参数:<br \><code>-c</code> 打包,创建一个新存档文件<br \><code>-x</code> 解包,提取所有存档文件<br \><code>-t</code> 查看,显示所有存档文件<br \><code>-r</code> 追加,向存档文件追加文件<br \><code>-u</code> 更新,只更新比存档文件的文件新的文件<br \><code>-d</code> 差异,<br \><br \>副参数:<br \><code>-v</code> 显示操作过程<br \><code>-f 存档文件</code> 指定存档文件<br \><code>-C 目录</code> 指定目录<br \><code>-z</code> 通过gzip压缩解压,现在解压不需要指定,tar会自动选择
|<code>tar -cvf test.tar testDir test2</code> 打包当前目录下testDir目录和test2,生成test.tar文件 <br \><code>tar -xvf test.tar </code> 解包test.tar到当前目录<br \> <br \><code>tar -xvf test.tar -C ../foo </code> 在当前目录的上级目录的foo目录里解包test.tar<br \>
|<code>tar -cvf test.tar testDir test2</code> 打包当前目录下testDir目录和test2,生成test.tar文件 <br \><code>tar -xvf test.tar </code> 解包test.tar到当前目录<br \> <br \><code>tar -xvf test.tar -C ../foo </code> 在当前目录的上级目录的foo目录里解包test.tar<br \>
第213行: 第218行:
|gzip  
|gzip  
|压缩文件,解压gzip文件,不能压缩目录,需配合tar使用。默认压缩文件,并删除原文件
|压缩文件,解压gzip文件,不能压缩目录,需配合tar使用。默认压缩文件,并删除原文件
|gzip [参数...] [文件...]  
|gzip [参数] [文件]  
|<code>-d</code> 解压<br \><code>-c</code> 输出压缩文件到标准输出设备,而不更改原文件<br \><code>-f</code> 强制压缩覆盖<br \><code>-l</code> 显示压缩信息<br \><code>-k</code> 不删除原文件<br \><code>-r</code> 在目录上递归操作,压缩或解压单个文件
|<code>-d</code> 解压<br \><code>-c</code> 输出压缩文件到标准输出设备,而不更改原文件<br \><code>-f</code> 强制压缩覆盖<br \><code>-l</code> 显示压缩信息<br \><code>-k</code> 不删除原文件<br \><code>-r</code> 在目录上递归操作,压缩或解压单个文件
|<code>gzip *</code> 把当前目录所有文件转化为压缩文件<br \> <code>gzip -d *</code>把当前目录所有压缩文件转化为文件
|<code>gzip *</code> 把当前目录所有文件转化为压缩文件<br \> <code>gzip -d *</code>把当前目录所有压缩文件转化为文件
第219行: 第224行:
|unzip  
|unzip  
|解压zip文件
|解压zip文件
|unzip [参数...] [文件...]  
|unzip [参数] [文件]  
|<code>-d 目录</code> 指定解压缩目录<br \><code>-l</code> 列出压缩包所包含的文件<br \><code>-v</code> 显示执行过程<br \><code>-n</code> 不覆盖原文件<br \><code>-j</code> 不创建压缩文件里的目录<br \><code>-k</code> 不删除原文件<br \><code>-r</code> 在目录上递归操作,压缩或解压单个文件
|<code>-d 目录</code> 指定解压缩目录<br \><code>-l</code> 列出压缩包所包含的文件<br \><code>-v</code> 显示执行过程<br \><code>-n</code> 不覆盖原文件<br \><code>-j</code> 不创建压缩文件里的目录<br \><code>-k</code> 不删除原文件<br \><code>-r</code> 在目录上递归操作,压缩或解压单个文件
|<code>unzip test.zip</code> 解压缩test.zip到当前目录<br \> <code>unzip test.zip -d foo</code>解压缩test.zip到当前目录的foo目录中
|<code>unzip test.zip</code> 解压缩test.zip到当前目录<br \> <code>unzip test.zip -d foo</code>解压缩test.zip到当前目录的foo目录中
第234行: 第239行:
|chmod  
|chmod  
|修改文件或目录权限。<br /><br />查看权限可使用<code>ls -l</code>命令
|修改文件或目录权限。<br /><br />查看权限可使用<code>ls -l</code>命令
|chmod [参数...] 模式... [文件...] <br \><br \>chmod [参数...] --reference=参照文件 [文件...] <br \> <br \>模式格式:<br \> <nowiki> [ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+</nowiki>  
|chmod [参数] 模式 [文件] <br \><br \>chmod [参数] --reference=参照文件 [文件] <br \> <br \>模式格式:<br \> <nowiki> [ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+</nowiki>  
|<code>-R</code> 递归的方式为目录所有文件权限<br \> <code>-v</code> 显示所有操作过程<br \> <code>-c</code> 只显示被改变权限的文件操作过程<br \> <code>-f</code> 安静模式,不输出错误信息<br \> <br \>模式: <br \><code>u</code> 属主,文件属于的用户<br \><code>g</code> 属组,文件属于的用户组<br \><code>o</code> 其他用户<br \><code>a</code> 所有用户(默认)<br \><code>+</code> 增加权限<br \> <code>-</code> 取消权限<br \> <code>=</code> 重新设定权限<br \><code>r</code> 读权限,用数字4表示<br \> <code>w</code> 写权限,用数字2表示<br \> <code>x</code> 执行权限,用数字1表示<br \> <code>0</code> 无权限,用数字0表示
|<code>-R</code> 递归的方式为目录所有文件权限<br \> <code>-v</code> 显示所有操作过程<br \> <code>-c</code> 只显示被改变权限的文件操作过程<br \> <code>-f</code> 安静模式,不输出错误信息<br \> <br \>模式: <br \><code>u</code> 属主,文件属于的用户<br \><code>g</code> 属组,文件属于的用户组<br \><code>o</code> 其他用户<br \><code>a</code> 所有用户(默认)<br \><code>+</code> 增加权限<br \> <code>-</code> 取消权限<br \> <code>=</code> 重新设定权限<br \><code>r</code> 读权限,用数字4表示<br \> <code>w</code> 写权限,用数字2表示<br \> <code>x</code> 执行权限,用数字1表示<br \> <code>0</code> 无权限,用数字0表示
|<code>chmod 751 test</code>设置test文件权限,属主读、写和执行的权限(7),属组读和执行的权限(5),其他用户执行的权限(1)。<br \><code>chmod a+r test</code> 设置test文件权限,为所有用户增加读取权限 <br \> <code>chmod a=r,u+w test</code> 设置test文件为所有用户只读,属主可写权限。
|<code>chmod 751 test</code>设置test文件权限,属主读、写和执行的权限(7),属组读和执行的权限(5),其他用户执行的权限(1)。<br \><code>chmod a+r test</code> 设置test文件权限,为所有用户增加读取权限 <br \> <code>chmod a=r,u+w test</code> 设置test文件为所有用户只读,属主可写权限。
第240行: 第245行:
|chown  
|chown  
|修改文件或目录的属主和属组。<br \>(属主:文件属于的用户, 属组:文件属于的用户组。)
|修改文件或目录的属主和属组。<br \>(属主:文件属于的用户, 属组:文件属于的用户组。)
|chown [参数...] [属主][:[属组]] 文件...<br \><br \> chown [参数...] --reference=参照文件 文件...
|chown [参数] [属主][:[属组]] 文件<br \><br \> chown [参数] --reference=参照文件 文件
|<code>-R</code> 递归的方式更改目录所有文件的属主和属组<br \> <code>-v</code> 显示所有操作过程<br \> <code>-c</code> 只显示被改变的文件操作过程<br \> <code>-f</code> 安静模式,不输出错误信息<br \>
|<code>-R</code> 递归的方式更改目录所有文件的属主和属组<br \> <code>-v</code> 显示所有操作过程<br \> <code>-c</code> 只显示被改变的文件操作过程<br \> <code>-f</code> 安静模式,不输出错误信息<br \>
|<code>chown foo:root test</code>修改test用户属主为foo用户,属组为root用户组
|<code>chown foo:root test</code>修改test用户属主为foo用户,属组为root用户组
第246行: 第251行:
|chgrp
|chgrp
|修改文件或目录的属组。<br \>(属组:文件属于的用户组。)
|修改文件或目录的属组。<br \>(属组:文件属于的用户组。)
|chown [参数...] 属组 文件...<br \><br \> chown [参数...] --reference=参照文件 文件...
|chown [参数] 属组 文件<br \><br \> chown [参数] --reference=参照文件 文件
|<code>-R</code> 递归的方式更改目录所有文件的属组<br \> <code>-v</code> 显示所有操作过程<br \> <code>-c</code> 只显示被改变的文件操作过程<br \> <code>-f</code> 安静模式,不输出错误信息<br \>
|<code>-R</code> 递归的方式更改目录所有文件的属组<br \> <code>-v</code> 显示所有操作过程<br \> <code>-c</code> 只显示被改变的文件操作过程<br \> <code>-f</code> 安静模式,不输出错误信息<br \>
|<code>chgrp root test</code>修改test文件属组为root用户组
|<code>chgrp root test</code>修改test文件属组为root用户组
第320行: 第325行:
|lsblk
|lsblk
|列出块设备信息
|列出块设备信息
|lsblk [参数...] [设备...]  
|lsblk [参数] [设备]  
|<code>-a</code> 显示所有设备<br \><code>-b</code>以bytes方式显示设备大小<br \><code>-d</code> 不显示分区<br \><code>-m</code> 显示权限信息<br \>
|<code>-a</code> 显示所有设备<br \><code>-b</code>以bytes方式显示设备大小<br \><code>-d</code> 不显示分区<br \><code>-m</code> 显示权限信息<br \>
|<code>lsblk</code>显示块设备信息<br \> <code>lsblk -d</code> 显示块设备信息,但不显示其节点信息
|<code>lsblk</code>显示块设备信息<br \> <code>lsblk -d</code> 显示块设备信息,但不显示其节点信息
第326行: 第331行:
|df
|df
|显示磁盘使用情况
|显示磁盘使用情况
|df [参数...] [文件...]  
|df [参数] [文件]  
|<code>-a</code> 所有文件系统<br \><code>-h</code> 以K、M、G、T、P...等方式显示大小(除数为1024)<br \><code>-H</code> 与-h相同,但除数为1000<br \><code>-i</code> 显示inode信息<br \><code>-l</code> 只显示本地文件系统<br \><code>-T</code> 显示文件系统类型<br \><code>t 文件系统类型</code> 指定文件系统类型
|<code>-a</code> 所有文件系统<br \><code>-h</code> 以K、M、G、T、P等方式显示大小(除数为1024)<br \><code>-H</code> 与-h相同,但除数为1000<br \><code>-i</code> 显示inode信息<br \><code>-l</code> 只显示本地文件系统<br \><code>-T</code> 显示文件系统类型<br \><code>t 文件系统类型</code> 指定文件系统类型
|<code>df -h </code> 以易读方式显示磁盘使用情况<br \> <code>df -t ext4</code> 显示ext4类型文件系统的磁盘使用情况
|<code>df -h </code> 以易读方式显示磁盘使用情况<br \> <code>df -t ext4</code> 显示ext4类型文件系统的磁盘使用情况
|-
|-
|du
|du
|文件或目录的磁盘使用情况
|文件或目录的磁盘使用情况
|df [参数...] [文件...]  
|df [参数] [文件]  
|<code>-a</code> 显示所有文件情况,而不仅是默认情况的目录<br \><code>-h</code> 以K、M、G、T、P...等方式显示大小(除数为1024)<br \><code>-H</code> 与-h相同,但除数为1000<br \><code>-s</code> 只显示总计<br \><code>-S</code> 仅统计目录不包含子目录的大小
|<code>-a</code> 显示所有文件情况,而不仅是默认情况的目录<br \><code>-h</code> 以K、M、G、T、P等方式显示大小(除数为1024)<br \><code>-H</code> 与-h相同,但除数为1000<br \><code>-s</code> 只显示总计<br \><code>-S</code> 仅统计目录不包含子目录的大小
|<code>du -h test</code> 易读方式显示test目录所占空间
|<code>du -h test</code> 易读方式显示test目录所占空间
|-
|-

2021年12月16日 (四) 03:37的版本

shell语言

名称 描述 示例
解释器 常见shell命令解释器:
sh,大多数Unix的默认Shell
bash,大多数Linux的默认Shell
zshMac OS从2019年起将默认Shell从bash改为zsh。

脚本在首行可以指定解释器,如#!/bin/bash。也可以在运行时指定使用的解释器如:bash /path/to/script.sh

在命令行输入echo $SHELL,可以查看当前使用的Shell解析器
注释 单行注释:以#开头。
管道 管道中每个命令的输出通过管道连接到下一个命令的输入。用|或者|&表示。其中|& 输出除了包含正常信息,还包含错误时信息,是简写2>&1 |的简写。

格式:[time [-p]] [!] command1 [ | or |& command2 ] …
参数展开 格式:
${参数} ,参数的值
${参数#文本}${参数##文本},从开头删除匹配的内容,#表示小匹配内容,##最多匹配内容。
${参数%文本}${参数%%文本},从结尾删除匹配的内容,%表示小匹配内容,%%最多匹配内容。
${参数@操作} 根据操作字符值进行转换,常用操作可取值:U,参数的值,都转大写。L,参数的值,都转小写。
$ str=123abc
$ echo ${str}  #参数值,相当于$str
$ echo ${str:2}  #从第3位开始到最后
$ echo ${str:2:1}
for name in `ls`; do mv $name ${name#2021-} ; done; 批量重命名,删除前缀2021-


模式匹配

文件管理

命令 描述 语法格式 常用参数 示例
ls 显示目录的内容和属性 ls [参数][目录] -a 显示所有文件和目录,包括隐藏内容(以.开头文件)
-l 显示属性权限等信息
-h 文件大小以KB、MB、GB等显示,与-l参数搭配
-R 显示包括子孙目录的所有文件和目录
ls -l 显示当前目录的内容和信息
ls -al /home 显示/home目录的包括隐藏文件在内的所有内容和信息
cd 切换当前目录,目录可以使用相对路径或绝对路径 cd [目录] cd /home 进入/home目录
cd ../dirName 进入上级目录中的dirName目录
pwd 查看当前目录的完整路径 pwd [参数] pwd 查看当前目录的完整路径
mkdir 创建目录,可一次创建多个 mkdir [参数] 目录 -p 创建多级目录
-m 权限值 设置目录权限
-v 显示创建过程的信息
mkdir test 在当前目录下创建一个目录test
mkdir -p test1/test2 递归创建多级目录
mkdir -m 700 test3 创建权限为700的test3目录
cp 复制文件或目录 cp [参数] [-T] 源文件或目录 目标文件或目录
cp [参数] 源文件或目录 目标目录
cp [参数] [-t] 目标目录 源文件或目录
-i 若目标文件已存在,会询问是否覆盖
-f 若目标文件已存在,直接覆盖
-n 若目标文件已存在,不要覆盖
-r 递归复制目录和文件
cp test1 test2 复制test1到test2(假设当前不存在test2文件夹)
cp t1 t2 dirA 复制t1、t2到dirA文件夹
cp -t dirA t1 t2 复制t1、t2到dirA文件夹
mv 文件移动或文件重命名 mv [参数][-T] 源文件 目标文件
mv [参数] 源文件 目标目录
mv [参数] -t 目标目录 源文件
mv test1 test2 文件test1重命名为test2
mv test1 test3 移动test1文件到test3目录(假设当前存在test3目录)
rm 删除文件或目录 rm [参数] [文件或目录] -i 删除文件时,先询问是否删除
-f 直接强制删除
-r 删除目录及其所有文件。
rm test 删除test文件
rm -r testDir 删除testDir目录
find ./ -type d -name "__pycache__" -exec rm -rf {} \; 递归删除当前目录下所有的"__pycache__"目录。
find ./ -type d -name "__pycache__" | xargs rm -rf递归删除当前目录下所有的"__pycache__"目录。
rmdir 删除空目录 rmdir [参数] [目录] -p rmdir testDir 删除空目录testDir
touch 修改文件或目录的日期时间,创建空文件 touch [参数] [文件] -a 修改访问时间(access time)
touch test3创建空文件test3
ln 创建文件或目录的软链接和硬链接 ln [参数] [源文件或目录] [目标文件或目录] -s 软链接,相当于快捷方式。不加为默认的硬链接 ln test t1 创建test的硬链接t1
ln -s test t2 创建test的软链接t2

文本工具

命令 描述 语法格式 常用参数 示例
cat 显示文件内容 cat [参数] [文件] -n 输出内容每行前添加行号 cat test 显示test文件内容
cat -n test1 test2 显示test1和test2文件内容,并且显示行号。
tail 显示文件末尾内容,默认10行 tail [参数] [文件] -n 行数 显示的行数
-c 字节数 显示的字节数
-f 循环显示,文件末尾有更新会刷新
tail test 显示test文件末尾10行内容
tail -n 3 test 显示test文件末尾3行内容
head 显示文件开头内容,默认10行 head [参数] [文件] -n 行数 显示的行数
-c 字节数 显示的字节数
-v 显示文件名
head test 显示test文件开头10行内容
head -n 3 test 显示test文件开头3行内容
more 文件内容分页查看,搜索过滤 more [参数] 文件 +行数 从第几行开始显示
-行数 每次显示的行数
+/字符串 从搜索到字符串位置的前面2行开始显示
-c 清屏
-p 清屏
-s 连续多个空行显示为一行
more +5 test 从第5行显示test文件内容
more -12 test 每次显示12行test文件内容
more +/晴天 test 从test文件搜索到“晴天”的位置向前2行开始显示
grep 文本搜索,使用正则表达式进行搜索 grep [参数] 匹配模式 [文件] -c 统计搜索到的次数
-i 忽略大小写差别
-r 递归方式查找,目录的所有文件包括子孙目录
grep test *.log --color=auto 查找.log结尾文件包含test的行,并且test用颜色标记
grep -r passwd /etc/查找/etc目录下所有文件中包含passwd的行
awk 文本处理、分析和格式化工具。持正则表达式
sed 命令行文本处理,支持正则表达式。常用于替换。
vi/vim 文本编辑器 vim [参数] [文件..]
vim [参数] -
vim [参数] -t tag
+行数 跳到指定行数
+ 跳到最后一行
-R 只读模式打开文件
vim +10 test 打开test文件,跳到10行位置
vim -R test 只读模式打开test文件
wc 统计文件行数、单词数、字节数信息。 wc [参数] [文件] -c 行数
-m 字数
-c 字节数
-L 最长行的字数
-m 最长行的字数
wc test 显示test文件行数、字数、字节数信息
diff 文件比对 -r 对比目录及子孙目录所有文件
-x 排除文件或目录,不进行对比。
-C 行数-c行数 显示不同处的上下文
diff a.txt a2.txt 显示a.txt和a2.txt文本差异
diff dir1 dir2显示目录dir1和dir1文件差异。
diff -r -x '*.log' dir1 dir2显示目录dir1和dir1及子孙目录所有文件差异,除了.log结尾的文件。

查找

命令 描述 语法格式 常用参数 示例
find 文件搜索,默认当前目录 find [参数] [搜索目录] [表达式] -name 按文件名查找目录下所有文件包括子孙目录
-iname 文件名忽略大小写
-type 类型 指定查找类型bcdpflsD(d:目录,f:一般文件)
-ctime 天数 过去几天修改过的文件
-cmin 分钟数 过去几分钟修改过的文件
find test当前目录查找test文件
find -name *.log当前目录及子孙目录查找以.log结尾的文件
find . -type d -name '.c'递归查找当前目录所有名称为'.c'的目录
find -ctime 3 当前目录过去3天修改过的文件
find testDir | xargs grep -rl 'Python' 查找testDir目录及子孙目录中文件内容包含'Python'的文件。
whereis 查找程序、源代码及帮助文件位置 whereis [参数] 文件 -b 查找可执行文件
-m 查找帮助文件
-s 查找源代码文件
-u 查找其他文件
-B 目录指定查找可执行文件的目录
-M 目录指定查找帮助文件的目录
-S 目录指定查找源代码文件的目录
which python3 查找python3位置
which 查找程序位置,在当前PATH变量中查询,且只返回第一个结果。 which python3 查找python3位置

备份压缩

命令 描述 语法格式 常用参数 示例
tar 打包,多个文件或目录打包成一个存档文件。解包,从存档文件提取所有文件。
使用gzip、bz2压缩解压
tar [参数] [文件]
(主参数有且只能一个)
主参数:
-c 打包,创建一个新存档文件
-x 解包,提取所有存档文件
-t 查看,显示所有存档文件
-r 追加,向存档文件追加文件
-u 更新,只更新比存档文件的文件新的文件
-d 差异,

副参数:
-v 显示操作过程
-f 存档文件 指定存档文件
-C 目录 指定目录
-z 通过gzip压缩解压,现在解压不需要指定,tar会自动选择
tar -cvf test.tar testDir test2 打包当前目录下testDir目录和test2,生成test.tar文件
tar -xvf test.tar 解包test.tar到当前目录

tar -xvf test.tar -C ../foo 在当前目录的上级目录的foo目录里解包test.tar
gzip 压缩文件,解压gzip文件,不能压缩目录,需配合tar使用。默认压缩文件,并删除原文件 gzip [参数] [文件] -d 解压
-c 输出压缩文件到标准输出设备,而不更改原文件
-f 强制压缩覆盖
-l 显示压缩信息
-k 不删除原文件
-r 在目录上递归操作,压缩或解压单个文件
gzip * 把当前目录所有文件转化为压缩文件
gzip -d *把当前目录所有压缩文件转化为文件
unzip 解压zip文件 unzip [参数] [文件] -d 目录 指定解压缩目录
-l 列出压缩包所包含的文件
-v 显示执行过程
-n 不覆盖原文件
-j 不创建压缩文件里的目录
-k 不删除原文件
-r 在目录上递归操作,压缩或解压单个文件
unzip test.zip 解压缩test.zip到当前目录
unzip test.zip -d foo解压缩test.zip到当前目录的foo目录中

权限管理

命令 描述 语法格式 常用参数 示例
chmod 修改文件或目录权限。

查看权限可使用ls -l命令
chmod [参数] 模式 [文件]

chmod [参数] --reference=参照文件 [文件]

模式格式:
[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+
-R 递归的方式为目录所有文件权限
-v 显示所有操作过程
-c 只显示被改变权限的文件操作过程
-f 安静模式,不输出错误信息

模式:
u 属主,文件属于的用户
g 属组,文件属于的用户组
o 其他用户
a 所有用户(默认)
+ 增加权限
- 取消权限
= 重新设定权限
r 读权限,用数字4表示
w 写权限,用数字2表示
x 执行权限,用数字1表示
0 无权限,用数字0表示
chmod 751 test设置test文件权限,属主读、写和执行的权限(7),属组读和执行的权限(5),其他用户执行的权限(1)。
chmod a+r test 设置test文件权限,为所有用户增加读取权限
chmod a=r,u+w test 设置test文件为所有用户只读,属主可写权限。
chown 修改文件或目录的属主和属组。
(属主:文件属于的用户, 属组:文件属于的用户组。)
chown [参数] [属主][:[属组]] 文件

chown [参数] --reference=参照文件 文件
-R 递归的方式更改目录所有文件的属主和属组
-v 显示所有操作过程
-c 只显示被改变的文件操作过程
-f 安静模式,不输出错误信息
chown foo:root test修改test用户属主为foo用户,属组为root用户组
chgrp 修改文件或目录的属组。
(属组:文件属于的用户组。)
chown [参数] 属组 文件

chown [参数] --reference=参照文件 文件
-R 递归的方式更改目录所有文件的属组
-v 显示所有操作过程
-c 只显示被改变的文件操作过程
-f 安静模式,不输出错误信息
chgrp root test修改test文件属组为root用户组

远程

命令 描述 语法格式 常用参数 示例
ssh 远程登录工具 ssh root@46.100.125.122 使用root用户登录46.100.125.122
scp 加密远程传输文件,基于ssh。 scp C:\Users\username\a.txt root@46.100.125.122:/home/root/b.txt 将本地a.txt复制到远程主机的/home/root/b.txt

网络命令

命令 描述 语法格式 常用参数 示例
ip 显示和配置网络
ifconfig 查看和配置网络设备
ping 网络诊断工具,检测连通性
netstat 显示网络状态
route 显示和修改路由表

磁盘管理

命令 描述 语法格式 常用参数 示例
lsblk 列出块设备信息 lsblk [参数] [设备] -a 显示所有设备
-b以bytes方式显示设备大小
-d 不显示分区
-m 显示权限信息
lsblk显示块设备信息
lsblk -d 显示块设备信息,但不显示其节点信息
df 显示磁盘使用情况 df [参数] [文件] -a 所有文件系统
-h 以K、M、G、T、P等方式显示大小(除数为1024)
-H 与-h相同,但除数为1000
-i 显示inode信息
-l 只显示本地文件系统
-T 显示文件系统类型
t 文件系统类型 指定文件系统类型
df -h 以易读方式显示磁盘使用情况
df -t ext4 显示ext4类型文件系统的磁盘使用情况
du 文件或目录的磁盘使用情况 df [参数] [文件] -a 显示所有文件情况,而不仅是默认情况的目录
-h 以K、M、G、T、P等方式显示大小(除数为1024)
-H 与-h相同,但除数为1000
-s 只显示总计
-S 仅统计目录不包含子目录的大小
du -h test 易读方式显示test目录所占空间
fdisk 磁盘分区工具 fdisk -l 列出所有磁盘分区类型
mount 挂载工具 mount /dev/sdc2 test 挂载sdc2(第三个硬盘第二个分区)到当前目录的test目录
hdparm 查看硬盘参数和性能测试 sudo hdparm -I /dev/sda 显示sda硬盘信息
sudo hdparm -t /dev/sda 测试sda硬盘的读取速度

系统管理

命令 描述 语法格式 常用参数 示例
ps 进程状态信息
top 实时显示进程状态信息
vmstat 虚拟内存统计,可以显示虚拟内存、进程、CPU等的整体情况
systemctl systemd的一个主要工具,可用于系统管理和服务管理。 systemctl --version 查看版本
systemctl start nginx.service启动nginx服务