Unix shell是Linux和Unix系统中的命令行解释器,用户通过它与操作系统进行交互,掌握常用的shell命令能够极大提升系统管理、文件操作和编程效率,以下将详细介绍Unix shell中常用的命令,涵盖文件管理、文本处理、系统监控、进程管理等多个方面。

文件管理是shell操作的基础。ls
命令用于列出目录内容,ls -l
以详细格式显示文件权限、所有者、大小和修改时间,ls -a
则显示包括隐藏文件在内的所有文件。cd
命令用于切换目录,cd ..
返回上级目录,cd ~
进入用户主目录。pwd
命令显示当前工作目录的完整路径,创建目录使用mkdir
,如mkdir newdir
创建单个目录,mkdir -p parent/child
可递归创建多级目录,删除目录时,rmdir
只能删除空目录,而rm -r
可递归删除非空目录,rm -rf
强制删除且不提示,需谨慎使用,文件操作方面,touch filename
创建空文件或更新文件时间戳,cp source destination
复制文件或目录,mv oldname newname
用于移动文件或重命名,rm filename
删除文件。ln -s source linkname
创建符号链接,类似于Windows中的快捷方式。
文本处理命令在Unix中尤为强大。cat
命令用于显示文件内容,cat file1 file2 > combined
可合并多个文件。less
和more
用于分页查看文件内容,less
支持向前和向后翻页。grep
用于文本搜索,grep "pattern" file
在文件中查找匹配的行,grep -r "pattern" dir
递归搜索目录,grep -i
忽略大小写。sed
是流编辑器,用于文本替换,如sed 's/old/new/g' file
将文件中所有"old"替换为"new"。awk
是强大的文本分析工具,awk '{print $1}' file
打印每行的第一列,awk -F',' '{print $2}' file
指定逗号为分隔符并打印第二列。sort
对文件行进行排序,sort -n
按数字排序,sort -r
降序排列,uniq
用于去除重复行,通常与sort
配合使用,如sort file | uniq
。head
和tail
分别显示文件的前几行和后几行,head -n 10 file
显示前10行,tail -f file
实时跟踪文件更新。
系统监控命令帮助用户了解系统状态。top
和htop
动态显示进程和系统资源使用情况,htop
是top
的增强版,界面更友好。df -h
查看磁盘空间使用情况,-h
选项以人类可读格式显示(如KB、MB、GB)。du -sh *
显示当前目录下各文件和目录的大小,-s
仅显示总计。free -h
查看内存使用情况。ps aux
列出当前运行的进程,ps -ef
显示所有进程的完整信息,kill -9 PID
强制终止指定进程,killall processname
通过进程名终止进程。uname -a
显示系统信息,包括内核版本和主机名。uptime
显示系统运行时间和负载情况。netstat -tuln
查看监听的端口和连接状态,ss -tuln
是netstat
的替代工具,性能更优。
网络相关命令用于管理和调试网络连接。ping
测试网络连通性,ping google.com
向目标主机发送ICMP包。ifconfig
或ip addr
显示和配置网络接口,ifconfig eth0 up
启用网卡,ip addr add 192.168.1.100/24 dev eth0
添加IP地址。ssh user@host
通过SSH远程登录主机,scp localfile user@host:remotepath
安全复制文件到远程主机。wget
或curl
用于下载文件,wget https://example.com/file.zip
下载文件,curl -I https://example.com
获取HTTP头信息。traceroute
显示数据包到目标主机的路径,nslookup
或dig
用于DNS查询,nslookup example.com
查询域名对应的IP地址。

压缩与归档命令便于文件备份和传输。tar
是最常用的归档工具,tar -czf archive.tar.gz files
创建gzip压缩的归档文件,tar -xzf archive.tar.gz
解压,tar -tvf archive.tar
查看归档内容。zip
和unzip
处理.zip格式文件,zip -r archive.zip dir
递归压缩目录,unzip archive.zip
解压。gzip
用于压缩单个文件,gzip file
压缩并生成.gz文件,gunzip file.gz
解压。bzip2
和bunzip2
提供更高压缩率的压缩工具,但速度较慢。
权限管理命令确保系统安全。chmod
修改文件权限,chmod 755 file
设置所有者可读写执行,组和其他用户可读执行,chmod u+x file
为所有者添加执行权限。chown
更改文件所有者,chown user:group file
同时更改所有者和所属组,sudo chown -R user dir
递归更改目录所有权。umask
设置默认权限,如umask 022
新创建的文件默认权限为644(目录为755)。
以下是一些常见问题的解答:
FAQs

-
问:如何查找包含特定字符串的文件?
答:可以使用grep
命令结合-r
选项递归搜索目录,在当前目录及其子目录中查找包含"error"的文件,可执行grep -r "error" .
,若需忽略大小写,添加-i
选项,即grep -ri "error" .
,若需显示文件名和行号,使用n
选项,如grep -rn "error" .
。 -
问:如何后台运行一个长时间执行的命令?
答:在命令末尾添加&
符号可将进程放入后台运行,例如long_running_command &
,若需在后台运行并输出日志到文件,可使用nohup
命令,如nohup long_running_command > output.log 2>&1 &
,其中nohup
使进程忽略挂断信号,> output.log
将标准输出重定向到文件,2>&1
将错误输出也重定向到同一文件,&
表示后台运行。