文章目录
帮助和信息
- man
- 查看命令手册
- 用法:man [命令名]
- 示例:man ls(查看ls命令的手册)
- info
- 显示命令信息(通常比man更详细)
- 用法:info [命令名]
- 示例:info grep(查看grep命令的详细信息)
- help
- 查看 Linux 内置命令的帮助,比如 cd 命令。
- 用法:help [内置命令名]
- 示例:help cd(查看cd命令的帮助信息)
文件与目录
- ls
- list,列出目录内容
- 常用选项:
- -l:以长格式显示文件和目录信息
- -a:显示所有文件,包括隐藏文件
- -h:以人类可读的格式显示文件大小
- 示例:
- ls -l:每行显示一个文件,包含详细信息 (alias ll)
- ls -a:显示所有文件,包括以点开头的隐藏文件
- ls -lh:以长格式显示,文件大小使用K、M、G等单位
- cd
- change directory 切换到指定目录
- 用法:cd [目录路径]
- 示例:
- cd /home/user:切换到/home/user目录
- cd …:切换到上一级目录
- cd ~:切换到当前用户的家目录
- cp
- copy 复制文件或目录
- 用法:cp [选项] 源文件 目标文件
- 常用选项:
- -r:递归复制目录及其内容
- -i:交互式复制,覆盖前询问
- 示例:
- cp file1 file2:将file1复制为file2
- cp -r dir1 dir2:将目录dir1及其内容复制到dir2
- find
- 查找目录以及目录下的文件
- 用法:find [路径] [表达式]
- 常用选项:
- -name:按名称查找
- -type:按类型查找(f为文件,d为目录)
- 示例:
- find /home -name “*.txt”:在/home目录下查找所有.txt文件
- find . -type d:在当前目录下查找所有子目录
- mkdir
- make directories 创建目录
- 用法:mkdir [选项] 目录名
- 常用选项:
- -p:如果父目录不存在,则创建父目录
- 示例:
- mkdir newdir:创建名为newdir的目录
- mkdir -p a/b/c:创建多级目录结构a/b/c
- mv
- 全拼 move,其功能是移动或重命名文件。
- 用法:mv [选项] 源文件 目标文件
- 常用选项:
- -i:交互式操作,覆盖前询问
- 示例:
- mv file1 file2:将file1重命名为file2
- mv file1 dir1:将file1移动到dir1目录下
- pwd
- 全拼 print working directory,其功能是显示当前工作目录的绝对路径。
- 用法:pwd
- 示例:pwd(显示当前工作目录路径)
- rename
- 用于重命名文件。
- 用法:rename [选项] 表达式 文件…
- 示例:*rename ‘s/.txt$/.doc/’ .txt(将所有.txt文件重命名为.doc)
- rm
- 全拼 remove,其功能是删除一个或多个文件或目录。
- 用法:rm [选项] 文件…
- 常用选项:
- -r:递归删除目录及其内容
- -f:强制删除,不提示
- 示例:
- rm file1:删除file1文件
- rm -rf dir1:强制递归删除dir1目录及其内容
- rmdir
- 全拼 remove empty directories,功能是删除空目录。
- 用法:rmdir [选项] 目录…
- 示例:rmdir emptydir(删除名为emptydir的空目录)
- touch
- 创建新的空文件,改变已有文件的时间戳属性。
- 用法:touch [选项] 文件…
- 示例:
- touch newfile:创建一个名为newfile的空文件
- touch -m existingfile:更新existingfile的修改时间
- tree
- 功能是以树形结构显示目录下的内容。
- 用法:tree [选项] [目录]
- 常用选项:
- -L n:限制显示层级
- 示例:tree -L 2:显示当前目录下两层结构
- basename
- 显示文件名或目录名。
- 用法:basename 路径 [后缀]
- 示例:basename /home/user/file.txt .txt(输出file)
- dirname
- 显示文件或目录路径。
- 用法:dirname 路径
- 示例:dirname /home/user/file.txt(输出/home/user)
- chattr
- 改变文件的扩展属性。
- 用法:chattr [±=] [属性] 文件…
- 常用属性:
- i:不可修改
- a:只能追加
- 示例:chattr +i important.txt(设置文件为不可修改)
- lsattr
- 查看文件扩展属性。
- 用法:lsattr [选项] 文件…
- 示例:lsattr important.txt(显示文件的扩展属性)
- file
- 显示文件的类型。
- 用法:file [选项] 文件…
- 示例:file document.txt(显示document.txt的文件类型)
- md5sum
- 计算和校验文件的 MD5 值。
- 用法:md5sum [文件…]
- 示例:
- md5sum file.txt(计算file.txt的MD5值)
- md5sum -c md5_list.txt(校验文件列表中的MD5值)
查看文件及内容处理
- cat
- 全拼 concatenate,功能是用于连接多个文件并且打印到屏幕输出或重定向到指定文件中。
- 用法:cat [选项] [文件…]
- 常用选项:
- -n:显示行号
- 示例:
- cat file.txt:显示file.txt的内容
- cat -n file1.txt file2.txt > combined.txt:合并两个文件并添加行号
- tac
- tac 是 cat 的反向拼写,因此命令的功能为反向显示文件内容。
- 用法:tac [选项] [文件…]
- 示例:tac file.txt(从最后一行开始显示file.txt的内容)
- more
- 分页显示文件内容。
- 用法:more [选项] 文件
- 示例:more long_file.txt(分页显示long_file.txt的内容)
- less
- 分页显示文件内容,more 命令的相反用法。
- 用法:less [选项] 文件
- 示例:less long_file.txt(分页显示long_file.txt的内容,可向上翻页)
- head
- 显示文件内容的头部。
- 用法:head [选项] [文件…]
- 常用选项:
- -n N:显示前N行
- 示例:head -n 20 file.txt(显示file.txt的前20行)
- tail
- 显示文件内容的尾部。
- 用法:tail [选项] [文件…]
- 常用选项:
- -n N:显示最后N行
- -f:实时追踪文件更新
- 示例:
- tail -n 50 log.txt(显示log.txt的最后50行)
- tail -f log.txt(实时显示log.txt的更新)
- cut
- 将文件的每一行按指定分隔符分割并输出。
- 用法:cut [选项] [文件…]
- 常用选项:
- -d:指定分隔符
- -f:指定输出字段
- 示例:cut -d’,’ -f 2,4 data.csv(输出以逗号分隔的CSV文件的第2和第4列)
- split
- 分割文件为不同的小片段。
- 用法:split [选项] [输入 [前缀]]
- 常用选项:
- -b:按字节大小分割
- -l:按行数分割
- 示例:split -b 1M large_file(将large_file分割成1MB大小的多个文件)
- paste
- 按行合并文件内容。
- 用法:paste [选项] [文件…]
- 常用选项:
- -d:指定分隔符
- 示例:paste -d’,’ file1.txt file2.txt(合并两个文件,用逗号分隔)
- sort
- 对文件的文本内容排序。
- 用法:sort [选项] [文件…]
- 常用选项:
- -n:按数值排序
- -r:逆序排序
- 示例:sort -n numbers.txt(对numbers.txt中的数字按数值大小排序)
- uniq
- 去除重复行。
- 用法:uniq [选项] [输入 [输出]]
- 常用选项:
- -c:显示重复次数
- 示例:sort file.txt | uniq -c(先排序,然后去重并显示重复次数)
- wc
- 统计文件的行数、单词数或字节数。
- 用法:wc [选项] [文件…]
- 常用选项:
- -l:只统计行数
- -w:只统计单词数
- -c:只统计字节数
- 示例:*wc -l .txt(统计所有txt文件的总行数)
- iconv
- 转换文件的编码格式。
- 用法:iconv [选项] -f 源编码 -t 目标编码 [文件…]
- 示例:iconv -f UTF-8 -t GBK file.txt > file_gbk.txt(将UTF-8编码的文件转换为GBK编码)
- dos2unix
- 将 DOS 格式文件转换成 UNIX 格式。
- 用法:dos2unix [选项] [文件…]
- 示例:dos2unix script.sh(将DOS格式的script.sh转换为UNIX格式)
- diff
- 全拼 difference,比较文件的差异,常用于文本文件。
- 用法:diff [选项] 文件1 文件2
- 常用选项:
- -u:生成统一格式的diff
- 示例:diff -u file1.txt file2.txt(比较两个文件的差异并以统一格式输出)
- vimdiff
- 命令行可视化文件比较工具,常用于文本文件。
- 用法:vimdiff 文件1 文件2 [文件3 [文件4]]
- 示例:vimdiff file1.txt file2.txt(在vim中并排显示两个文件的差异)
- rev
- 反向输出文件内容。
- 用法:rev [文件…]
- 示例:echo “Hello” | rev(输出 “olleH”)
- grep/egrep
- 过滤字符串,三剑客老三。
- 用法:grep [选项] 模式 [文件…]
- 常用选项:
- -i:忽略大小写
- -r:递归搜索目录
- -n:显示匹配行号
- 示例:
- grep -i “error” log.txt(在log.txt中搜索"error",忽略大小写)
- grep -rn “TODO” .(在当前目录及子目录中搜索"TODO",显示文件名和行号)
- join
- 按两个文件的相同字段合并。
- 用法:join [选项] 文件1 文件2
- 常用选项:
- -1:指定第一个文件的连接字段
- -2:指定第二个文件的连接字段
- 示例:join -1 2 -2 1 file1.txt file2.txt(按file1的第2列和file2的第1列合并)
- tr
- 替换或删除字符。
- 用法:tr [选项] 集合1 [集合2]
- 常用选项:
- -d:删除集合1中的字符
- -s:压缩重复字符
- 示例:
- echo “HELLO WORLD” | tr ‘A-Z’ ‘a-z’(将大写转换为小写)
- echo “hello world” | tr -s ’ '(压缩多余的空格)
- vi/vim
- 命令行文本编辑器。
- 用法:vi [选项] [文件…]
- 常用模式:
- 命令模式:默认模式,用于移动光标和执行命令
- 插入模式:按i进入,用于编辑文本
- 可视模式:按v进入,用于选择文本块
- 示例:
- vi file.txt(打开或创建file.txt进行编辑)
- 在命令模式下,:w保存,:q退出,:wq保存并退出
文件与目录权限管理
- chmod [n1][n2][n3] filename
- 更改文件或目录的权限
- n1 n2 n3 分别对应 Owner/Group/Other Users的权限,取值范围[1,7],对应不同的权限组合
- x=1 w=2 r=4 分别对应执行、写入、读取权限
- rwx = 4 + 2 + 1 = 7
- rw- = 4 + 2 = 6
- -wx = 2 + 1 = 3
- r-x = 4 + 1 = 5
- 用法:chmod [选项] 模式 文件…
- 常用选项:
- -R:递归更改目录及其内容的权限
- 示例:
- chmod 755 script.sh(设置script.sh的权限为rwxr-xr-x)
- chmod u+x file(给文件所有者添加执行权限)
- chmod 4777 file 可使任何人执行file时都有root权限
- chown
- 改变文件或目录的属主和属组。
- 用法:chown [选项] 用户[:组] 文件…
- 常用选项:
- -R:递归更改目录及其内容的所有者
- 示例:
- chown user1 file.txt(更改file.txt的所有者为user1)
- chown user1:group1 dir(更改dir的所有者为user1,组为group1)
- chgrp
- 更改文件用户组。
- 用法:chgrp [选项] 组 文件…
- 常用选项:
- -R:递归更改目录及其内容的组
- 示例:chgrp developers project_dir(更改project_dir的组为developers)
- umask
- 显示或设置权限掩码。
- 用法:umask [掩码]
- 示例:
- umask(显示当前的umask值)
- umask 022(设置umask为022,新建文件的默认权限为644,新建目录的默认权限为755)
查看系统信息
-
ps
- 显示当前进程的状态
- 用法:ps [选项]
- 常用选项:
- -e:显示所有进程
- -f:显示完整格式的列表
- -u:显示特定用户的进程
- 示例:
- ps -ef(显示所有进程的详细信息)
- ps -aux | grep jar 查询所有用户下的java进程
-
netstat
- 显示网络连接、路由表和网络接口信息
- 用法:netstat [选项]
- 常用选项:
- -a:显示所有连接和监听端口
- -n:以数字形式显示地址和端口号
- -p:显示进程ID和程序名
- -t:显示TCP连接
- 示例:
- netstat -aptn 查看所有开启的端口号 以及 进程PID
- netstat -tuln(显示当前所有TCP和UDP连接)
-
uname
- 显示操作系统相关信息的命令
- 用法:uname [选项]
- 常用选项:
- -a:显示所有信息
- -s:显示内核名称
- -r:显示内核发行号
- 示例:
- uname -a(显示所有系统信息)
-
hostname
- 显示或者设置当前系统的主机名
- 用法:hostname [新主机名]
- 常用选项:
- -I:显示所有网络接口的IP地址
- -f:显示FQDN(完全限定域名)
- 示例:
- hostname(显示当前主机名)
- hostname newname(设置新的主机名)
-
dmesg
- 显示开机信息,用于诊断系统故障
- 用法:dmesg [选项]
- 常用选项:
- -H:以人类可读的格式输出
- -T:显示人类可读的时间戳
- 示例:
- dmesg | grep error(查找错误信息)
-
uptime
- 显示系统运行时间及负载
- 用法:uptime [选项]
- 常用选项:
- -p:以易读格式显示系统运行时间
- -s:显示系统启动时间
- 示例:
- uptime(显示当前系统运行时间和负载)
-
stat
- 显示文件或文件系统的状态
- 用法:stat [选项] 文件名
- 常用选项:
- -f:显示文件系统状态而非文件状态
- -t:以简洁方式显示信息
- 示例:
- stat file.txt(显示file.txt的详细信息)
-
du
- 计算磁盘空间使用情况
- 用法:du [选项] [文件或目录]
- 常用选项:
- -h:以人类可读的格式显示大小
- -s:只显示总计大小
- 示例:
- du -sh * (显示当前目录下所有文件和目录的总大小)
-
df
- 报告文件系统磁盘空间的使用情况
- 用法:df [选项] [文件系统]
- 常用选项:
- -h:以人类可读的格式显示大小
- -T:显示文件系统类型
- 示例:
- df -h(以易读方式显示所有文件系统使用情况)
-
top
- 实时显示系统资源使用情况
- 用法:top
- 常用交互命令:
- q:退出
- k:杀死进程
- r:重新排序
- 示例:
- top(启动top命令)
-
free
- 查看系统内存使用情况
- 用法:free [选项]
- 常用选项:
- -h:以人类可读的格式显示
- -s:持续显示,每隔x秒刷新一次
- 示例:
- free -h(以易读方式显示内存使用情况)
-
date
- 显示与设置系统时间
- 用法:date [选项] [+格式]
- 常用选项:
- -s:设置时间
- -R:以RFC 2822格式显示日期和时间
- 示例:
- date “+%Y-%m-%d %H:%M:%S”(以指定格式显示当前日期和时间)
-
cal
- 查看日历等时间信息
- 用法:cal [选项] [月] [年]
- 常用选项:
- -y:显示整年的日历
- -3:显示上个月、当前月和下个月的日历
- 示例:
- cal -y 2023(显示2023年的完整日历)
搜索文件
-
which
- 查找二进制命令,按环境变量 PATH 路径查找
- 用法:which 命令名
- 常用选项:
- -a:列出所有匹配的路径,而不只是第一个
- 示例:
- which ls(显示ls命令的完整路径)
-
find
- 从磁盘遍历查找文件或目录
- 用法:find [路径] [表达式]
- 常用选项:
- -name:按名称查找
- -type:按类型查找(f为文件,d为目录)
- -mtime:按修改时间查找
- 示例:
- find / -name “*.txt”(在根目录下查找所有.txt文件)
-
whereis
- 查找二进制命令,按环境变量 PATH 路径查找
- 用法:whereis 命令名
- 常用选项:
- -b:只查找二进制文件
- -m:只查找手册页
- 示例:
- whereis python(显示python的二进制文件、源码和手册页位置)
-
locate
- 从数据库 (/var/lib/mlocate/mlocate.db) 查找命令,使用 updatedb 更新库
- 用法:locate [选项] 文件名
- 常用选项:
- -i:忽略大小写
- -n:限制输出的条目数
- 示例:
- locate -i “*.conf”(查找所有.conf文件,忽略大小写)
网络操作命令
-
telnet
- 使用 TELNET 协议远程登录
- 用法:telnet 主机 [端口]
- 示例:
- telnet example.com 23(连接到example.com的23端口)
-
ssh
- 使用 SSH 加密协议远程登录
- 用法:ssh [选项] 用户名@主机
- 常用选项:
- -p:指定端口
- -i:指定私钥文件
- 示例:
- ssh -p 2222 user@example.com(使用2222端口连接到远程主机)
-
scp
- 全拼 secure copy,用于不同主机之间复制文件
- 用法:scp [选项] 源文件 目标文件
- 常用选项:
- -r:递归复制整个目录
- -P:指定端口
- 示例:
- scp file.txt user@remote:/path/(将本地文件复制到远程主机)
-
wget
- 命令行下载文件
- 用法:wget [选项] URL
- 常用选项:
- -O:指定保存文件名
- -c:断点续传
- 示例:
- wget -O output.file http://example.com/file(下载文件并指定保存名称)
-
ping
- 测试主机之间网络的连通性
- 用法:ping [选项] 主机
- 常用选项:
- -c:指定发送次数
- -i:指定间隔时间
- 示例:
- ping -c 4 google.com(向google.com发送4次ping请求)
-
route
- 显示和设置 linux 系统的路由表
- 用法:route [add|del] [选项]
- 常用选项:
- -n:不解析名字
- 示例:
- route -n(显示当前路由表,不解析主机名)
-
ifconfig
- 查看、配置、启用或禁用网络接口的命令
- 用法:ifconfig [接口]
- 常用选项:
- up:启用接口
- down:禁用接口
- 示例:
- ifconfig eth0 up(启用eth0网络接口)
-
ifup
- 启动网卡
- 用法:ifup 网卡名
- 示例:
- ifup eth0(启动eth0网卡)
-
ifdown
- 关闭网卡
- 用法:ifdown 网卡名
- 示例:
- ifdown eth0(关闭eth0网卡)
-
netstat
- 查看网络状态
- 用法:netstat [选项]
- 常用选项:
- -t:显示TCP连接
- -u:显示UDP连接
- -n:不解析名字
- 示例:
- netstat -tuln(显示所有TCP和UDP监听端口)
-
ss
- 查看网络状态
- 用法:ss [选项]
- 常用选项:
- -t:显示TCP连接
- -u:显示UDP连接
- -l:显示监听的套接字
- 示例:
- ss -tul(显示所有TCP和UDP监听端口)
-
nmap
- 网络扫描命令
- 用法:nmap [选项] 目标
- 常用选项:
- -p-:扫描所有端口
- -sV:探测服务/版本信息
- 示例:
- nmap -p 1-100 example.com(扫描example.com的1-100端口)
-
lsof
- 全名 list open files,也就是列举系统中已经被打开的文件
- 用法:lsof [选项]
- 常用选项:
- -i:显示网络连接
- -u:显示指定用户打开的文件
- 示例:
- lsof -i :80(显示使用80端口的进程)
-
mail
- 发送和接收邮件
- 用法:mail [选项] [收件人]
- 常用选项:
- -s:指定邮件主题
- 示例:
- echo “内容” | mail -s “主题” user@example.com(发送邮件)
-
mutt
- 邮件管理命令
- 用法:mutt [选项]
- 常用选项:
- -s:指定邮件主题
- -a:添加附件
- 示例:
- mutt -s “主题” user@example.com < content.txt(发送邮件)
-
nslookup
- 交互式查询互联网 DNS 服务器的命令
- 用法:nslookup [主机名或IP]
- 示例:
- nslookup google.com(查询google.com的DNS信息)
-
dig
- 查找 DNS 解析过程
- 用法:dig [选项] 主机名 [查询类型]
- 常用选项:
- +short:简短输出
- 示例:
- dig +short google.com(查询google.com的IP地址)
-
host
- 查询 DNS 的命令
- 用法:host [选项] 主机名 [服务器]
- 示例:
- host google.com(查询google.com的DNS信息)
-
traceroute
- 追踪数据传输路由状况
- 用法:traceroute [选项] 主机名或IP
- 常用选项:
- -n:不解析IP地址为主机名
- 示例:
- traceroute google.com(追踪到google.com的路由)
-
tcpdump
- 命令行的抓包工具
- 用法:tcpdump [选项] [表达式]
- 常用选项:
- -i:指定网络接口
- -n:不将地址转换为名字
- 示例:
- tcpdump -i eth0(在eth0接口上抓包)
磁盘与文件系统
-
mount
- 挂载文件系统
- 用法:mount [选项] 设备 挂载点
- 常用选项:
- -t:指定文件系统类型
- 示例:
- mount /dev/sdb1 /mnt(将/dev/sdb1挂载到/mnt)
-
umount
- 卸载文件系统
- 用法:umount 挂载点或设备
- 示例:
- umount /mnt(卸载/mnt目录)
-
fsck
- 检查并修复 Linux 文件系统
- 用法:fsck [选项] 设备
- 常用选项:
- -t:指定文件系统类型
- 示例:
- fsck /dev/sda1(检查/dev/sda1分区)
-
dd
- 转换或复制文件
- 用法:dd if=输入文件 of=输出文件 [选项]
- 常用选项:
- bs:指定块大小
- count:指定块数
- 示例:
- dd if=/dev/zero of=file bs=1M count=100(创建100MB的文件)
-
dumpe2fs
- 导出 ext2/ext3/ext4 文件系统信息
- 用法:dumpe2fs [选项] 设备
- 示例:
- dumpe2fs /dev/sda1(显示/dev/sda1的文件系统信息)
-
dump
- ext2/3/4 文件系统备份工具
- 用法:dump [选项] 文件系统
- 常用选项:
- -0:完全备份
- -f:指定备份文件
- 示例:
- dump -0f /backup/fs.dump /dev/sda1(完全备份/dev/sda1)
-
fdisk
- 磁盘分区命令,适用于 2TB 以下磁盘分区
- 用法:fdisk [选项] 设备
- 示例:
- fdisk /dev/sda(对/dev/sda进行分区操作)
-
parted
- 磁盘分区命令,没有磁盘大小限制,常用于 2TB 以上磁盘分区
- 用法:parted [选项] [设备 [命令 [参数]…]]
- 示例:
- parted /dev/sda print(显示/dev/sda的分区表)
-
mkfs
- 格式化创建 Linux 文件系统
- 用法:mkfs [选项] 设备
- 常用选项:
- -t:指定文件系统类型
- 示例:
- mkfs -t ext4 /dev/sdb1(在/dev/sdb1上创建ext4文件系统)
-
partprobe
- 更新内核的硬盘分区表信息
- 用法:partprobe [设备]
- 示例:
- partprobe /dev/sda(更新/dev/sda的分区表信息)
-
e2fsck
- 检查 ext2/ext3/ext4 类型文件系统
- 用法:e2fsck [选项] 设备
- 常用选项:
- -f:强制检查
- 示例:
- e2fsck -f /dev/sda1(强制检查/dev/sda1分区)
-
mkswap
- 创建 Linux 交换分区
- 用法:mkswap 设备
- 示例:
- mkswap /dev/sdb2(将/dev/sdb2格式化为交换分区)
-
swapon
- 启用交换分区
- 用法:swapon [选项] 设备
- 常用选项:
- -a:启用/etc/fstab中定义的所有交换分区
- 示例:
- swapon /dev/sdb2(启用/dev/sdb2作为交换分区)
-
swapoff
- 关闭交换分区
- 用法:swapoff [选项] 设备
- 示例:
- swapoff /dev/sdb2(关闭/dev/sdb2交换分区)
-
sync
- 将内存缓冲区内的数据写入磁盘
- 用法:sync
- 示例:
- sync(将所有未写入的数据同步到磁盘)
-
resize2fs
- 调整 ext2/ext3/ext4 文件系统大小
- 用法:resize2fs [选项] 设备 [新大小]
- 示例:
- resize2fs /dev/sda1(调整/dev/sda1的文件系统大小以适应分区大小)
用户管理
-
useradd
- 添加用户
- 用法:useradd [选项] 用户名
- 常用选项:
- -m:创建用户主目录
- -s:指定用户的登录shell
- 示例:
- useradd -m -s /bin/bash newuser(创建新用户并设置主目录和shell)
-
usermod
- 修改系统已经存在的用户属性
- 用法:usermod [选项] 用户名
- 常用选项:
- -G:修改用户附加组
- -L:锁定用户账号
- 示例:
- usermod -G sudo username(将用户添加到sudo组)
-
userdel
- 删除用户
- 用法:userdel [选项] 用户名
- 常用选项:
- -r:删除用户的同时删除其主目录
- 示例:
- userdel -r username(删除用户及其主目录)
-
groupadd
- 添加用户组
- 用法:groupadd [选项] 组名
- 常用选项:
- -g:指定组ID
- 示例:
- groupadd newgroup(创建新的用户组)
-
passwd
- 修改用户密码
- 用法:passwd [选项] [用户名]
- 常用选项:
- -l:锁定指定用户
- -u:解锁指定用户
- 示例:
- passwd username(修改指定用户的密码)
-
chage
- 修改用户密码有效期限
- 用法:chage [选项] 用户名
- 常用选项:
- -E:设置账户过期日期
- -M:设置密码的最长有效天数
- 示例:
- chage -E 2023-12-31 username(设置用户账户的过期日期)
-
id
- 查看用户的 uid,gid 及归属的用户组
- 用法:id [选项] [用户名]
- 常用选项:
- -u:只显示用户ID
- -g:只显示主组ID
- 示例:
- id username(显示指定用户的ID信息)
-
su
- 切换用户身份
- 用法:su [选项] [用户名]
- 常用选项:
- -:切换用户的同时切换环境变量
- 示例:
- su - username(切换到指定用户并使用其环境)
-
visudo
- 编辑 /etc/sudoers 文件的专属命令
- 用法:visudo
- 示例:
- visudo(打开并编辑sudoers文件)
-
sudo
- 以另外一个用户身份(默认 root 用户)执行事先在 sudoers 文件允许的命令
- 用法:sudo [选项] 命令
- 常用选项:
- -u:以指定用户身份执行命令
- 示例:
- sudo apt update(以root权限执行apt update命令)
用户信息
- whoami
- 显示当前有效的用户名称,相当于执行 id -un 命令。
- 用法:whoami
- 示例:whoami(显示当前用户名)
- who
- 显示目前登录系统的用户信息。
- 用法:who [选项]
- 常用选项:
- -H:显示列标题
- 示例:who -H(显示当前登录用户信息,包括列标题)
- w
- 显示已经登陆系统的用户列表,并显示用户正在执行的指令。
- 用法:w [选项] [用户]
- 示例:w(显示所有登录用户及其当前活动)
- last
- 显示登入系统的用户。
- 用法:last [选项] [用户…] [tty…]
- 示例:last(显示最近登录的用户信息)
- lastlog
- 显示系统中所有用户最近一次登录信息。
- 用法:lastlog [选项]
- 常用选项:
- -u:指定用户
- 示例:lastlog -u username(显示指定用户的最后登录信息)
- users
- 显示当前登录系统的所有用户的用户列表。
- 用法:users
- 示例:users(显示当前登录的用户名列表)
- finger
- 查找并显示用户信息。
- 用法:finger [选项] [用户…]
- 示例:finger username(显示指定用户的详细信息)
文件压缩及解压缩
- tar
- 打包或解包文件
- 用法:tar [选项] [文件…]
- 常用选项:
- -c:创建新的归档文件
- -x:从归档文件中提取文件
- -v:详细显示处理的文件
- -f:指定归档文件名
- -z:使用gzip压缩
- 示例:
- tar -czvf archive.tar.gz dir/(将dir目录打包并压缩为archive.tar.gz)
- tar -xzvf archive.tar.gz(解压archive.tar.gz文件)
- unzip
- 解压缩zip文件
- 用法:unzip [选项] file[.zip] [文件…] [-x 文件…] [-d 解压目录]
- 常用选项:
- -l:列出压缩文件内容,不解压
- -d:指定解压目录
- 示例:
- unzip file.zip(解压file.zip到当前目录)
- unzip -l file.zip(列出file.zip中的文件,不解压)
- gzip
- 压缩或解压缩文件
- 用法:gzip [选项] [文件…]
- 常用选项:
- -d:解压缩
- -l:列出压缩文件的内容
- 示例:
- gzip file.txt(压缩file.txt为file.txt.gz)
- gzip -d file.txt.gz(解压file.txt.gz)
- zip
- 创建和管理zip格式的压缩文件
- 用法:zip [选项] zipfile 文件…
- 常用选项:
- -r:递归压缩目录
- 示例:
- zip -r archive.zip dir/(将dir目录及其内容压缩为archive.zip)
Linux内置命令
-
echo
- 在终端输出指定的字符串或变量
- 用法:echo [选项] [字符串…]
- 常用选项:
- -n:不输出结尾的换行符
- -e:启用反斜杠转义字符的解释
- 示例:
- echo “Hello, World!” 输出 Hello, World!
- echo -n “No newline” 输出不带换行的字符串
- echo -e “First line\nSecond line” 输出带换行的多行文本
- echo $PATH 输出环境变量PATH的值
- 常见用途:
- 脚本中输出信息
- 重定向内容到文件:echo “Some text” > file.txt
- 追加内容到文件:echo “More text” >> file.txt
- 与管道结合使用:echo “test” | grep “e”
-
printf
- 将结果格式化输出到标准输出
- 用法:printf 格式 [参数…]
- 示例:printf “Name: %s, Age: %d\n” “Alice” 25
-
rpm
- 管理 rpm 包的命令
- 用法:rpm [选项] [包文件]
- 常用选项:
- -i:安装包
- -e:卸载包
- -q:查询包信息
- 示例:rpm -ivh package.rpm(安装并显示进度)
-
yum
- 自动化简单化地管理 rpm 包的命令
- 用法:yum [选项] 命令
- 常用命令:
- install:安装包
- remove:删除包
- update:更新包
- 示例:yum install package_name(安装指定的包)
-
watch
- 周期性地执行给定的命令,并将命令的输出以全屏方式显示
- 用法:watch [选项] 命令
- 常用选项:
- -n:指定更新间隔(秒)
- 示例:watch -n 5 free -m(每5秒显示一次内存使用情况)
-
alias
- 设置系统别名
- 用法:alias [名称[=命令]]
- 示例:alias ll=‘ls -l’(设置ll为ls -l的别名)
-
unalias
- 取消系统别名
- 用法:unalias 别名
- 示例:unalias ll(取消ll别名)
-
date
- 查看或设置系统时间
- 用法:date [选项] [+格式]
- 示例:
- date(显示当前日期和时间)
- date +“%Y-%m-%d”(以指定格式显示日期)
-
clear
- 清除屏幕,简称清屏
- 用法:clear
-
history
- 查看命令执行的历史记录
- 用法:history [选项]
- 示例:history 10(显示最近10条命令)
-
eject
- 弹出光驱
- 用法:eject [设备]
-
time
- 计算命令执行时间
- 用法:time 命令
- 示例:time ls -l(计算ls -l命令的执行时间)
-
nc (netcat)
- 功能强大的网络工具
- 用法:nc [选项] [主机名] [端口]
- 示例:nc -l 1234(监听1234端口)
-
xargs
- 将标准输入转换成命令行参数
- 用法:命令 | xargs [选项] [命令]
- 示例:find . -name “*.txt” | xargs rm(删除所有.txt文件)
-
exec
- 调用并执行指令的命令
- 用法:exec 命令
- 示例:exec ls(用ls命令替换当前shell)
-
export
- 设置或者显示环境变量
- 用法:export [变量名[=值]]
- 示例:export PATH=$PATH:/new/path(添加新路径到PATH)
-
unset
- 删除变量或函数
- 用法:unset 变量名
- 示例:unset VARNAME(删除VARNAME环境变量)
-
type
- 用于判断另外一个命令是否是内置命令
- 用法:type 命令名
- 示例:type ls(显示ls命令的类型)
-
bc
- 命令行科学计算器
- 用法:bc [选项]
- 示例:echo “2+2” | bc(进行简单计算)
系统管理与性能监视命令
-
chkconfig
- 管理 Linux 系统开机启动项
- 用法:chkconfig [–level levels] [name] {on|off|reset}
- 常用选项:
- –list:列出所有服务及其当前状态
- –add:添加新的服务
- –del:删除服务
- 示例:
- chkconfig --list:列出所有系统服务
- chkconfig httpd on:设置 Apache 服务开机自启动
- chkconfig --level 35 mysqld on:设置 MySQL 在运行级别 3 和 5 下开机自启动
-
vmstat
- 报告虚拟内存统计信息
- 用法:vmstat [选项] [延时 [次数]]
- 常用选项:
- -a:显示活跃和非活跃内存
- -f:显示从系统启动至今的fork数量
- -s:显示内存相关统计信息及多种系统活动数量
- 示例:
- vmstat 2 5:每2秒采样一次,共采样5次
- vmstat -s:显示内存相关统计信息
-
mpstat
- 显示多处理器统计信息
- 用法:mpstat [选项] [间隔时间] [次数]
- 常用选项:
- -P {cpu|ALL}:指定要监视的CPU编号,ALL表示所有CPU
- -u:报告CPU使用率
- 示例:
- mpstat -P ALL 2 5:每2秒显示一次所有CPU的统计信息,共显示5次
-
iostat
- 报告CPU统计信息和设备及分区的输入/输出统计信息
- 用法:iostat [选项] [间隔时间] [次数]
- 常用选项:
- -c:显示CPU使用情况
- -d:显示磁盘使用情况
- -x:显示详细的磁盘统计信息
- 示例:
- iostat -x 2 5:每2秒显示一次详细的磁盘统计信息,共显示5次
-
sar
- 收集、报告和保存系统活动信息
- 用法:sar [选项] [间隔] [次数]
- 常用选项:
- -u:报告CPU利用率
- -r:报告内存利用率
- -b:报告I/O和传输速率统计
- -n DEV:报告网络统计信息
- 示例:
- sar -u 2 5:每2秒报告一次CPU使用情况,共报告5次
- sar -r -n DEV 1:每秒报告一次内存和网络设备的使用情况
-
ipcs
- 提供IPC设施的信息
- 用法:ipcs [选项]
- 常用选项:
- -m:显示共享内存段信息
- -q:显示消息队列信息
- -s:显示信号量数组信息
- 示例:
- ipcs -a:显示所有的IPC设施信息
- ipcs -m:只显示共享内存段信息
-
ipcrm
- 删除IPC设施
- 用法:ipcrm [选项] id
- 常用选项:
- -m id:删除共享内存段
- -q id:删除消息队列
- -s id:删除信号量数组
- 示例:
- ipcrm -m 12345:删除共享内存段,其id为12345
- ipcrm -q 67890:删除消息队列,其id为67890
-
strace
- 跟踪系统调用和信号
- 用法:strace [选项] 命令 [参数]
- 常用选项:
- -c:统计每一系统调用的所执行的时间、次数和出错的次数
- -f:跟踪由fork调用所产生的子进程
- -o file:将输出写入文件file
- 示例:
- strace ls -l:跟踪ls -l命令的系统调用
- strace -c -p 1234:统计进程ID为1234的进程的系统调用
-
ltrace
- 跟踪进程调用库函数的情况
- 用法:ltrace [选项] 命令 [参数]
- 常用选项:
- -c:计算时间和调用,并在程序退出时打印摘要
- -p PID:附加到给定的进程号
- -o file:将输出写入文件file
- 示例:
- ltrace ls:跟踪ls命令调用的库函数
- ltrace -p 1234:跟踪进程ID为1234的进程调用的库函数
关机 / 重启 / 注销和查看系统信息的命令
-
shutdown
- 关机或重启系统
- 用法:shutdown [选项] 时间 [警告信息]
- 常用选项:
- -h:关机
- -r:重启
- -c:取消之前的关机命令
- 示例:
- shutdown -h now:立即关机
- shutdown -r +5:5分钟后重启
- shutdown -c:取消预定的关机操作
-
halt
- 停止系统
- 用法:halt [选项]
- 常用选项:
- -p:关机时关闭电源
- 示例:
- halt:停止系统但不关闭电源
- halt -p:停止系统并关闭电源
-
poweroff
- 关闭系统并切断电源
- 用法:poweroff [选项]
- 常用选项:
- –force:强制关机,不发送信号给其他进程
- 示例:
- poweroff:正常关机并切断电源
- poweroff --force:强制关机并切断电源
-
logout
- 退出当前登录的 Shell
- 用法:logout
- 示例:
- logout:退出当前登录会话
-
exit
- 退出当前 Shell
- 用法:exit [n]
- 参数:
- n:退出状态码(可选)
- 示例:
- exit:退出当前 Shell
- exit 1:退出当前 Shell,并返回状态码 1
-
Ctrl+d
- 发送 EOF(End-of-file)信号,通常用于退出当前 Shell
- 用法:按下 Ctrl 键,同时按下 d 键
- 注意:在某些情况下,Ctrl+d 可能不会退出 Shell,而是会关闭当前输入
任务/进程管理
- bg
- 将一个在后台暂停的命令,变成继续执行(在后台执行)。
- 用法:bg [作业号]
- 示例:
- bg %1:将作业号为1的后台暂停任务继续执行
- bg:将最近一个后台暂停的任务继续执行
- fg
- 将后台中的命令调至前台继续运行。
- 用法:fg [作业号]
- 示例:
- fg %2:将作业号为2的后台任务调至前台运行
- fg:将最近一个后台任务调至前台运行
- jobs
- 查看当前有多少在后台运行的命令。
- 用法:jobs [-l]
- 选项:
- -l:显示进程ID和作业号
- 示例:jobs -l
- kill
- 终止进程。
- 用法:kill [-信号] PID
- 常用信号:
- -9:强制终止
- -15:正常终止(默认)
- 示例:
- kill 1234:终止PID为1234的进程
- kill -9 5678:强制终止PID为5678的进程
- killall
- 通过进程名终止进程。
- 用法:killall [-信号] 进程名
- 示例:killall -9 firefox:强制终止所有名为firefox的进程
- pkill
- 通过进程名终止进程。
- 用法:pkill [-信号] 进程名
- 示例:pkill -15 httpd:正常终止所有名为httpd的进程
- crontab
- 定时任务命令。
- 用法:
- crontab [-u 用户] 文件
- crontab [-u 用户] {-l | -r | -e}
- 常用选项:
- -e:编辑crontab文件
- -l:显示crontab文件内容
- -r:删除crontab文件
- 示例:crontab -e:编辑当前用户的crontab文件
- ps
- 显示进程的快照。
- 用法:ps [选项]
- 常用选项:
- -ef:显示所有进程
- aux:显示详细的进程信息
- 示例:ps -ef | grep nginx:查看nginx相关的进程
- pstree
- 树形显示进程。
- 用法:pstree [选项]
- 常用选项:
- -p:显示进程ID
- -u:显示用户名
- 示例:pstree -pu:以树形结构显示进程,包含进程ID和用户名
- nice/renice
- 调整程序运行的优先级。
- 用法:
- nice [-n 优先级] 命令
- renice [-n] 优先级 [-p|-g|-u] 标识符
- 示例:
- nice -n 10 command:以较低优先级运行command
- renice -n 5 -p 1234:调整PID为1234的进程优先级为5
- nohup
- 忽略挂起信号运行指定的命令。
- 用法:nohup 命令 [参数] &
- 示例:nohup ./script.sh &:在后台运行script.sh,并忽略挂起信号
- pgrep
- 查找匹配条件的进程。
- 用法:pgrep [选项] 模式
- 常用选项:
- -l:显示进程名和PID
- -u:指定用户
- 示例:pgrep -l nginx:查找名称中包含nginx的进程,并显示PID和进程名
- runlevel
- 查看系统当前运行级别。
- 用法:runlevel
- 示例:runlevel:显示上一个和当前的运行级别
- init
- 切换运行级别。
- 用法:init 运行级别
- 示例:init 3:切换到多用户模式(不带图形界面)
- service
- 启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。
- 用法:service 服务名 {start|stop|restart|status}
- 示例:
- service nginx start:启动nginx服务
- service --status-all:显示所有服务的状态