80个常用shell命令及简单用法

Shell命令是Linux和Unix系统中的基础,用于完成各种操作,如文件管理、程序执行、文本处理等。下面列举一些常用的Shell命令,并详细解释它们的功能及应用场景:

  1. ls - 列出目录内容

    • 功能:列出指定目录中的文件和目录。
    • 应用场景:查看目录中的内容。
    • 例子:ls -lh 显示当前目录下的文件和目录,并以人类可读的格式显示文件大小。
  2. cd - 更改当前目录

    • 功能:更改Shell的当前工作目录。
    • 应用场景:在文件系统中导航。
    • 例子:cd /home/user 切换到 /home/user 目录。
  3. pwd - 打印当前目录

    • 功能:显示当前工作目录的完整路径。
    • 应用场景:找出当前所在目录。
    • 例子:pwd 输出当前目录路径。
  4. mkdir - 创建目录

  5. rmdir - 删除目录

  6. touch - 创建或更新文件

  7. rm - 删除文件或目录

  8. cp - 复制文件或目录

  9. mv - 移动或重命名文件或目录

  10. grep - 文本搜索

  11. find - 查找文件

  12. cat - 查看和连接文件

  13. echo - 输出文本

  14. tail - 查看文件末尾内容

  15. head - 查看文件开头内容

  16. sort - 排序文本文件中的行

  17. uniq - 报告或省略重复行

  18. cut - 剪切文本文件中的部分

    • 功能:按列提取文本文件的内容。
    • 应用场景:从文件中提取指定的列。
    • 例子:cut -d':' -f 1 /etc/passwd 提取 /etc/passwd 文件中以冒号分隔的第一列。
  19. awk - 强大的文本处理工具

    • 功能:用于模式扫描和处理语言的工具,非常适合文本处理。
    • 应用场景:复杂的文本处理,如分析、提取和报告。
    • 例子:awk '{print $2, $1}' file.txt 交换每行的第一和第二个字段。
    • 详细用法:19. 常用shell之awk的用法-CSDN博客
  20. sed - 流编辑器

    • 功能:对文本流(如文件)执行基本的文本转换。
    • 应用场景:文本替换、插入、删除等。
    • 例子:sed 's/old/new/g' file.txtfile.txt 中的 "old" 全部替换为 "new"。
    • 详细用法:20. 常用shell之sed的用法及优缺点-CSDN博客
  21. chmod - 更改文件权限

    • 功能:更改文件或目录的访问权限。
    • 应用场景:设置文件的读、写和执行权限。
    • 例子:chmod 755 script.sh 设置 script.sh 可被所有人读取和执行,只有所有者可写。
  22. chown - 更改文件所有者

    • 功能:更改文件或目录的所有者和组。
    • 应用场景:更改文件的所有权。
    • 例子:chown user:group file.txt 更改 file.txt 的所有者为 "user",组为 "group"。
  23. df - 显示磁盘空间使用情况

    • 功能:显示文件系统的磁盘空间使用情况。
    • 应用场景:监控磁盘空间。
    • 例子:df -h 以人类可读的格式显示磁盘空间使用情况。
  24. du - 显示目录空间使用情况

    • 功能:显示文件或目录所占用的磁盘空间。
    • 应用场景:查找占用大量磁盘空间的文件或目录。
    • 例子:du -sh /path/to/directory 显示指定目录的总磁盘使用量。
  25. ps - 查看活动进程

    • 功能:显示当前系统中的活动进程。
    • 应用场景:监控和管理进程。
    • 例子:ps aux 显示系统中所有进程的详细列表。
  26. top - 实时显示进程动态

    • 功能:实时显示进程及系统资源的使用情况。
    • 应用场景:动态监控系统和进程状态。
    • 例子:直接运行 top 会打开一个交互界面,显示当前活动进程及资源使用情况。
  27. kill - 终止进程

    • 功能:发送信号到进程,通常用于终止进程。
    • 应用场景:终止挂起的或无响应的进程。
    • 例子:kill -9 1234 强制终止 PID 为 1234 的进程。
  28. tar - 打包和解压文件

    • 功能:将文件打包成一个大文件,可选压缩或解压。
    • 应用场景:文件备份和压缩。
  29. crontab - 定时任务调度

    • 功能:安排定时任务。
    • 应用场景:自动执行周期性任务,如备份、脚本运行等。
    • 例子:crontab -e 打开定时任务编辑器,添加或修改计划任务。
  30. wget - 网络下载工具

    • 功能:从网络上下载文件。
    • 应用场景:命令行下载网页、文件等。
    • 例子:wget http://example.com/file.zip 下载指定URL的文件。
  31. curl - 数据传输工具

    • 功能:与服务器交换数据。
    • 应用场景:命令行下进行数据上传、下载,API测试等。
    • 例子:curl http://example.com 显示指定 URL 的内容。
  32. ssh - 安全远程登录

    • 功能:安全地远程登录到另一台计算机。
    • 应用场景:远程管理服务器或设备。
    • 例子:ssh user@example.com 使用 SSH 连接到 example.com。
  33. scp - 安全复制文件

    • 功能:通过 SSH 安全地传输文件。
    • 应用场景:在不同计算机间安全地复制文件。
    • 例子:scp file.txt user@example.com:/path 将本地的 file.txt 复制到远程服务器。
  34. iptables - 网络防火墙配置

    • 功能:配置 Linux 内核防火墙。
    • 应用场景:设置网络访问控制规则。
    • 例子:iptables -L 列出所有防火墙规则。
  35. df - 磁盘空间使用情况

    • 功能:显示文件系统的磁盘使用情况。
    • 应用场景:检查磁盘空间。
    • 例子:df -h 以人类可读的格式显示磁盘使用情况。
  36. du - 磁盘占用空间

    • 功能:估算和显示文件或目录所占磁盘空间。
    • 应用场景:分析磁盘空间使用。
    • 例子:du -sh /path/to/dir 显示指定目录的总占用空间。
  37. nano / vi / vim - 文本编辑器

    • 功能:在命令行中编辑文本文件。
    • 应用场景:创建和修改配置文件或编写代码。
    • 例子:nano file.txtvi file.txt 打开文件进行编辑。
  38. jobs - 列出后台作业

    • 功能:显示当前后台运行的作业。
    • 应用场景:管理后台进程。
    • 例子:jobs 列出所有后台作业。
  39. fg - 将后台作业移到前台

    • 功能:将后台作业移至前台继续运行。
    • 应用场景:继续在前台操作被暂停的作业。
    • 例子:fg %1 将作业号为1的后台作业移到前台。
  40. bg - 将作业放到后台运行

    • 功能:使作业在后台继续运行。
    • 应用场景:将暂停的作业放到后台继续运行。
    • 例子:bg %1 将作业号为1的作业放到后台。
  41. alias - 创建命令别名

    • 功能:为长命令或常用命令创建短的别名。
    • 应用场景:简化复杂的命令或常用命令序列。
    • 例子:alias ll='ls -l' 创建 ll 作为 ls -l 的别名。
  42. unalias - 移除别名

    • 功能:删除之前创建的别名。
    • 应用场景:删除不再需要的命令别名。
    • 例子:unalias ll 移除 ll 这个别名。
  43. env - 查看环境变量

    • 功能:显示当前用户的环境变量。
    • 应用场景:查看或设置环境变量。
    • 例子:env 显示当前所有环境变量。
  44. export - 设置或显示环境变量

    • 功能:创建新的环境变量或修改现有的环境变量。
    • 应用场景:配置程序运行时的环境设置。
    • 例子:export PATH=$PATH:/new/path 添加 /new/path 到现有的 PATH 环境变量。
  45. unset - 删除环境变量或函数

    • 功能:删除指定的环境变量或函数。
    • 应用场景:清理不再需要的环境变量或函数。
    • 例子:unset PATH 删除 PATH 环境变量。
  46. which - 显示命令的完整路径

    • 功能:显示指定命令的完整路径。
    • 应用场景:确定正在使用的命令的位置。
    • 例子:which ls 显示 ls 命令的路径。
  47. whereis - 查找文件

    • 功能:定位命令、源文件和手册页的位置。
    • 应用场景:查找程序相关文件的位置。
    • 例子:whereis python 查找 Python 的可执行文件和源码位置。
  48. man - 显示命令手册

    • 功能:显示命令的手册页(帮助文档)。
    • 应用场景:学习特定命令的用法和选项。
    • 例子:man ls 显示 ls 命令的手册页。
  49. history - 命令历史

    • 功能:显示用户命令历史。
    • 应用场景:回顾或重用之前的命令。
    • 例子:history 显示命令历史列表。
  50. chmod - 更改文件权限

    • 功能:更改文件或目录的权限。
    • 应用场景:控制对文件和目录的访问。
    • 例子:chmod 755 filename 设置文件的读、写、执行权限。
  51. chown - 更改文件所有者和组

    • 功能:更改文件或目录的所有者和组。
    • 应用场景:管理文件和目录的所有权。
    • 例子:chown user:group filename 更改文件的所有者和组。
  52. gzip / gunzip - 压缩和解压文件

    • 功能:使用 Gzip 压缩或解压文件。
    • 应用场景:减小文件大小以节省空间或便于传输。
    • 例子:gzip file 压缩文件,gunzip file.gz 解压文件。
  53. zip / unzip - 压缩和解压 ZIP 文件

    • 功能:创建和解压 ZIP 格式的压缩文件。
    • 应用场景:文件打包和压缩。
    • 例子:zip archive.zip file1 file2 压缩文件,unzip archive.zip 解压文件。
  54. watch - 定期执行命令

    • 功能:定期执行命令并显示其输出。
    • 应用场景:监视命令的输出,如系统资源、进程状态等。
    • 例子:watch df -h 每隔2秒更新并显示磁盘空间使用情况。
  55. df - 显示磁盘使用情况

    • 功能:显示系统中文件系统的磁盘使用情况。
    • 应用场景:监控磁盘空间使用。
    • 例子:df -h 以人类可读的格式显示磁盘空间使用情况。
  56. free - 查看内存使用情况

    • 功能:显示系统的空闲和已用内存及交换空间。
    • 应用场景:监控内存使用情况。
    • 例子:free -m 以 MB 为单位显示内存使用情况。
  57. ping - 检查网络连接

    • 功能:发送 ICMP ECHO_REQUEST 以测试目标主机的可达性。
    • 应用场景:诊断网络连接问题。
    • 例子:ping google.com 测试与 google.com 的网络连接。
  58. netstat - 网络统计信息

    • 功能:显示网络连接、路由表、接口统计等网络信息。
    • 应用场景:网络问题诊断和分析。
    • 例子:netstat -a 显示所有网络连接。
  59. traceroute - 跟踪网络路径

    • 功能:显示数据包到达主机所经过的路由。
    • 应用场景:网络路径分析。
    • 例子:traceroute google.com 跟踪到 google.com 的路径。
  60. dig - 查询 DNS 信息

    • 功能:查询 DNS 名称服务器信息。
    • 应用场景:DNS 故障诊断和信息查询。
    • 例子:dig example.com 查询 example.com 的 DNS 信息。
  61. nslookup - 查询 DNS 信息

    • 功能:查询域名的 DNS 信息。
    • 应用场景:DNS 问题调试。
    • 例子:nslookup google.com 查询 google.com 的 DNS 信息。
  62. ifconfig - 配置或显示网络接口参数

    • 功能:配置或显示网络接口的网络参数。
    • 应用场景:网络配置和故障排查。
    • 例子:ifconfig eth0 显示或配置名为 eth0 的网络接口。
  63. iwconfig - 配置无线网络接口

    • 功能:用于配置无线网络接口的参数。
    • 应用场景:无线网络接口配置。
    • 例子:iwconfig wlan0 查看或配置名为 wlan0 的无线网络接口。
  64. hostname - 显示或设置系统的主机名

    • 功能:显示或设置系统的主机名。
    • 应用场景:管理系统主机名。
    • 例子:hostname 显示当前系统主机名。
  65. useradd / userdel - 添加或删除用户

    • 功能:添加或删除系统用户。
    • 应用场景:用户账户管理。
    • 例子:useradd newuser 添加新用户,userdel olduser 删除用户。
  66. groupadd / groupdel - 添加或删除组

    • 功能:添加或删除用户组。
    • 应用场景:用户组管理。
    • 例子:groupadd newgroup 添加新组,groupdel oldgroup 删除组。
  67. passwd - 更新用户密码

    • 功能:更新用户的密码。
    • 应用场景:修改用户账户密码。
    • 例子:passwd username 修改指定用户的密码。
  68. chgrp - 更改文件或目录的群组

    • 功能:更改文件或目录的群组归属。
    • 应用场景:管理文件或目录的群组权限。
    • 例子:chgrp groupname file 更改文件的群组。
  69. chmod - 更改文件或目录的权限

    • 功能:更改文件或目录的访问权限。
    • 应用场景:管理文件或目录的访问权限。
    • 例子:chmod 755 file 设置文件的权限。
  70. su - 切换用户身份

    • 功能:切换当前用户身份到另一个用户。
    • 应用场景:临时以其他用户身份执行命令。
    • 例子:su - username 切换到指定用户。
  71. sudo - 以超级用户身份执行命令

    • 功能:以超级用户或指定用户身份执行命令。
    • 应用场景:执行需要管理员权限的命令。
    • 例子:sudo apt update 以超级用户身份更新软件包列表。
  72. apt-get / yum / dnf - 包管理器

    • 功能:软件包安装和管理(基于发行版)。
    • 应用场景:安装、更新和移除软件包。
    • 例子:apt-get install nginx 安装 Nginx(在基于Debian的系统上)。
  73. mount / umount - 挂载或卸载文件系统

    • 功能:挂载或卸载文件系统。
    • 应用场景:管理设备或存储的挂载点。
    • 例子:mount /dev/sdb1 /mnt 挂载设备,umount /mnt 卸载。
  74. fdisk - 磁盘分区工具

    • 功能:查看和修改磁盘分区表。
    • 应用场景:磁盘分区管理。
    • 例子:fdisk /dev/sda 修改 /dev/sda 磁盘的分区表。
  75. mkfs - 创建文件系统

    • 功能:在分区上创建新的文件系统。
    • 应用场景:格式化分区,准备存储使用。
    • 例子:mkfs.ext4 /dev/sdb1/dev/sdb1 创建一个新的 ext4 文件系统。
  76. fsck - 检查和修复文件系统

    • 功能:检查和修复文件系统的一致性和完整性。
    • 应用场景:修复损坏或不一致的文件系统。
    • 例子:fsck /dev/sda1 检查并修复 /dev/sda1 分区。
  77. dd - 转换和复制文件

    • 功能:复制文件并在复制过程中进行指定的转换。
    • 应用场景:备份整个磁盘或分区,创建启动盘等。
    • 例子:dd if=/dev/sda of=/dev/sdb 将 sda 磁盘的内容复制到 sdb 磁盘。
  78. find - 查找文件和目录

    • 功能:在目录树中查找文件和目录。
    • 应用场景:搜索文件和目录,执行搜索到的文件上的操作。
    • 例子:find / -name "*.conf" 在根目录下查找所有以 .conf 结尾的文件。
  79. locate - 快速查找文件

    • 功能:基于数据库快速查找文件的位置。
    • 应用场景:快速定位文件。
    • 例子:locate nginx.conf 快速查找名为 nginx.conf 的文件。
  80. tar - 打包和压缩/解压缩文件

    • 功能:创建文件档案,并可选地对其进行压缩或解压缩。
    • 应用场景:文件打包和压缩。
    • 例子:tar -czvf archive.tar.gz /path/to/dir

以下是 Shell 脚本中常用命令以及使用方法: 1. echo:输出文本或变量值 用法:echo [选项] [字符串] 常用选项: -n:不换行输出 -e:启用转义字符 示例: ``` echo "Hello, world!" # 输出 Hello, world! echo -n "Hello, " # 输出 Hello, 不换行 echo "world!" # 输出 world!,与上一行连在一起 echo -e "1\t2\t3\n4\t5\t6" # 输出带有制表符和换行符的字符串 ``` 2. read:接收用户输入 用法:read [选项] [变量名] 常用选项: -p:提示用户输入时显示的字符串 示例: ``` read -p "请输入你的名字:" name echo "你好,$name!" ``` 3. if:条件语句 用法: ``` if [ 条件 ]; then # 条件成立时执行的语句 else # 条件不成立时执行的语句 fi ``` 示例: ``` if [ $1 -gt 0 ]; then echo "$1 是正整数" elif [ $1 -eq 0 ]; then echo "$1 是零" else echo "$1 是负整数" fi ``` 4. for:循环语句 用法: ``` for 变量 in 列表; do # 循环体 done ``` 示例: ``` for i in {1..10}; do echo $i done for file in *.txt; do echo $file done ``` 5. while:循环语句 用法: ``` while [ 条件 ]; do # 循环体 done ``` 示例: ``` i=1 while [ $i -le 10 ]; do echo $i i=$((i+1)) done ``` 6. case:多分支语句 用法: ``` case 变量 in 模式1) # 模式1 成立时执行的语句 ;; 模式2) # 模式2 成立时执行的语句 ;; *) # 所有模式都不成立时执行的语句 ;; esac ``` 示例: ``` case $1 in start) echo "启动服务" ;; stop) echo "停止服务" ;; restart) echo "重启服务" ;; *) echo "用法:$0 start|stop|restart" ;; esac ``` 7. test:测试文件或字符串是否存在,以及比较数值 用法: ``` test [选项] 参数 [选项] 参数 ``` 常用选项: -e:测试文件是否存在 -f:测试文件是否为普通文件 -d:测试文件是否为目录 -z:测试字符串是否为空 -n:测试字符串是否非空 -eq:测试数值是否相等 -lt:测试数值是否小于 -gt:测试数值是否大于 示例: ``` if test -e file.txt; then echo "file.txt 存在" fi if [ -f file.txt ]; then echo "file.txt 是普通文件" fi if [ -d dir ]; then echo "dir 是目录" fi if [ -z "$str" ]; then echo "str 是空字符串" fi if [ $num -gt 0 ]; then echo "num 是正数" fi ``` 8. grep:文本搜索工具 用法:grep [选项] 模式 [文件] 常用选项: -i:忽略大小写 -v:反向搜索,输出不匹配的行 -n:显示匹配行的行号 示例: ``` grep "hello" file.txt # 在 file.txt 中搜索 hello grep -i "hello" file.txt # 在 file.txt 中忽略大小写地搜索 hello grep -n "hello" file.txt # 在 file.txt 中搜索 hello 并显示匹配行的行号 grep -v "hello" file.txt # 在 file.txt 中反向搜索,输出不匹配的行 ``` 9. sed:流编辑器,用于文本替换 用法:sed [选项] '命令' 文件 常用命令: s/模式/替换/:替换指定模式为指定替换内容 示例: ``` sed 's/hello/hi/g' file.txt # 将 file.txt 中所有 hello 替换为 hi ``` 10. awk:文本处理工具,可进行简单数据分析和处理 用法:awk [选项] '模式 { 命令 }' [文件] 常用命令: print:输出指定内容 示例: ``` awk '{ print $1 }' file.txt # 输出 file.txt 中每行的第一个单词 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值