在学习Linux的过程中,你是不是会经常记不住一些命令,想要深入了解Linux Shell的相关知识但是因为全英文的手册而被劝退?
不用担心,不念为大家汇总了新手常用的Linux shell命令,以参数+实例的方式介绍每个命令的功能,快来一起看看吧~
1、ls: 列出目录中的内容
参数:
ls | 作用 |
-a | 显示所有文件,包含隐藏文件 |
-A | 显示所有文件,包含隐藏文件,但不包含.和.. |
-l | 显示为long format(长格式),列出文件的类型、权限、链接数、owner、group、大 小,时间,名字 |
-R | 递归(recursive)。该选项递归地列举所有目录(在当前目录之下)的内容 |
-d | 不展开目录,只显示目录自身,一般与-l配合使用以显示目录自身的属性信息(只显示当前目录的内容) |
-1 | 数字1,成列显示内容 |
-S | 以文件大小排序显示,默认从大到小 -r后,从小到大 |
-U | 按存放顺序排序显示 |
-X | 按扩展名的首字母来排序 |
-t | 按mtime排序(先显示时间最近的) |
-ul | 按atime排序(先显示时间最近的) |
-ct | 按ctime排序(先显示时间最近的) |
案例
ls | 作用 |
ls-R | 列出所有文件/dir和sub dir |
ls-r | 按相反顺序列出文件 |
ls-a | 列出隐藏文件 |
ls-al | 列出所有详细信息(所有者、大小等) |
ls-l | 列出所有文件和详细信息 |
ls-l — | 长格式视图 |
ls-a — | 列出所有文件,包括用于创建视图的点开始、重定向和连接文件 |
2、cat: 创建,查看,重定向,连接合并文件
参数:
cat | 作用 |
-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”选项 |
案例
cat | 作用 |
cat temp1.txt | 查看temp1.txt内容 |
cat file1 file2 | 查看file1,file2多个文件 |
cat >filename | 创建名为filename的文件 |
cat file1 file2 > temp | 合并两个文件 |
cat – b | 将行号添加到非空行 |
cat – n | 将行号添加到所有行 |
cat – s | 将空行压缩为一行 |
cat – e | 在行末显示$ |
cat file1 >> file2 | 追加 |
tac file | 反向查看数据 |
cat *.txt | 查看所有txt.文件的数据 |
cat >file.txt | 创建和输入 |
cat >>file.txt | 向同一文件添加更多数据 |
cat file1.txt > file2.txt | 复制文件 |
3、wc:统计指定文件中的字节数、字数、行数, 并将统计结果显示输出
参数:
wc | 作用 |
– c | 统计字节数 |
– l | 统计行数 |
– w | 统计字数 |
案例
wc | 作用 |
wc – l file1 | 查看全部行 |
wc – w file1 | 查看总字数 |
wc – c file1 | 总字节数 |
4、mv:移动文件至其他目录
参数:
mv | 作用 |
-b | 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。 |
-i | 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作 |
-f | 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件 |
-n | 不要覆盖任何已存在的文件或目录 |
-u | 当源文件比目标文件新或者目标文件不存在时,才执行移动操作 |
例子
mv | 作用 |
mv*.c bck | 将当前目录中的所有C文件移动到bck子目录 |
mv bck/* | 将bck子目录中的所有文件移动到当前目录 |
mv file.cfile.bck | 重命名file.c —> file.bck |
mv file 1 file2 | 改名 |
mv–u file 1.c bck | 更新 |
mv–v file 1.c bck | 重写前提示 |
mmv a\*b\#1 | 重命名多个以字母a、b开头的文件#1与第一个字母匹配#2与两个字母匹配 |
mmv’*abc*’#1xyx#2′ | 将abc替换为xyz |
mmv–n a\*b\#1 | 使用–n选项显示 |
5、rename:重命名
rename | 作用 |
rename “s/abc/xyz/”* | 重命名多个文件 |
rename ‘y/a-z/A-Z/’* | 隐蔽文件将a-z重命名为A-Z |
rename“s/*//g”* | 删除文件名中的空格 |
6、cd:改变目录
cd | 作用 |
cd /root/.. | 改变当前目录至(路径) |
cd ~ | 目录改变至home |
cd / | 目录改变至根目录 |
cd .. | 返回上级目录(父目录) |
7、 cp:复制目录
参数:
cp | 作用 |
-a | 此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合 |
-d | 复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式 |
-f | 覆盖已经存在的目标文件而不给出提示 |
-i | 与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖 |
-p | 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中 |
-r | 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件 |
-l | 不复制文件,只是生成链接文件 |
案例
cp | 作用 |
cp -r /usr/men /usr/zh | 将目录/usr/men下的所有文件及其子目录复制到目录/usr/zh中 |
cp -i /usr/men m*.c /usr/zh | 交互式地将目录/usr/men中的以m打头的所有.c文件复制到目录/usr/zh中 |
8、more:一页一页的方式输出文件内容
参数:
more | 作用 |
-d | 提示使用者,在画面下方显示 [Press space to continue, ‘q’ to quit.] ,如果使用者按错键,则会显示 [Press ‘h’ for instructions.] 而不是 ‘哔’ 声 |
-l | 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能 |
-f | 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上) |
-p | 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容 |
-c | 跟 -p 相似,不同的是先显示内容再清除其他旧资料 |
-s | 当遇到有连续两行以上的空白行,就代换为一行的空白行 |
-u | 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同) |
案例
more | 作用 |
more -s file1 | 逐页显示 file1 文档内容,如有连续空白行则以一行空白行显示 |
more +2 file1 | 从第二行开始显示file1文档的内容 |
more -2 file1 | 设定每屏显示的行数 |
9、du:统计目录/文件所占空间大小
参数:
du | 作用 |
-a或-all | 为每个指定文件显示磁盘使用情况,或者为目录中每个文件显示各自磁盘使用情况 |
-b或-bytes | 显示目录或文件大小时,以byte为单位 |
-c或–total | 除了显示目录或文件的大小外,同时也显示所有目录或文件的总和 |
-D或–dereference-args | 显示指定符号连接的源文件大小 |
-h或–human-readable | 以K,M,G为单位,提高信息的可读性 |
-H或–si | 与-h参数相同,但是K,M,G是以1000为换算单位,而不是以1024为换算单位 |
-k或–kilobytes | 以1024 bytes为单位 |
-l或–count-links | 重复计算硬件连接的文件 |
-L<符号连接>或–dereference<符号连接> | 显示选项中所指定符号连接的源文件大小 |
-m或–megabytes | 以1MB为单位 |
-s或–summarize | 仅显示总计,即当前目录的大小 |
-S或–separate-dirs | 显示每个目录的大小时,并不含其子目录的大小 |
-x或–one-file-xystem | 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过 |
-X<文件>或–exclude-from=<文件> | 在<文件>指定目录或文件 |
10、chmod:修改文件权限
参数:
chmod | 作用 |
chmod 754 file.sh | 改变file.sh文件权限为所有者可读可写可执行,群组可读可执行,其它仅可读 |
chmod 644 file.sh | 改变file.sh文件权限为所有者可读可写,群组和其它均为可读 |
chmod – R 755 file.sh -R | 用递归的方式改变文件或目录的权限 |
chmod权限数字补充:
第一个数字代表档案拥有者
第二个数字代表群组
第三个数字代表其他
在Linux中我们有三种常用权限:可读、可写以及可执行,用数字表示的话就是:可读 = 4,可写=2,可执行=1
例:755
第一个数字7是档案拥有者的权限(可读+可写+可执行=4+2+1)
第二个数字5是群组的权限(可读+可执行=4+1)
第三个数字5是其他人的权限(可读+可执行=4+1)
11、rmdir:删除某个目录
参数:
sudo | 作用 |
-p | 是当子目录被删除后使它也成为空目录的话,则顺便一并删除 |
案例
rmdir | 作用 |
rmdir dir | 如果目录dir为空,则移除该目录 |
rm – r dir -r | 递归方法移除文件 |
rm – rf dir | 递归删除+忽略非附加的参数并不提示 |
12、find:查找
参数:
find | 作用 |
find /dir –type d –empty -delete | 移除所有树下的空路径 |
-iname name | 文件名称符合 name 的文件 |
13、man:Linux shell帮助手册
参数:
man | 作用 |
-a | 在所有的man帮助手册中搜索 |
-f | 等价于whatis指令,显示给定关键字的简短描述信息 |
-P | 指定内容时使用分页程序 |
-M | 指定man手册搜索的路径 |
14、mkdir:在特定位置创建文件夹/目录
参数:
mkdir | 作用 |
-m | –mode=模式,设定权限<模式> (类似 chmod) |
-p | –parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录 |
-v | –verbose 每次创建新目录都显示信息 –help 显示此帮助信息并退出 –version 输出版本信息并退出 |
15、grep:在某文件中搜索语句
参数:
grep | 作用 |
-c | 只输出匹配行的计数 |
-i | 不区分大 小写(只适用于单字符) |
-q | 不显示任何信息 |
-r | 此参数的效果和指定“-d recurse”参数相同 |
-s | 不显示错误信息 |
-v | 反转查找 |
-V | 显示版本信息 |
-w | 只显示全字符合的列 |
-x | 只显示全列符合的列 |
-y | 此参数的效果和指定“-i”参数相同 |
-h | 在显示符合范本样式的那一列之前,不标示该列所属的文件名称 |
-l | 列出文件内容符合指定的范本样式的文件名称 |
-L | 列出文件内容不符合指定的范本样式的文件名称 |
-n | 在显示符合范本样式的那一列之前,标示出该列的列数编号 |
案例
grep | 作用 |
grep “string” file | 在file中搜索”String”所在行 |
grep –v “string” file | 逆输出:在file中搜索不存在”string”的行 |
grep –n “string” file | 带着行号输出 |
grep –c “string” file | 仅选中的行带着行号输出,其它不显示 |
grep –l “string” *.c | 搜索名字中存在”string”的文件 |
grep –B 3 “string” file | 输出“string”所在行的第前3行的内容 |
grep –i “string” file | 忽略大小写进行搜索 |
16、netstat:展示网络状态
参数:
netstat | 作用 |
-r | 显示路由表信息 |
-g | 显示多重广播功能群组组员名单 |
-s | 按照每个协议来分类进行统计。默认的显示IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP和UDPv6 的统计信息 |
-M | 显示网络内存的集群池统计信息 |
-v | 命令显示每个运行中的基于公共数据链路接口的设备驱动程序的统计信息 |
-W | 不截断IP地址 |
-n | 进制使用域名解析功能。链接以数字形式展示(IP地址),而不是通过主机名或域名形式展示 |
-N | 解析硬件名称 |
-e | 显示额外信息 |
-p | 与链接相关程序名和进程的PID |
-t | 所有的 tcp 协议的端口 |
-x | 所有的 unix 协议的端口 |
-u | 所有的 udp 协议的端口 |
-o | 显示计时器 |
-c | 每隔一个固定时间,执行netstat命令 |
-l | 显示所有监听的端口 |
-a | 显示所有链接和监听端口 |
-F | 显示转发信息库(默认) |
-C | 显示路由缓存而不是FIB |
-Z | 显示套接字的SELinux安全上下文 |
17、passwd:改变密码
passwd | 作用 |
passwd | 改变密码 |
18、sudo:以其他用户的身份执行命令
参数:
sudo | 作用 |
-A | –askpass 使用一个辅助程序以提示密码 |
-b | –background 在后台运行命令 |
-C | –close-from=num 关闭所有大于等于num的文件描述 |
-E | –preserve-env 运行命令时保存用户环境 |
-e | –edit 编辑文件而非运行一个命令 |
-g | –group=group 以指定的组名或组ID运行一个命令 |
-H | –set-home 设置 HOME 变量以指向用户的 HOME 目录 |
-h | –help 显示帮助信息并且退出 |
-i | –login 以目标用户运行登录shell;也可以指定一个命令 |
-K | –remove-timestamp 完全删除时间戳文件 |
-k | –reset-timestamp 失效时间戳文件 |
-l | –list 列出用户特权或检查一个特定的命令;长格式使用两次 |
-n | – non-interactive 非交互方式,无提示被使用 |
-P | –preserve-groups 保存组向量而非设置指定的目标 |
-p | –prompt=prompt 使用指定的密码提示 |
-r | –role=role 用指定的角色创建SELinux安全上下文 |
-S | –stdin 从标准输入读取密码 |
-s | –shell 以目标用户运行 shell;也可以指定一个命令 |
-t | –type=type 使用指定的类型创建 SELinux 安全上下文 |
-U | –other-user=user 在列表模式中,显示用户特权 |
-u | –user=user 以指定的用户或用户ID运行命令(或编辑文件) |
-V | –version 显示版本信息并且退出 |
-v | –validate 更新用户的时间戳而不运行一个命令 |
案例
sudo | 作用 |
sudo -i | 改变根用户的密码 |
sudo apt install grep | 安装grep包 |
sudo apt –get update | 升级包 |
暂无评论内容