Linux 基础命令详解

Linux 命令是运维、开发、云计算、网络管理中最基础也是最重要的技能。

掌握 Linux 基础命令,可以完成:

  • 文件和目录管理
  • 文本查看与编辑
  • 权限管理
  • 用户管理
  • 进程管理
  • 网络排查
  • 磁盘和系统监控
  • 软件安装
  • 日志分析

一、命令基本格式

Linux 命令通常由三部分组成:

bash 复制代码
命令 [选项] [参数]

例如:

bash 复制代码
ls -l /etc

含义:

部分 说明
ls 命令
-l 选项
/etc 参数

再比如:

bash 复制代码
cp -r /data/a /backup/

含义:

部分 说明
cp 复制命令
-r 递归复制
/data/a 源目录
/backup/ 目标目录

二、目录切换与路径命令

1. pwd 查看当前目录

bash 复制代码
pwd

示例输出:

bash 复制代码
/home/user

说明:
pwd 表示 print working directory,用于显示当前所在目录。


2. cd 切换目录

bash 复制代码
cd /etc
cd /home/user
cd ..
cd ~
cd -

常见用法:

命令 说明
cd /etc 进入 /etc 目录
cd .. 返回上一级目录
cd ~ 返回当前用户家目录
cd - 返回上一次所在目录
cd / 返回根目录

3. 绝对路径与相对路径

绝对路径

/ 根目录开始的路径:

bash 复制代码
/etc/nginx/nginx.conf
/home/user/file.txt

相对路径

相对于当前目录的路径:

bash 复制代码
./file.txt
../backup
logs/error.log
符号 含义
. 当前目录
.. 上一级目录
~ 当前用户家目录
/ 根目录

三、查看目录和文件

1. ls 查看目录内容

bash 复制代码
ls
ls -l
ls -a
ls -lh
ls -la

常用选项:

选项 说明
-l 长格式显示
-a 显示隐藏文件
-h 人类可读大小
-R 递归显示
-t 按修改时间排序

示例:

bash 复制代码
ls -lah /var/log

2. tree 树形显示目录

bash 复制代码
tree
tree /etc
tree -L 2

如果没有安装:

bash 复制代码
sudo apt install tree

四、文件和目录操作

1. touch 创建空文件

bash 复制代码
touch file.txt
touch a.txt b.txt c.txt

也可以更新文件修改时间。


2. mkdir 创建目录

bash 复制代码
mkdir test
mkdir -p a/b/c
命令 说明
mkdir test 创建单级目录
mkdir -p a/b/c 创建多级目录

3. cp 复制文件或目录

复制文件:

bash 复制代码
cp a.txt b.txt

复制到目录:

bash 复制代码
cp a.txt /tmp/

复制目录:

bash 复制代码
cp -r dir1 dir2

常用选项:

选项 说明
-r 递归复制目录
-p 保留权限和时间
-a 归档模式,常用于备份
-v 显示过程
-i 覆盖前提示

示例:

bash 复制代码
cp -av /data/project /backup/

4. mv 移动或重命名

重命名:

bash 复制代码
mv old.txt new.txt

移动文件:

bash 复制代码
mv file.txt /tmp/

移动目录:

bash 复制代码
mv dir1 /opt/

5. rm 删除文件或目录

删除文件:

bash 复制代码
rm file.txt

删除目录:

bash 复制代码
rm -r dir

强制删除:

bash 复制代码
rm -rf dir

常用选项:

选项 说明
-r 递归删除
-f 强制删除
-i 删除前确认

危险命令示例:

bash 复制代码
rm -rf /
rm -rf /*

不要执行这些命令,可能导致系统损坏。


五、查看文件内容

1. cat 查看完整文件

bash 复制代码
cat file.txt

显示行号:

bash 复制代码
cat -n file.txt

适合小文件。


2. less 分页查看文件

bash 复制代码
less /var/log/syslog

常用操作:

按键 说明
空格 下一页
b 上一页
/关键词 搜索
n 下一个匹配
q 退出

适合大文件。


3. head 查看文件开头

bash 复制代码
head file.txt
head -n 20 file.txt

4. tail 查看文件末尾

bash 复制代码
tail file.txt
tail -n 50 file.txt
tail -f /var/log/nginx/access.log

tail -f 常用于实时查看日志。


5. more

bash 复制代码
more file.txt

分页查看文件,功能比 less 少。


六、文本搜索与处理

1. grep 搜索文本

bash 复制代码
grep "error" file.log
grep -i "error" file.log
grep -rn "keyword" /etc

常用选项:

选项 说明
-i 忽略大小写
-n 显示行号
-r 递归搜索
-v 反向匹配
-E 扩展正则
--color 高亮显示

示例:

bash 复制代码
grep -rn "listen" /etc/nginx/

2. find 查找文件

bash 复制代码
find / -name "nginx.conf"
find /var/log -name "*.log"
find /tmp -type f -mtime +7

常用条件:

条件 说明
-name 按名称查找
-type f 普通文件
-type d 目录
-size +100M 大于 100M
-mtime +7 7 天前修改
-user root 属于某用户

示例:

bash 复制代码
find /var/log -type f -name "*.log" -size +100M

删除查找到的文件:

bash 复制代码
find /tmp -type f -mtime +7 -delete

3. which 查看命令路径

bash 复制代码
which nginx
which python3

4. whereis

bash 复制代码
whereis nginx

查找命令、源码、帮助文档路径。


5. awk 按列处理文本

bash 复制代码
awk '{print $1}' file.txt
awk '{print $1,$3}' file.txt

示例:

bash 复制代码
ps aux | awk '{print $1,$2,$11}'

6. sed 文本替换

bash 复制代码
sed 's/old/new/' file.txt
sed -i 's/old/new/g' file.txt

说明:

命令 含义
s/old/new/ 替换每行第一个 old
s/old/new/g 替换所有 old
-i 直接修改文件

七、文件压缩与解压

1. tar

打包:

bash 复制代码
tar -cvf file.tar dir/

打包并 gzip 压缩:

bash 复制代码
tar -czvf file.tar.gz dir/

解压:

bash 复制代码
tar -xvf file.tar
tar -xzvf file.tar.gz

常用选项:

选项 说明
-c 创建归档
-x 解压
-v 显示过程
-f 指定文件
-z gzip 压缩
-j bzip2 压缩
-J xz 压缩

2. zipunzip

bash 复制代码
zip -r project.zip project/
unzip project.zip

3. gzipgunzip

bash 复制代码
gzip file.txt
gunzip file.txt.gz

八、权限管理命令

1. chmod 修改权限

bash 复制代码
chmod 755 script.sh
chmod +x script.sh
chmod 644 file.txt

常见权限:

权限 含义
755 所有者读写执行,其他读执行
644 所有者读写,其他只读
600 仅所有者读写
700 仅所有者读写执行

2. chown 修改所有者

bash 复制代码
sudo chown user file.txt
sudo chown user:group file.txt
sudo chown -R www-data:www-data /var/www/html

3. chgrp 修改所属组

bash 复制代码
sudo chgrp dev file.txt

4. umask 查看默认权限

bash 复制代码
umask
umask 022

九、用户和用户组命令

1. 查看当前用户

bash 复制代码
whoami
id
groups

2. 查看登录用户

bash 复制代码
who
w

3. 添加用户

bash 复制代码
sudo useradd -m username
sudo passwd username

4. 删除用户

bash 复制代码
sudo userdel username
sudo userdel -r username

5. 添加用户组

bash 复制代码
sudo groupadd dev

6. 用户加入组

bash 复制代码
sudo usermod -aG dev username

十、进程管理命令

1. ps 查看进程

bash 复制代码
ps aux
ps -ef
ps aux | grep nginx

2. top 实时监控进程

bash 复制代码
top

常用按键:

按键 说明
q 退出
P 按 CPU 排序
M 按内存排序
k 杀进程

3. htop

bash 复制代码
htop

更友好的进程监控工具,可能需要安装。


4. kill 终止进程

bash 复制代码
kill PID
kill -9 PID
信号 含义
15 正常终止,默认
9 强制终止
1 重新加载配置

5. killall

bash 复制代码
killall nginx

按进程名终止。


十一、系统资源查看

1. CPU 信息

bash 复制代码
lscpu
cat /proc/cpuinfo

2. 内存信息

bash 复制代码
free -h

3. 磁盘空间

bash 复制代码
df -h

4. 目录大小

bash 复制代码
du -sh /var/log
du -sh *

5. 系统负载

bash 复制代码
uptime

6. 系统版本

bash 复制代码
uname -a
cat /etc/os-release

十二、网络基础命令

1. 查看 IP 地址

bash 复制代码
ip addr
ip a

老系统也可能使用:

bash 复制代码
ifconfig

2. 查看路由

bash 复制代码
ip route
route -n

3. 测试连通性

bash 复制代码
ping 8.8.8.8
ping www.baidu.com

4. 测试端口

bash 复制代码
telnet host 80
nc -vz host 80

5. 查看监听端口

bash 复制代码
ss -tulnp
netstat -tulnp

推荐使用:

bash 复制代码
ss -tulnp

6. DNS 查询

bash 复制代码
nslookup www.baidu.com
dig www.baidu.com

7. 下载文件

bash 复制代码
wget https://example.com/file.tar.gz
curl -O https://example.com/file.tar.gz

测试接口:

bash 复制代码
curl -I https://example.com
curl http://localhost:8080/api

十三、服务管理命令 systemctl

现代 Linux 通常使用 systemd 管理服务。

1. 查看服务状态

bash 复制代码
systemctl status nginx

2. 启动服务

bash 复制代码
sudo systemctl start nginx

3. 停止服务

bash 复制代码
sudo systemctl stop nginx

4. 重启服务

bash 复制代码
sudo systemctl restart nginx

5. 重载配置

bash 复制代码
sudo systemctl reload nginx

6. 开机自启

bash 复制代码
sudo systemctl enable nginx

取消开机自启:

bash 复制代码
sudo systemctl disable nginx

7. 查看系统日志

bash 复制代码
journalctl -u nginx
journalctl -u nginx -f
journalctl -xe

十四、软件包管理

1. Ubuntu / Debian:apt

bash 复制代码
sudo apt update
sudo apt install nginx
sudo apt remove nginx
sudo apt upgrade

2. CentOS 7:yum

bash 复制代码
sudo yum install nginx
sudo yum remove nginx
sudo yum update

3. CentOS 8+ / Fedora:dnf

bash 复制代码
sudo dnf install nginx
sudo dnf remove nginx
sudo dnf update

4. Arch:pacman

bash 复制代码
sudo pacman -S nginx
sudo pacman -R nginx
sudo pacman -Syu

十五、管道与重定向

1. 管道 |

把前一个命令的输出交给后一个命令。

bash 复制代码
ps aux | grep nginx
cat file.log | grep error

2. 输出重定向 >

覆盖写入文件:

bash 复制代码
echo "hello" > a.txt

3. 追加重定向 >>

追加到文件末尾:

bash 复制代码
echo "world" >> a.txt

4. 错误重定向

bash 复制代码
command 2> error.log
command > all.log 2>&1

十六、环境变量命令

1. 查看变量

bash 复制代码
echo $PATH
echo $HOME
echo $SHELL

2. 设置临时变量

bash 复制代码
export NAME="xiaozhou"
echo $NAME

3. 永久变量

写入:

bash 复制代码
~/.bashrc
/etc/profile

然后执行:

bash 复制代码
source ~/.bashrc

十七、关机与重启

bash 复制代码
sudo reboot
sudo shutdown -h now
sudo shutdown -r now
sudo poweroff

说明:

命令 功能
reboot 重启
shutdown -h now 立即关机
shutdown -r now 立即重启
poweroff 关机

十八、帮助命令

1. man

bash 复制代码
man ls
man chmod

退出按:

bash 复制代码
q

2. --help

bash 复制代码
ls --help
chmod --help

3. info

bash 复制代码
info ls

十九、常用组合命令示例

1. 查找 Nginx 进程

bash 复制代码
ps aux | grep nginx

2. 实时查看日志错误

bash 复制代码
tail -f /var/log/nginx/error.log

3. 查找大文件

bash 复制代码
find / -type f -size +1G 2>/dev/null

4. 查看端口占用

bash 复制代码
ss -tulnp | grep 80

5. 查看磁盘占用最大的目录

bash 复制代码
du -sh * | sort -hr | head

6. 统计日志中 IP 访问次数

bash 复制代码
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head

7. 批量替换文本

bash 复制代码
sed -i 's/old/new/g' file.txt

8. 查找包含关键字的文件

bash 复制代码
grep -rn "keyword" /path

二十、Linux 基础命令学习建议

入门必须掌握

text 复制代码
pwd cd ls mkdir touch cp mv rm cat less head tail grep find chmod chown ps top kill df du free ip ping systemctl

运维常用高频命令

text 复制代码
tail -f
grep -rn
ps aux
ss -tulnp
df -h
du -sh
systemctl status
journalctl -u
docker ps
crontab -l

学习路线

阶段 内容
第 1 阶段 文件目录操作
第 2 阶段 权限、用户、进程
第 3 阶段 网络、磁盘、服务
第 4 阶段 grep、awk、sed
第 5 阶段 Shell 脚本与自动化

总结

Linux 基础命令可以分为几大类:

text 复制代码
目录命令:pwd、cd、ls
文件命令:touch、mkdir、cp、mv、rm
查看命令:cat、less、head、tail
搜索命令:grep、find
权限命令:chmod、chown、chgrp
进程命令:ps、top、kill
系统命令:df、du、free、uname
网络命令:ip、ping、ss、curl
服务命令:systemctl、journalctl
软件命令:apt、yum、dnf

掌握这些命令后,就可以完成大多数 Linux 日常管理、服务器运维和基础故障排查工作。

相关推荐
kdxiaojie1 小时前
U-Boot分析【学习笔记】(7)
linux·笔记·学习
www.021 小时前
通过 SSH 隧道将 GPT 调教为服务器专属 Agent(个人记录)
linux·服务器·vscode·gpt·大模型·ssh·api转发
张小姐的猫1 小时前
【Linux】多线程(中)—— 线程控制接口 | 线程库 | 线程局部存储
linux·运维·服务器
ZC跨境爬虫1 小时前
跟着 MDN 学 HTML day_42:(DOMTokenList 接口详解)
前端·javascript·ui·html·ecmascript·音视频
前端 贾公子1 小时前
响应式系统基础:基于依赖追踪的响应式系统的本质(下)
前端·javascript·vue.js
幽络源小助理1 小时前
团队个人科技主页HTML源码 黑客帝国风格个人简历网页模板
前端·科技·html
脆皮炸鸡7551 小时前
大山之二:文件系统(Ext系列)
linux·开发语言·经验分享·学习方法
打工人小夏1 小时前
使用finalshell在新服务器上部署前端页面
linux·服务器·前端·vue.js
Zhu7581 小时前
软件更新-openssh和openssl-centos
linux·运维·centos