一、文件操作(最常用场景)
1. ls:查看目录下的文件/目录
- 功能:列出当前目录或指定目录下的内容(文件、文件夹)。
- 语法 :
ls [选项] [目录路径] - 常用选项 :
-l(长格式):显示文件详细信息(权限、所有者、大小、修改时间);-a(all):显示所有文件(包括隐藏文件,以.开头);-h(human-readable):文件大小以"K/M/G"显示(如1K、2M);-t:按修改时间排序(最新修改的在前)。
- 示例 :
ls:查看当前目录下的可见文件/目录;ls -la /home:长格式显示/home目录下的所有文件(包括隐藏文件);ls -lh:查看当前目录文件,大小以易读格式显示。
2. cat:查看/合并文件内容
- 功能:读取文件内容并打印到终端,也可合并多个文件。
- 语法 :
cat [选项] [文件1] [文件2...] - 常用选项 :
-n:显示行号;-b:只给非空行显示行号。
- 示例 :
cat test.txt:查看test.txt的内容;cat -n test.txt:查看test.txt并显示行号;cat file1.txt file2.txt > file3.txt:合并file1和file2的内容,输出到file3(覆盖原有内容)。
3. touch:创建空文件/更新文件修改时间
- 功能:创建一个或多个空文件,若文件已存在,会更新其"最后修改时间"。
- 语法 :
touch [文件名1] [文件名2...] - 示例 :
touch note.txt:创建空文件note.txt;touch a.txt b.txt:同时创建a.txt和b.txt;touch -d "2025-01-01" test.txt:修改test.txt的最后修改时间为2025年1月1日。
4. cp:复制文件/目录
- 功能:复制文件或目录到指定位置。
- 语法 :
cp [选项] 源文件/目录 目标位置 - 常用选项 :
-r(recursive):递归复制目录(复制目录必须加此选项);-i(interactive):覆盖目标文件前提示确认;-v(verbose):显示复制过程。
- 示例 :
cp test.txt /home/user:将test.txt复制到/home/user目录下;cp -r dir1 /home/user:将dir1目录及里面所有内容复制到/home/user;cp -iv a.txt b.txt:复制a.txt为b.txt,覆盖前提示,且显示复制过程。
5. mv:移动/重命名文件/目录
- 功能:移动文件/目录到新位置,或给文件/目录重命名(同一目录下移动即为重命名)。
- 语法 :
mv [选项] 源文件/目录 目标位置 - 常用选项 :
-i:覆盖前提示;-v:显示移动过程。
- 示例 :
mv test.txt /home/user:将test.txt移动到/home/user;mv old.txt new.txt:将old.txt重命名为new.txt;mv -i dir1 dir2:若dir2已存在,提示后再移动dir1到dir2。
6. rm:删除文件/目录
- 功能:删除文件或目录(谨慎使用,删除后难以恢复)。
- 语法 :
rm [选项] 文件/目录 - 常用选项 :
-r:递归删除目录(删除目录必须加);-f(force):强制删除,不提示(慎用);-v:显示删除过程。
- 示例 :
rm test.txt:删除test.txt(会提示确认,按y确认);rm -rf dir1:强制删除dir1目录及所有内容(无提示,慎用);rm -v *.txt:删除当前目录下所有.txt文件,并显示删除过程。
7. vi/vim:编辑文件(Linux自带编辑器)
- 功能:创建或编辑文本文件,vim是vi的增强版(支持语法高亮、行号等)。
- 语法 :
vim [文件名] - 核心操作(新手必记) :
- 打开文件:
vim test.txt(文件不存在则创建); - 进入编辑模式:按
i键(左下角显示"INSERT"); - 保存退出:按
Esc键退出编辑模式,输入:wq(write+quit),回车; - 不保存退出:
Esc→:q!(强制退出,不保存修改); - 查找内容:
Esc→/关键词(如/hello),按n下一个匹配,N上一个; - 显示行号:
Esc→:set nu;隐藏行号::set nonu。
- 打开文件:
- 示例 :
vim note.txt→按i输入内容→Esc→:wq,保存并退出。
二、目录操作
1. pwd:查看当前所在目录路径
- 功能 :打印当前工作目录的绝对路径(如
/home/user/doc)。 - 语法 :
pwd(无复杂选项) - 示例 :在
/home/user目录下执行pwd,输出/home/user。
2. cd:切换目录
- 功能 :切换到指定目录(Linux中
.表示当前目录,..表示上级目录)。 - 语法 :
cd [目录路径] - 常用场景示例 :
cd /home:切换到/home目录(绝对路径,从根目录开始);cd doc:切换到当前目录下的doc子目录(相对路径);cd ..:切换到上级目录;cd ~:切换到当前用户的家目录(如/home/user);cd -:切换到上一次所在的目录。
3. mkdir:创建目录
- 功能:创建一个或多个目录。
- 语法 :
mkdir [选项] [目录名1] [目录名2...] - 常用选项 :
-p(parents):递归创建多级目录(如创建a/b/c,若a和a/b不存在则自动创建);-v:显示创建过程。
- 示例 :
mkdir dir1:创建dir1目录;mkdir -p a/b/c:递归创建a→b→c三级目录;mkdir -v dir2 dir3:创建dir2和dir3,并显示创建信息。
4. rmdir:删除空目录
- 功能:删除空目录(若目录非空,需先删除里面的文件/子目录)。
- 语法 :
rmdir [选项] 目录名 - 常用选项 :
-p:递归删除空目录(如rmdir -p a/b/c,若a/b/c、a/b、a均为空,则依次删除)。 - 示例 :
rmdir dir1:删除空目录dir1;若dir1非空,提示"目录非空"。
三、系统管理(查看系统状态、硬件信息)
1. uname:查看系统内核信息
- 功能:显示操作系统内核版本、主机名、硬件架构等。
- 语法 :
uname [选项] - 常用选项 :
-a(all):显示所有信息(最常用)。 - 示例 :
uname -a,输出示例:Linux localhost 5.4.0-125-generic #141-Ubuntu SMP Wed Aug 10 13:42:03 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux(依次为系统名、主机名、内核版本、编译时间、架构)。
2. top:实时查看系统进程与资源占用
- 功能:实时监控系统CPU、内存、进程的占用情况(类似Windows的任务管理器)。
- 语法 :
top - 核心操作 :
- 按
q退出; - 按
P:按CPU占用率排序(默认); - 按
M:按内存占用率排序; - 按
k:输入进程ID(PID)杀死进程(需确认); - 按
1:显示所有CPU核心的占用情况。
- 按
- 示例 :
top,终端会实时刷新进程列表,显示PID、进程名、CPU使用率、内存使用率等。
3. free:查看内存使用情况
-
功能:显示系统物理内存、交换内存(swap)的使用和空闲情况。
-
语法 :
free [选项] -
常用选项 :
-h:以易读格式(K/M/G)显示。 -
示例 :
free -h,输出示例:total used free shared buff/cache available Mem: 15Gi 2.3Gi 10Gi 224Mi 3.1Gi 13Gi Swap: 19Gi 0B 19Gitotal:总内存;used:已使用;free:完全空闲;available:可分配给应用的内存(含缓存可释放部分)。
4. df:查看磁盘空间使用情况
-
功能 :显示文件系统的磁盘空间占用情况(如
/根目录、/home目录的剩余空间)。 -
语法 :
df [选项] -
常用选项 :
-h:易读格式显示;-T:显示文件系统类型(如ext4、xfs)。
-
示例 :
df -h,输出示例:Filesystem Size Used Avail Use% Mounted on /dev/sda1 200Gi 50Gi 140Gi 27% / /dev/sdb1 500Gi 120Gi 380Gi 24% /home
5. du:查看文件/目录占用的磁盘空间
- 功能 :计算文件或目录的磁盘占用大小(与
df的区别:df看整体磁盘,du看单个文件/目录)。 - 语法 :
du [选项] [文件/目录] - 常用选项 :
-h:易读格式;-s(summary):只显示总大小(不显示子目录/文件细节);-a:显示所有文件和子目录的大小。
- 示例 :
du -sh dir1:显示dir1目录的总占用空间(如2.5G);du -h test.txt:显示test.txt的大小(如100K);du -ha /home/user:显示/home/user下所有文件和目录的大小。
6. hostname:查看/修改主机名
- 功能:查看当前主机名,或临时修改主机名(重启后失效)。
- 语法 :
- 查看:
hostname; - 临时修改:
hostname 新主机名(如hostname mylinux)。
- 查看:
- 示例 :
hostname,输出当前主机名(如localhost)。
四、用户与权限管理(Linux核心安全特性)
1. whoami:查看当前登录用户
- 功能:显示当前登录的用户名。
- 语法 :
whoami - 示例 :root用户登录时执行,输出
root;普通用户登录输出user。
2. su:切换用户
- 功能:切换到其他用户(如从普通用户切换到root)。
- 语法 :
su [选项] 用户名 - 常用选项 :
-(或-l):切换用户的同时,加载该用户的环境变量(推荐使用)。 - 示例 :
su root:切换到root用户(需输入root密码);su - user:切换到user用户,并加载其家目录和环境变量;su -:默认切换到root用户(等价于su - root)。
3. sudo:以其他用户权限执行命令
- 功能 :普通用户临时以root或其他用户权限执行命令(需在
sudoers文件中配置权限)。 - 语法 :
sudo [选项] 命令 - 常用选项 :
-i:切换到root环境(等价于sudo su -);-u 用户名:以指定用户权限执行(如sudo -u user ls);-l:列出当前用户可执行的sudo命令。
- 示例 :
sudo apt install nginx(Ubuntu):以root权限安装nginx;sudo systemctl restart sshd:以root权限重启ssh服务;sudo -i:切换到root环境,后续命令无需再加sudo。
4. chmod:修改文件/目录权限
- 功能 :修改文件或目录的访问权限(读
r、写w、执行x,对应数字4、2、1)。 - 权限说明 :
- 权限对象:所有者(
u)、所属组(g)、其他用户(o)、所有用户(a); - 权限类型:读(
r=4)、写(w=2)、执行(x=1); - 数字权限计算:如
rwx=4+2+1=7,rw-=4+2=6,r--=4。
- 权限对象:所有者(
- 语法 :
- 符号模式:
chmod [对象][操作][权限] 文件(如chmod u+x test.sh); - 数字模式:
chmod [权限数字] 文件(如chmod 755 test.sh)。
- 符号模式:
- 示例 :
chmod u+x test.sh:给文件所有者(u)添加执行权限(x);chmod g-w test.txt:给所属组(g)移除写权限(w);chmod 755 dir1:目录权限设为rwxr-xr-x(所有者可读可写可执行,其他用户可读可执行);chmod 644 test.txt:文件权限设为rw-r--r--(所有者可读可写,其他用户只读)。
5. chown:修改文件/目录的所有者和所属组
- 功能:更改文件或目录的所有者(用户)和所属组。
- 语法 :
chown [选项] 所有者:所属组 文件/目录 - 常用选项 :
-R:递归修改目录及里面所有内容的权限。 - 示例 :
chown user:user test.txt:将test.txt的所有者和所属组改为user;chown -R root:root dir1:递归将dir1目录及内容的所有者和所属组改为root;chown user test.txt:只修改所有者为user,所属组不变。
五、网络操作(查看网络状态、连接、下载)
1. ifconfig/ip:查看网络接口信息
-
功能 :查看网卡IP地址、MAC地址、网络状态等(
ifconfig是老命令,ip是新版推荐)。 -
语法 :
ifconfig(直接执行,显示所有网卡信息);ip addr(等价于ifconfig,显示IP相关信息);ip link:显示网卡链路状态(如是否启用)。
-
示例 :
ip addr,输出示例:2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:16:3e:00:11:22 brd ff:ff:ff:ff:ff:ff inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0 valid_lft forever preferred_lft foreverinet后为IP地址(192.168.1.100),link/ether后为MAC地址。
2. ping:测试网络连通性
- 功能:向目标IP或域名发送数据包,测试是否能连通(基于ICMP协议)。
- 语法 :
ping [选项] 目标IP/域名 - 常用选项 :
-c 次数:指定发送数据包的次数(默认无限发送);-i 间隔:指定发送间隔(秒);-w 超时时间:指定总超时时间(秒)。
- 示例 :
ping baidu.com:测试与百度的连通性(默认无限发送,按Ctrl+C停止);ping -c 4 192.168.1.1:向网关192.168.1.1发送4个数据包;ping -w 5 baidu.com:超时时间5秒,5秒内无响应则停止。
3. netstat/ss:查看网络连接状态
- 功能 :查看系统的TCP/UDP连接、端口监听状态(
netstat老命令,ss更高效)。 - 语法 :
ss [选项]或netstat [选项] - 常用选项 :
-t(tcp):只显示TCP连接;-u(udp):只显示UDP连接;-l(listen):只显示监听状态的端口;-n:显示IP和端口(不解析域名和服务名);-p:显示占用端口的进程(需root权限)。
- 示例 :
ss -tlnp:查看所有监听的TCP端口及对应进程;netstat -anp | grep 80:查看端口80的连接状态(如是否被nginx占用)。
4. wget:命令行下载文件
- 功能:从网络上下载文件(支持HTTP、HTTPS、FTP协议)。
- 语法 :
wget [选项] 下载链接 - 常用选项 :
-O 文件名:指定下载后的文件名(默认用链接中的文件名);-P 目录:指定下载到的目录;-c:断点续传(下载中断后可继续下载);-q:静默下载(不显示下载进度)。
- 示例 :
wget https://example.com/file.zip:下载file.zip到当前目录;wget -O new.zip -P /home/user https://example.com/file.zip:下载文件并重命名为new.zip,保存到/home/user;wget -c https://example.com/large.file:断点续传大文件。
5. curl:发送HTTP请求/下载文件
- 功能 :比
wget更灵活,可发送GET/POST等HTTP请求,也可下载文件。 - 语法 :
curl [选项] 链接 - 常用选项 :
-O:下载文件(默认用链接文件名);-o 文件名:指定下载后的文件名;-X 方法:指定HTTP方法(GET/POST/PUT/DELETE);-d 数据:发送POST请求的数据(如表单数据);-H 头部:添加HTTP请求头(如-H "Content-Type: application/json")。
- 示例 :
curl -O https://example.com/file.txt:下载file.txt;curl -X POST -d "name=test" https://example.com/api:发送POST请求,携带表单数据name=test;curl https://example.com:发送GET请求,打印响应内容(如网页HTML)。
六、文件搜索与查找
1. find:查找文件/目录(按名称、大小、时间等)
- 功能:在指定目录下递归查找文件或目录,支持多条件筛选(最强大的查找命令)。
- 语法 :
find [查找目录] [选项] [查找条件] - 常用选项与条件 :
-name "文件名":按名称查找(支持通配符*、?);-size 大小:按大小查找(如+10M大于10M,-5K小于5K,1G等于1G);-type 类型:按类型查找(f文件,d目录,l符号链接);-mtime 天数:按修改时间查找(+7修改时间超过7天,-3修改时间小于3天);-user 用户名:按所有者查找;-exec 命令 {} \;:对找到的文件执行指定命令({}代表找到的文件)。
- 示例 :
find /home -name "*.txt":在/home目录下查找所有.txt文件;find / -size +100M -type f:在根目录下查找大于100M的文件;find ./ -mtime -1 -type f:在当前目录下查找24小时内修改过的文件;find /tmp -name "test*" -exec rm -rf {} \;:在/tmp目录下查找以test开头的文件/目录,并删除。
2. grep:在文件中搜索字符串
- 功能:在文件或命令输出中查找匹配的字符串(支持正则表达式)。
- 语法 :
grep [选项] "搜索字符串" [文件/命令] - 常用选项 :
-i:忽略大小写;-n:显示匹配行的行号;-r(recursive):递归搜索目录下的所有文件;-v:反向匹配(显示不包含搜索字符串的行);-E:支持扩展正则表达式(如|表示"或")。
- 示例 :
grep "hello" test.txt:在test.txt中查找"hello"字符串;grep -in "error" app.log:在app.log中查找"error",忽略大小写并显示行号;grep -r "import" ./src:在./src目录下递归搜索所有文件中的"import";ps aux | grep "nginx":查找nginx相关的进程(结合管道|,对ps aux的输出进行过滤)。
3. which:查找命令的绝对路径
- 功能 :查找系统命令的绝对路径(如
ls、vim的安装位置)。 - 语法 :
which 命令名 - 示例 :
which ls,输出/bin/ls;which vim,输出/usr/bin/vim。
七、压缩与解压(常用格式:zip、tar.gz、tar.bz2)
1. zip/unzip:压缩/解压zip格式文件
- 功能:创建或解压zip格式压缩包(跨平台兼容,Windows也支持)。
- 语法 :
- 压缩:
zip [选项] 压缩包名 要压缩的文件/目录; - 解压:
unzip [选项] 压缩包名。
- 压缩:
- 常用选项 :
- zip
-r:递归压缩目录; - unzip
-d 目录:指定解压到的目录; - unzip
-l:查看压缩包内的文件列表。
- zip
- 示例 :
zip -r docs.zip ./doc:将./doc目录压缩为docs.zip;unzip docs.zip:解压docs.zip到当前目录;unzip docs.zip -d /home/user:将docs.zip解压到/home/user目录;unzip -l docs.zip:查看docs.zip内的文件。
2. tar:压缩/解压tar.gz、tar.bz2格式文件(Linux最常用)
- 功能 :打包文件/目录(tar本身不压缩,需结合
gzip或bzip2实现压缩),支持tar.gz(常用)、tar.bz2(压缩率更高)格式。 - 语法 :
tar [选项] 压缩包名 要压缩/解压的文件/目录 - 核心选项(必记) :
-c(create):创建压缩包(打包);-x(extract):解压压缩包;-z:用gzip压缩/解压(tar.gz格式);-j:用bzip2压缩/解压(tar.bz2格式);-v(verbose):显示压缩/解压过程;-f(file):指定压缩包文件名(必须放在所有选项最后);-C 目录:指定解压到的目录(解压时用)。
- 示例 :
- 压缩为tar.gz:
tar -zcvf docs.tar.gz ./doc(将./doc压缩为docs.tar.gz); - 解压tar.gz:
tar -zxvf docs.tar.gz(解压到当前目录); - 解压到指定目录:
tar -zxvf docs.tar.gz -C /home/user; - 压缩为tar.bz2:
tar -jcvf docs.tar.bz2 ./doc; - 解压tar.bz2:
tar -jxvf docs.tar.bz2; - 查看压缩包内容:
tar -tvf docs.tar.gz(不解压,只看里面的文件)。
- 压缩为tar.gz:
八、进程管理(启动、停止、查看进程)
1. ps:查看系统进程(静态快照)
- 功能 :查看系统当前运行的进程(
top是实时监控,ps是静态快照)。 - 语法 :
ps [选项] - 常用选项组合 :
ps aux:查看所有用户的所有进程(最常用);ps -ef:查看进程的父进程ID(PPID)、进程ID(PID)等详细信息。
- 示例 :
ps aux | grep "java":查看所有java相关的进程;ps -ef | grep "nginx":查看nginx进程的PID和父进程ID。
2. kill:终止进程
- 功能:向进程发送信号,终止指定进程(需知道进程ID(PID))。
- 语法 :
kill [信号] PID - 常用信号 :
-15(默认):正常终止进程(SIGTERM,进程有时间清理资源);-9(强制终止):强制杀死进程(SIGKILL,无清理过程,慎用);-1:重启进程(SIGHUP,如重启nginx)。
- 示例 :
kill 1234:正常终止PID为1234的进程;kill -9 1234:强制杀死PID为1234的进程(无法抗拒);kill -1 5678:重启PID为5678的进程。
3. systemctl:管理系统服务(CentOS 7+/Ubuntu 16+)
- 功能 :启动、停止、重启、设置开机自启等(替代老的
service命令)。 - 语法 :
systemctl [操作] 服务名 - 常用操作 :
start:启动服务;stop:停止服务;restart:重启服务;status:查看服务状态;enable:设置开机自启;disable:取消开机自启。
- 示例 :
systemctl start nginx:启动nginx服务;systemctl stop sshd:停止ssh服务;systemctl restart mysql:重启mysql服务;systemctl status docker:查看docker服务的运行状态;systemctl enable nginx:设置nginx开机自启;systemctl disable firewalld:取消防火墙开机自启。
九、新手必备快捷键
Ctrl+C:终止当前命令(如停止ping、top);Ctrl+D:退出当前终端或用户(等价于exit);Ctrl+Z:暂停当前命令(后续可用fg恢复到前台,bg放到后台);Ctrl+L:清屏(等价于clear命令);Tab:自动补全命令、文件名、目录名(按一次补全,按两次显示所有候选);↑/↓:查看历史命令(之前执行过的命令);history:查看所有历史命令(输入!命令序号可重复执行该命令)。
核心总结
Linux常用命令集中在「文件/目录操作、系统监控、权限管理、网络操作」四大场景,新手优先掌握:
- 文件/目录:
ls、cd、pwd、mkdir、cp、mv、rm、vim、cat; - 系统监控:
top、free、df、ps; - 权限管理:
chmod、chown、sudo、su; - 网络操作:
ip、ping、netstat、wget; - 压缩解压:
tar、zip、unzip。
记住"选项辅助功能,示例落地用法",多实操就能熟练,遇到不懂的命令可执行man 命令(如man ls)查看官方手册。