Shell 命令汇总
1.目录操作
- 
ls:列出目录内容。使用-l选项以长列表格式显示详细信息,使用-a显示隐藏文件。
| 1 | ls -la | 
- 
cd:更改目录。
| 1 | cd /path/to/directory | 
- 
pwd:显示当前工作目录的路径。
| 1 | pwd | 
- 
mkdir:创建一个新目录。
| 1 | mkdir new_directory | 
- 
rmdir:删除空目录。
| 1 | rmdir empty_directory | 
- 
rm:删除文件或目录。使用-r递归删除目录及其内容,使用-f强制删除无需确认。
| 1 | rm -rf /path/to/directory | 
- 
cp:复制文件或目录。使用-r复制目录。
| 1 | cp source_file target_file | 
- 
mv:移动或重命名文件或目录。
| 1 | mv old_name new_name | 
- 
touch:创建一个空文件或者更新现有文件的时间戳。
| 1 | touch filename | 
- 
rename:批量重命名文件。
| 1 | rename 's/old/new/' *.txt | 
2.文件操作
- 
cat:查看文件内容或将多个文件合并输出。
| 1 | cat filename | 
- 
more和less:分页查看文件内容。less比more功能更强大,支持向前和向后翻页。
| 1 | less filename | 
- 
tail:查看文件末尾的内容。使用-f可以实时跟踪文件的更新。
| 1 | tail -f filename | 
- 
head:查看文件开头的内容。
| 1 | head filename | 
- 
grep:搜索文本并打印匹配的行。使用-i忽略大小写,使用-r递归搜索。
| 1 | grep 'pattern' filename | 
- 
sed:流编辑器,可以对文本进行过滤和替换。
| 1 | sed 's/old/new/' filename | 
- 
awk:文本模式扫描和处理语言,用于复杂的文本处理。
| 1 | awk '{print $1}' filename | 
- 
nano,vi,vim,emacs:文本编辑器。
| 1 | nano filename | 
- 
find:在目录树中查找文件。
| 1 | find /path/to/search -name "filename" | 
- 
locate:使用预建的数据库快速查找文件的位置(数据库通过updatedb命令更新)。
| 1 | locate filename | 
3.系统信息
- 
top:实时显示系统进程和资源使用情况。
| 1 | top | 
- 
ps:显示当前运行的进程。
| 1 | ps aux | 
- 
kill:终止进程。使用-9强制终止。
| 1 | kill -9 PID | 
- 
df:查看磁盘使用情况。
| 1 | df -h | 
- 
du:查看文件或目录的磁盘使用量。
| 1 | du -sh /path/to/directory | 
- 
free:查看内存使用情况。
| 1 | free -m | 
- 
uptime:显示系统运行时间和负载。
| 1 | uptime | 
- 
uname:显示系统信息。使用-a显示所有信息。
| 1 | uname -a | 
- 
who:显示当前登录的用户。
| 1 | who | 
- 
w:显示当前登录用户和他们正在做的事情。
| 1 | w | 
- 
hostname:显示或设置系统的主机名。
| 1 | hostname | 
4.网络操作
- 
ping:检查与远程服务器的连接。
| 1 | ping example.com | 
- 
ifconfig/ip addr:显示网络接口的配置信息。
| 1 | ifconfig | 
- 
netstat:显示网络连接、路由表、接口统计等网络信息。
| 1 | netstat -tulpn | 
- 
ssh:远程登录到其他计算机。
| 1 | ssh [email protected] | 
- 
scp:安全地复制文件到远端服务器或从远端服务器复制文件。
| 1 | scp local_file [email protected]:remote_file | 
- 
wget/curl:从网络上下载文件。
| 1 | wget http://example.com/file | 
- 
traceroute/tracepath:显示数据包到达主机所经过的路由。
| 1 | traceroute example.com | 
- 
dig:查询 DNS 名称服务器信息。
| 1 | dig example.com | 
- 
nslookup:查询域名系统以获取域名或 IP 地址对应的信息。
| 1 | nslookup example.com | 
- 
route:显示和操作 IP 路由表。
| 1 | route -n | 
- 
iptables:配置 Linux 内核防火墙。
| 1 | iptables -L | 
- 
httpd/apache2:Apache HTTP 服务器。
| 1 | systemctl start apache2 | 
- 
nginx:高性能的 HTTP 和反向代理服务器。
| 1 | systemctl start nginx | 
- 
ftp:文件传输协议客户端。
| 1 | ftp ftp.example.com | 
- 
sftp:SSH 文件传输协议,安全地传输文件。
| 1 | sftp [email protected] | 
5.压缩操作
- 
tar:创建和解压 tar 归档文件。
| 1 | tar cvf archive_name.tar /path/to/directory | 
- 
gzip/gunzip:压缩或解压缩 gzip 文件。
| 1 | gzip filename | 
- 
zip/unzip:创建和解压 zip 文件。
| 1 | zip archive_name.zip file1 file2 | 
- 
bzip2/bunzip2:压缩或解压缩 bzip2 文件。
| 1 | bzip2 filename | 
6.管道和重定向
- 
|:管道,将一个命令的输出作为另一个命令的输入。
| 1 | cat file.txt | grep "search_term" | 
- 
>:重定向标准输出到文件,覆盖文件内容。
| 1 | echo "Hello, World!" > file.txt | 
- 
>>:重定向标准输出到文件,附加在文件末尾。
| 1 | echo "Hello, World!" >> file.txt | 
- 
<:将文件内容作为命令的标准输入。
| 1 | grep "search_term" < file.txt | 
- 
2>:重定向标准错误到文件。
| 1 | command 2> error.log | 
- 
&>:重定向标准输出和标准错误到同一个文件。
| 1 | command &> output.log | 
- 
tee:读取标准输入的数据,并同时写入到标准输出和一个或多个文件中,常与管道一起使用。
| 1 | command | tee output.txt | 
7.包管理
- 
dpkg:Debian 包管理工具,用于安装、构建、删除和管理 Debian 包。
| 1 | dpkg -i package.deb | 
- 
rpm:RPM 包管理工具,用于安装、卸载、查询和更新 RPM 包。
| 1 | rpm -ivh package.rpm | 
8.权限管理
- 
sudo:以超级用户(或其他用户)的身份执行命令。
| 1 | sudo apt-get update | 
- 
su:切换当前用户到另一个用户。
| 1 | su - username | 
- 
useradd/adduser:创建新的系统用户。
| 1 | useradd new_user | 
- 
usermod:修改用户账号属性。
| 1 | usermod -aG groupname username | 
- 
passwd:更改用户密码。
| 1 | passwd username | 
- 
groups:显示用户所属的所有组。
| 1 | groups username | 
- 
chgrp:更改文件或目录的群组所有权。
| 1 | chgrp groupname filename | 
- 
setfacl:设置文件访问控制列表(ACL),提供比传统权限更详细的权限设置。
| 1 | setfacl -m u:username:rwx file | 
- 
getfacl:获取文件的访问控制列表。
| 1 | getfacl file | 
- 
chmod:改变文件或目录的权限。
| 1 | chmod 755 filename | 
- 
chown:改变文件或目录的所有者。
| 1 | chown username:groupname filename | 
9.系统管理
- 
apt-get,yum,dnf,pacman:不同的Linux发行版使用不同的包管理器来安装、更新和删除软件包。
| 1 | apt-get install package_name | 
- 
service:在系统上启动、停止、重启和管理服务。
| 1 | service service_name start | 
- 
systemctl:控制 systemd 系统和服务管理器。
| 1 | systemctl start service_name | 
- 
crontab:安排定时任务。
| 1 | crontab -e | 
- 
journalctl:查看由 systemd 管理的系统和服务日志。
| 1 | journalctl -u service_name | 
- 
dmesg:显示或控制内核环形缓冲区消息。
| 1 | dmesg | grep something | 
- 
logrotate:自动轮转、压缩、删除和邮寄系统日志文件。
| 1 | logrotate /etc/logrotate.conf | 
- 
syslog/rsyslog/syslog-ng:处理系统日志的守护进程。
| 1 | service rsyslog status | 
- 
fsck:检查和修复 Linux 文件系统。
| 1 | fsck /dev/sda1 | 
- 
testdisk:强大的免费数据恢复软件。
| 1 | testdisk /dev/sda | 
- 
photorec:与 testdisk 相关的工具,用于恢复丢失的文件。
| 1 | photorec /dev/sda | 
- 
grub:GNU GRUB 是一个启动加载程序,用于在多操作系统中管理引导过程。
| 1 | update-grub | 
- 
init/telinit:init 是所有进程的父进程,用于控制系统的运行级别。
| 1 | telinit 3 | 
10.硬件管理
- 
fdisk:磁盘分区工具。
| 1 | fdisk /dev/sdx | 
- 
mkfs:在分区上创建文件系统。
| 1 | mkfs -t ext4 /dev/sdx1 | 
- 
mount/umount:挂载或卸载文件系统。
| 1 | mount /dev/sdx1 /mnt | 
- 
lscpu:显示 CPU 架构信息。
| 1 | lscpu | 
- 
lsblk:列出所有可用的块设备。
| 1 | lsblk | 
- 
lspci:列出所有 PCI 设备。
| 1 | lspci | 
- 
lsusb:列出 USB 设备。
| 1 | lsusb | 
- 
dmidecode:提取硬件系统组件的信息,如序列号和固件版本。
| 1 | dmidecode | 
11.进程管理
- 
bg:将一个在后台暂停的作业继续执行。
| 1 | bg %job_id | 
- 
fg:将后台中的作业调至前台继续运行。
| 1 | fg %job_id | 
- 
jobs:显示当前会话中的所有作业及其状态。
| 1 | jobs | 
- 
nohup:运行命令,即使退出登录也不会中断。
| 1 | nohup command & | 
- 
screen/tmux:使用虚拟终端,允许用户在单个终端窗口中多次登录会话。
| 1 | screen | 
12.脚本编写和执行
- 
bash/sh:Shell 脚本解释器,用于执行 Shell 脚本。
| 1 | bash script.sh | 
- 
cron:time-based 作业调度器,用于自动运行脚本和命令。
| 1 | crontab -l | 
- 
at:用于安排一次性任务。
| 1 | at 10:30 PM | 
- 
watch:周期性地执行命令,并显示输出。
| 1 | watch -n 5 'ls -l /path/to/directory' | 
- 
alias:创建命令别名简化命令输入。
| 1 | alias ll='ls -la' | 
13.系统监控和性能
- 
iostat:报告 CPU 统计和所有块设备的 I/O 统计。
| 1 | iostat | 
- 
vmstat:报告虚拟内存统计。
| 1 | vmstat | 
- 
htop:交互式进程查看器,类似于top,但提供更多信息和更好的用户界面。
| 1 | htop | 
- 
lsof:列出被进程打开的文件。
| 1 | lsof | 
- 
strace:跟踪系统调用和信号。
| 1 | strace -p PID | 
- 
tcpdump:抓取网络上的数据包。
| 1 | tcpdump -i eth0 | 
- 
nmap:网络探测和安全审核。
| 1 | nmap -A target_host | 
- 
nice/renice:调整程序运行的优先级。
| 1 | nice -n 10 command | 
- 
ionice:设置程序访问磁盘的优先级。
| 1 | ionice -c 3 -p PID | 
- 
tune2fs:调整可调文件系统参数。
| 1 | tune2fs -l /dev/sda1 | 
14.文本处理
- 
sort:对文本文件中的行进行排序。
| 1 | sort filename | 
- 
uniq:报告或省略重复的行,常用于sort命令之后。
| 1 | sort filename | uniq | 
- 
cut:移除文件中的部分字段。
| 1 | cut -d',' -f1 filename | 
- 
paste:合并两个或多个文件的行。
| 1 | paste file1 file2 | 
- 
join:在两个文件中,将含有相同字段的行连接起来。
| 1 | join file1 file2 | 
- 
tr:替换或删除字符。
| 1 | cat file.txt | tr '[:lower:]' '[:upper:]' | 
- 
nl:给文件加上行号。
| 1 | nl file.txt | 
- 
wc:统计文件的行、词和字符数。
| 1 | wc filename | 
15.加密和备份
- 
openssl:强大的加密工具,用于创建私钥、证书签名请求(CSR)、证书和其他。
| 1 | openssl genrsa -out private.key 2048 | 
- 
gpg:GNU Privacy Guard,用于加密和签名数据。
| 1 | gpg --encrypt --recipient [email protected] file | 
- 
ssh-keygen:用于生成 SSH 密钥对。
| 1 | ssh-keygen -t rsa | 
- 
fail2ban:防止暴力破解的工具,它监视日志文件并基于配置的规则封禁可疑的 IP 地址。
| 1 | fail2ban-client status | 
- 
rsync:用于备份和同步文件和目录。
| 1 | rsync -a /path/to/source /path/to/destination | 
- 
dd:用于复制和转换原始磁盘数据。
| 1 | dd if=/dev/sda of=/path/to/backup.img | 
- 
tar:除了创建和解压归档文件,tar也常用于备份。
| 1 | tar cvpzf backup.tar.gz /path/to/directory | 
16.虚拟化和容器
- 
docker:容器化平台,用于开发、运输和运行应用。
| 1 | docker run image_name | 
- 
virsh:命令行工具,用于管理 KVM 和 Xen 虚拟机。
| 1 | virsh list --all | 
- 
vagrant:构建和维护虚拟化环境的命令行工具。
| 1 | vagrant up | 
17.版本控制系统
- 
git:分布式版本控制系统,用于跟踪和协调源代码变更。
| 1 | git clone https://github.com/user/repo.git | 
- 
svn:集中式版本控制系统。
| 1 | svn checkout http://example.com/svn/repo/trunk | 
18.编程和开发工具
- 
make:自动化编译程序,通常与Makefile文件一起使用。
| 1 | make | 
- 
gcc:GNU 编译器集合,用于编译 C 和 C++ 程序。
| 1 | gcc -o output source.c | 
- 
gdb:GNU 调试器,用于调试程序。
| 1 | gdb ./program | 
 
      
      
     
    