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分钟后重启,并显示通知消息。