Linux常用命令速查手册
目录
linux常用命令整理。
Linux的目录结构遵循一种标准布局,关键目录包括:
- / (根目录):所有目录的起点。
- /bin:存放系统基本的二进制可执行文件。
- /boot:启动加载程序和内核映像。
- /dev:设备文件,代表硬件资源。
- /etc:系统和应用程序的配置文件。
- /home:普通用户的个人目录。
- /lib, /lib64:系统库文件。
- /media, /mnt:挂载外部设备或文件系统。
- /opt:第三方软件安装目录。
- /proc:虚拟文件系统,展示内核状态信息。
- /root:超级用户(root)的主目录。
- /run:运行时系统数据。
- /sbin, /usr/sbin, /usr/local/sbin: 系统管理命令。
- /srv:服务数据。
- /sys:暴露内核参数的虚拟文件系统。
- /tmp:临时文件存放处。
- /usr:全局共享的只读数据。
- /var:可变数据,如日志、数据库等。
Linux的文件权限体系确保了文件和目录的安全访问,分为读(r), 写(w), 执行(x)三类,针对所有者(u), 所属组(g), **其他人(o)**三个角色。
权限表示法
- 数字表示法(如
755):每位数字代表一种权限集合,r=4,w=2,x=1,无权限为0。因此,755意味着所有者有全部权限(4+2+1=7),组用户和其他用户只有读和执行权限(4+1=5)。 - 符号表示法(如
rwxr-xr-x):直观显示每种权限。
修改权限
- chmod命令:如
chmod 755 file.txt设定文件权限。 - chown命令:更改文件所有者,如
chown user:group file.txt。 - chgrp命令:更改文件所属组,如
chgrp group file.txt。
通过精细的权限管理,Linux系统能够有效地控制不同用户和进程对资源的访问权限,保证系统的安全性和稳定性。
文件和目录
Ls
- 功能:列出目录内容。
- 用法:
ls:显示当前目录下的文件和目录。ls -l:以长格式显示,包含权限、大小、修改日期等信息。ls -a:显示包括隐藏文件(以.开头的文件)在内的所有文件。ls -R:递归显示子目录内容。
Cd
- 功能:切换当前工作目录。
- 用法:
cd /path/to/directory:切换到指定目录。cd ..:返回上一级目录。cd ~:回到用户家目录。cd -:返回上一次所在的目录。
Pwd
- 功能:显示当前工作目录的绝对路径。
Mkdir
- 功能:创建新目录。
- 用法:
mkdir directory_name:创建单个目录。mkdir -p dir1/dir2/dir3:递归创建多级目录,即使中间目录不存在。
Rmdir
- 功能:删除空目录。
- 用法:
rmdir directory_name
Rm
- 功能:删除文件或目录。
- 用法:
rm file_name:删除文件。rm -r directory_name:递归删除目录及其内容。rm -f file_name:强制删除,不提示确认。rm -rf directory_name:强制递归删除,极度危险,务必谨慎使用。
Touch
- 功能:创建新文件或更新文件的时间戳。
- 用法:
touch file_name
Cp
- 功能:复制文件或目录。
- 用法:
cp source destination:复制文件或目录。cp -r source_dir destination_dir:递归复制目录。
Mv
- 功能:移动或重命名文件和目录。
- 用法:
mv old_name new_name:重命名文件或目录。mv source destination:移动文件或目录。
Find
- 功能:在文件系统中查找文件。
- 用法:
find /path -name pattern:根据名称查找文件。find . -type f -mtime +7:查找当前目录下7天前被修改的文件。
Chmod
- 功能:改变文件或目录的权限。
- 用法:
chmod 755 file_name:设置文件权限为所有者可读写执行,组用户和其他用户可读执行。chmod u+x,g-w,o=r file_name:分别修改所有者、组用户和其他用户的权限。
chown 和 chgrp
- 功能:改变文件或目录的所有者和所属组。
- 用法:
chown user:group file_name:更改文件的所有者和组。chgrp group file_name:仅更改文件的组。
Ln
- 功能:创建链接文件。
- 用法:
ln -s source_file link_name:创建软链接(符号链接)。ln source_file target_file:创建硬链接。
Tar
- 功能:打包、压缩或解压文件。
- 用法:
tar -cvf archive.tar file1 file2:创建tar包。tar -xvf archive.tar:解压tar包。tar -czvf archive.tar.gz file1 file2:创建gzip压缩的tar包。tar -xzvf archive.tar.gz:解压gzip压缩的tar包。
zip 和 unzip
- 功能:压缩与解压缩文件或目录。
- 用法:
zip archive.zip file1 file2:压缩文件到zip格式。unzip archive.zip:解压zip文件。
Du
- 功能:估计文件和目录的空间使用情况。
- 用法:
du -h file:以人类可读的格式显示文件大小。du -sh directory:显示目录的总大小。
Df
- 功能:报告文件系统的磁盘空间使用情况。
这些命令是Linux系统管理中基础且强大的工具,熟练掌握它们对提高工作效率至关重要。
文件查看和编辑
Cat
- 功能:快速查看文件内容,支持合并多个文件输出。
- 用法:
cat file.txt:显示单个文件内容。cat file1.txt file2.txt > combined.txt:合并两个文件内容到新文件。
Less
- 功能:分页查看文件,支持上下滚动和搜索。
- 用法:
less file.txt:打开文件,按Space键翻页,/keyword搜索,q退出。
More
- 功能:分屏查看文件,只能向下翻页。
- 用法:
more file.txt:逐屏显示文件内容,按空格翻页,q退出。
head 和 tail
- 功能:查看文件开头或结尾部分内容。
- 用法:
head -n 10 file.txt:显示文件前10行。tail -n 5 file.txt:显示文件最后5行。tail -f log.txt:实时查看文件末尾追加的内容,常用于监控日志。
Grep
- 功能:搜索文件中匹配特定模式的行。
- 用法:
grep 'pattern' file.txt:搜索包含pattern的行。grep -r 'search' /path/to/dir:递归搜索目录下所有文件。
Nano
- 功能:简易的命令行文本编辑器,适合初学者。
- 用法:
nano file.txt:打开或创建文件进行编辑,按Ctrl+O保存,Ctrl+X退出。
vi 或 vim
- 功能:高级文本编辑器,支持语法高亮、插件等。
- 用法:
vi file.txt或vim file.txt:进入编辑模式,按i开始插入文本,:wq保存并退出,:q!不保存退出。
Ed
- 功能:Linux中最简单的文本编辑器,非交互式。
- 用法:
ed file.txt:进入ed编辑模式,使用命令进行编辑,如a追加文本,.结束编辑,w写入文件,q退出。
Sed
- 功能:流编辑器,用于自动编辑一个或多个文件。
- 用法:
sed 's/old/new/g' file.txt:将文件中所有old替换为new。sed -i '1d' file.txt:直接在原文件中删除第一行。
Awk
- 功能:强大的文本分析工具,也可用于编辑。
- 用法:
awk '{print $1}' file.txt:打印文件的每一行的第一列。awk '{gsub(/old/, "new")}1' file.txt > newfile.txt:替换并输出到新文件。
网络管理
Ifconfig
- 功能:查看和配置网络接口的IP地址、子网掩码、广播地址等。
- 用法:
ifconfig:显示当前活动的网络接口信息。ifconfig eth0:查看特定接口(如eth0)的详细信息。ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up:配置IP地址、子网掩码并激活接口。
Ip
- 功能:更现代的网络配置工具,替代
ifconfig,功能更强大。 - 用法:
ip addr show:显示所有网络接口的地址信息。ip link set eth0 up/down:启用/禁用网络接口。ip addr add 192.168.1.10/24 dev eth0:为接口添加IP地址。
Ping
- 功能:发送ICMP回显请求,测试与另一台主机的连通性。
- 用法:
ping google.com:测试与Google服务器的连接。ping -c 4 google.com:发送4次ping请求后停止。
Traceroute
- 功能:追踪数据包到目标主机的路由路径。
- 用法:
traceroute google.com:显示到达google.com的路由节点。
Netstat
- 功能:显示网络连接、路由表、网络接口统计等信息。
- 用法:
netstat -tuln:显示监听中的TCP和UDP端口。netstat -rn:查看路由表。
Ss
- 功能:比
netstat更高效的套接字统计工具。 - 用法:
ss -t:显示TCP连接。ss -l:显示监听状态的套接字。
Route
- 功能:手动配置和查看路由表。
- 用法:
route -n:显示路由表,不进行DNS解析。route add default gw 192.168.1.1:设置默认网关。
iwconfig / iw
- 功能:无线网络接口配置工具。
- 用法:
iwconfig wlan0:查看无线接口信息。iwlist wlan0 scan:扫描无线网络(使用iw命令在较新系统中)。
Nmcli
- 功能:NetworkManager命令行工具,用于管理网络连接。
- 用法:
nmcli device status:查看网络设备状态。nmcli con up id "My WiFi":激活指定的网络连接。
Curl
- 功能:命令行工具,用于传输数据,常用于HTTP请求。
- 用法:
curl http://example.com:下载或获取网页内容。curl -I http://example.com:仅获取HTTP头信息。
进程和任务
Ps
- 功能:显示当前终端下的活跃进程状态。
- 用法:
ps:显示当前终端下的简略进程信息。ps aux:显示所有用户的进程详细信息。ps -ef:显示所有进程的完整信息,包括父进程ID。
Top
- 功能:实时显示系统中各个进程的资源占用情况。
- 用法:
top:启动top,显示CPU、内存使用率及各进程资源占用。- 在top界面,可以按
P排序CPU使用率,按M排序内存使用率,Q退出。
Htop
- 功能:与
top相似,但提供更友好的界面和交互体验(需先安装)。 - 用法:
htop:启动htop,享受彩色界面和键盘导航。- 同样支持按资源使用排序,搜索进程,杀死进程等功能。
Pgrep
- 功能:根据名称搜索并显示进程ID。
- 用法:
pgrep sshd:查找名为sshd的进程ID。pgrep -f pattern:查找执行命令中包含pattern的进程。
Pkill
- 功能:根据名称发送信号给进程,常用来终止进程。
- 用法:
pkill -9 sshd:发送SIGKILL信号(强制终止)给名为sshd的进程。pkill -TERM myprocess:发送SIGTERM信号(正常终止)。
Kill
- 功能:向指定进程发送信号。
- 用法:
kill PID:默认发送SIGTERM信号终止进程,PID为进程ID。kill -9 PID:发送SIGKILL信号强制终止进程。
Jobs
- 功能:列出当前shell会话中的后台作业。
- 用法:
jobs:显示后台作业的状态。
fg 和 bg
- 功能:将后台作业切换到前台或继续在后台运行。
- 用法:
fg %1:将作业号为1的后台作业调至前台。bg %2:将作业号为2的作业放回后台继续执行。
Nohup
- 功能:让命令在后台运行,即使用户退出终端也不受影响。
- 用法:
nohup command &:启动command并在后台运行,忽略挂断信号。
screen 或 tmux
- 功能:终端复用器,允许多个会话在同一终端窗口中运行,即使断开连接也能恢复。
- 用法:
screen或tmux:启动新的会话。screen -r或tmux attach:重新连接到之前的会话。
用户和权限
Useradd
- 功能:创建新用户账户。
- 用法:
useradd username:创建名为username的用户。useradd -m -s /bin/bash username:创建用户并自动创建家目录,指定bash为默认shell。
Passwd
- 功能:设置或修改用户密码。
- 用法:
passwd username:为用户username设置密码。passwd -l username:锁定用户账户。passwd -u username:解锁用户账户。
Usermod
- 功能:修改用户账户属性。
- 用法:
usermod -l new_username old_username:更改用户名。usermod -aG groupname username:将用户添加到指定用户组。
Userdel
- 功能:删除用户账户。
- 用法:
userdel username:删除用户账户,保留家目录。userdel -r username:删除用户账户及其家目录。
Id
- 功能:显示用户或用户组的身份信息。
- 用法:
id username:显示指定用户的UID、GID及所属组。
Chmod
- 功能:更改文件或目录的权限。
- 用法:
chmod 755 file.txt:给予所有者读写执行权限,组用户和其他用户读执行权限。chmod u+x,g-w,o-r file.txt:分别为所有者增加执行权限,组用户去掉写权限,其他用户去掉读权限。
Chown
- 功能:更改文件或目录的所有者。
- 用法:
chown username file.txt:将file.txt的所有者改为username。chown username:groupname file.txt:同时更改所有者和所属组。
Chgrp
- 功能:更改文件或目录的所属组。
- 用法:
chgrp groupname file.txt:将file.txt的所属组改为groupname。
Umask
- 功能:设置文件和目录的默认权限掩码。
- 用法:
umask 022:设置默认创建的文件权限为644,目录权限为755。
Sudo
- 功能:允许用户以其他用户(通常是root)的权限运行命令。
- 用法:
sudo command:以root权限执行command。sudo -u username command:以指定用户username的权限执行command。
Visudo
- 功能:编辑
sudoers文件,配置sudo权限。 - 用法:
visudo:安全地编辑sudoers文件,添加或修改用户sudo权限。
压缩和解压
Tar
- 功能:打包和压缩文件或目录。
- 用法:
- 打包不压缩:
tar -cvf archive.tar file1 file2 dir1。 - 打包并用gzip压缩:
tar -czvf archive.tar.gz file* dir*。 - 打包并用bzip2压缩:
tar -cjvf archive.tar.bz2 file* dir*。 - 解压:
tar -xvf archive.tar或tar -xzvf archive.tar.gz或tar -xjvf archive.tar.bz2。
- 打包不压缩:
gzip / gunzip
- 功能:压缩和解压缩单个文件。
- 用法:
- 压缩:
gzip file.txt,生成file.txt.gz。 - 解压缩:
gunzip file.txt.gz或gzip -d file.txt.gz。
- 压缩:
bzip2 / bunzip2
- 功能:高压缩比压缩和解压缩单个文件。
- 用法:
- 压缩:
bzip2 file.txt,生成file.txt.bz2。 - 解压缩:
bunzip2 file.txt.bz2或bzip2 -d file.txt.bz2。
- 压缩:
zip / unzip
- 功能:创建和解压缩.zip格式的文件。
- 用法:
- 压缩:
zip archive.zip file1 file2 dir1。 - 解压缩:
unzip archive.zip。
- 压缩:
rar / unrar
- 功能:处理.rar格式的压缩文件,需先安装
unrar工具。 - 用法:
- 压缩:
rar a archive.rar file* dir*(需rar软件支持)。 - 解压缩:
unrar x archive.rar。
- 压缩:
高级用法与技巧
-
查看压缩文件内容:
tar tvf archive.tar或tar tzvf archive.tar.gz。
-
递归压缩/解压缩:
- 使用
-r选项可以递归处理目录,但在tar命令中通常不需要显式指定,因为它默认处理目录结构。
- 使用
-
保留文件属性和权限:
- 在
tar命令中使用-p选项可以保留文件的权限、所有权和时间戳。
- 在
-
分卷压缩:
- 使用
split命令配合tar可以创建分卷压缩文件,如tar cvzf - dir | split -d -b 100M - archive.tar.gz.。
- 使用
磁盘和文件系统
Df
- 功能:报告文件系统的磁盘空间使用情况。
- 用法:
df -h:以人类可读的格式显示磁盘空间(如KB、MB、GB)。df -i:显示inode使用情况而非磁盘空间。
Du
- 功能:估计文件和目录所占磁盘空间。
- 用法:
du -h directory:显示指定目录的磁盘使用情况,以人类可读的格式。du -sh * | sort -rh | head -n 5:找出当前目录下最大的5个文件或目录。
- 参数
- -s:表示汇总指定目录的大小,只显示总计,而不列出子目录的大小。
- -h:以人类可读的方式显示文件大小(例如,K、M、G表示千字节、兆字节、吉字节)。
Fdisk
- 功能:用于创建、删除、调整磁盘分区。
- 用法:
fdisk /dev/sda:操作磁盘sda,需小心使用,可能影响数据。- 在fdisk交互模式下,输入
m获取帮助,n创建新分区,d删除分区等。
Mkfs
- 功能:创建文件系统。
- 用法:
mkfs -t ext4 /dev/sdb1:在sdb1分区上创建ext4文件系统。
Mount
- 功能:挂载文件系统。
- 用法:
mount /dev/sdb1 /mnt/mydisk:将sdb1分区挂载到/mnt/mydisk目录下。mount -o rw,remount /mnt/mydisk:重新挂载为可读写模式。
Umount
- 功能:卸载已挂载的文件系统。
- 用法:
umount /mnt/mydisk:卸载/mnt/mydisk目录下的文件系统。
Lsblk
- 功能:列出所有可用或已挂载的块设备及其挂载点。
- 用法:
lsblk:显示简要的块设备列表。lsblk -f:显示包含文件系统类型和挂载点的详细信息。
Parted
- 功能:一个更高级的分区编辑器,支持GPT和MBR分区表。
- 用法:
parted /dev/sdc:进入交互模式,使用print查看分区,mklabel gpt创建GPT标签等。
Resize2fs
- 功能:在线调整ext2、ext3、ext4文件系统的大小。
- 用法:
resize2fs /dev/sdb1:自动调整文件系统大小到分区大小。resize2fs /dev/sdb1 10G:将文件系统大小调整为10GB。
日志管理
Journalctl
- 功能:查询和管理systemd日记(Journal)。
- 用法:
journalctl:查看所有日志条目。journalctl -u nginx.service:查看特定服务(如nginx)的日志。journalctl -f:实时跟踪日志。journalctl --since "1 hour ago":查看过去一小时内的日志。journalctl -p err..crit:筛选错误和严重级别的日志。
Tail
- 功能:查看文件末尾内容,常用于实时监控日志文件。
- 用法:
tail -f /var/log/syslog:实时跟踪syslog文件的最新日志。tail -n 100 /var/log/messages:查看messages文件的最后100行。
Less
- 功能:分页查看文件内容,适用于浏览大日志文件。
- 用法:
less /var/log/auth.log:分页查看认证相关的日志文件。- 在
less中,可以使用/pattern搜索关键字,n跳到下一个匹配,N跳到上一个匹配,q退出。
Grep
- 功能:搜索文件中包含指定模式的行。
- 用法:
grep 'error' /var/log/syslog:搜索含有“error”的日志行。grep -i 'warning' /var/log/messages:不区分大小写搜索“warning”。
Logrotate
- 功能:自动旋转、压缩和删除旧日志文件。
- 用法:
- 配置文件位于
/etc/logrotate.conf和/etc/logrotate.d/目录下。 - 通过cron定时执行,一般每日运行一次。
- 示例配置:
/var/log/myapp.log { daily rotate 7 compress delaycompress missingok}。
- 配置文件位于
Syslog-Ng
- 功能:高级系统日志守护进程,提供日志收集、过滤和转发功能。
- 用法:
- 配置文件通常位于
/etc/syslog-ng/syslog-ng.conf。 - 需要手动配置以定义日志源、目的地和过滤规则。
- 例如,配置远程日志服务器:
destination d_network { tcp("remote.server.example" port(514)); };。
- 配置文件通常位于
Rsyslog
- 功能:另一种流行的系统日志守护进程,支持复杂日志处理逻辑。
- 用法:
- 配置文件通常位于
/etc/rsyslog.conf或/etc/rsyslog.d/*.conf。 - 可以配置日志级别、行动(如写入文件、发送至远程服务器)。
- 示例配置:
*.* @remote.log.server:514,将所有日志发送到远程服务器。
- 配置文件通常位于
系统信息
Uname
- 功能:显示系统内核信息。
- 用法:
uname -a:显示所有信息,包括内核名称、主机名、内核发行版本、硬件名称、硬件平台和操作系统名称。uname -r:仅显示内核版本。
Hostname
- 功能:显示或设置主机名。
- 用法:
hostname:显示当前主机名。hostnamectl set-hostname newhostname:设置新的主机名(需管理员权限)。
Uptime
- 功能:显示系统运行时间和平均负载。
- 用法:
uptime:显示系统已经运行的时间以及过去的1、5、15分钟的平均负载。
Top
- 功能:实时显示系统进程状态和资源使用情况。
- 用法:
top:启动top,查看CPU使用率、内存使用情况及各进程资源占用。
Free
- 功能:显示系统内存使用情况。
- 用法:
free -h:以人类可读的格式(如GB, MB)显示内存和交换空间使用情况。
Vmstat
- 功能:报告虚拟内存统计信息、进程、内存、CPU活动等。
- 用法:
vmstat:显示简要统计信息。vmstat 5:每5秒更新一次统计信息。
Df
- 功能:显示文件系统的磁盘空间使用情况。
- 用法:
df -h:以易读格式展示磁盘空间使用情况。
Du
- 功能:估算文件和目录的空间占用。
- 用法:
du -sh /path/to/directory:显示指定目录的总磁盘使用量。
Lscpu
- 功能:显示CPU体系结构信息。
- 用法:
lscpu:提供CPU型号、核心数、线程数、频率等信息。
Inxi
- 功能:提供详细的系统硬件信息(需先安装)。
- 用法:
inxi -F:显示全面的系统硬件信息,包括CPU、内存、显卡、硬盘等。
Cat /Proc/Meminfo
- 功能:查看内存详细信息。
- 用法:
- 直接执行即可查看内存总量、已用、空闲等详细信息。
Cat /Proc/Cpuinfo
- 功能:查看CPU详细信息。
- 用法:
- 直接执行以获取CPU型号、核心数、频率等硬件信息。
系统管理
Systemctl
- 功能:管理系统服务和系统状态。
- 用法:
systemctl start nginx.service:启动nginx服务。systemctl status sshd:查看sshd服务状态。
Service
- 功能:在较老的系统中用于服务管理(已被
systemctl取代)。 - 用法:
service apache2 restart:重启apache2服务。
Shutdown
- 功能:安排系统关机或重启。
- 用法:
shutdown -h now:立即关机。shutdown +30 "System will reboot in 30 minutes":30分钟后重启,并显示通知消息。