引言

Linux命令是服务器运维的基础。本文介绍最常用的Linux命令。

一、文件操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 列出文件
ls
ls -l # 详细信息
ls -a # 包括隐藏文件
ls -lh # 人类可读的大小

# 切换目录
cd /path/to/dir
cd ~ # 回到家目录
cd - # 回到上一个目录

# 显示当前目录
pwd

# 创建目录
mkdir dir
mkdir -p parent/child # 创建多级目录

# 删除
rm file
rm -r dir # 删除目录
rm -rf dir # 强制删除

# 复制
cp source dest
cp -r dir1 dir2 # 复制目录

# 移动/重命名
mv source dest

# 查看文件
cat file.txt
head -n 10 file.txt
tail -n 10 file.txt
tail -f log.txt # 实时查看日志
less file.txt
more file.txt

二、文本处理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# grep:搜索文本
grep "pattern" file.txt
grep -r "pattern" dir/ # 递归搜索
grep -i "pattern" file.txt # 忽略大小写
grep -n "pattern" file.txt # 显示行号

# sed:流编辑器
sed 's/old/new/' file.txt
sed 's/old/new/g' file.txt # 全局替换

# awk:文本分析
awk '{print $1}' file.txt
awk -F':' '{print $1}' /etc/passwd

# sort:排序
sort file.txt
sort -r file.txt # 逆序
sort -n file.txt # 数字排序

# uniq:去重
uniq file.txt
sort file.txt | uniq

# wc:统计
wc file.txt # 行数、单词数、字节数
wc -l file.txt # 行数
wc -w file.txt # 单词数

三、进程管理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 查看进程
ps aux
ps aux | grep java

# 实时进程监控
top
htop

# 查找进程
pgrep java
pidof java

# 杀死进程
kill PID
kill -9 PID # 强制杀死
killall java

# 后台运行
nohup command &
command &

# 查看后台任务
jobs
fg %1 # 前台运行
bg %1 # 后台继续

四、系统信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 系统信息
uname -a
hostname
whoami
uptime

# CPU信息
cat /proc/cpuinfo
lscpu

# 内存信息
free -h
cat /proc/meminfo

# 磁盘使用
df -h
du -sh dir/
du -h --max-depth=1

# 网络信息
ifconfig
ip addr
netstat -tunlp
ss -tunlp

五、网络工具

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# ping
ping www.google.com
ping -c 4 www.google.com

# curl
curl http://example.com
curl -X POST -d "data" http://api.com

# wget
wget http://example.com/file.zip
wget -c url # 断点续传

# scp:远程复制
scp file.txt user@host:/path/
scp user@host:/path/file.txt ./

# ssh
ssh user@host
ssh -p 2222 user@host

# telnet
telnet host port

六、压缩解压

1
2
3
4
5
6
7
8
9
10
11
12
13
# tar
tar -cvf archive.tar files/ # 打包
tar -xvf archive.tar # 解包
tar -czvf archive.tar.gz files/ # 打包并压缩
tar -xzvf archive.tar.gz # 解压

# zip/unzip
zip archive.zip files
unzip archive.zip

# gzip
gzip file.txt
gunzip file.txt.gz

七、权限管理

1
2
3
4
5
6
7
8
9
10
11
12
13
# 修改权限
chmod 755 file.sh
chmod +x file.sh
chmod u+w,g-x,o-r file.txt

# 修改所有者
chown user:group file.txt
chown -R user:group dir/

# 查看权限
ls -l file.txt
# -rwxr-xr-x
# 类型 所有者 组 其他用户

八、实用技巧

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 管道
ps aux | grep java | awk '{print $2}'

# 重定向
command > output.txt # 覆盖
command >> output.txt # 追加
command 2> error.txt # 错误输出

# 查找文件
find /path -name "*.log"
find /path -type f -mtime -7 # 7天内修改的文件

# 命令别名
alias ll='ls -lh'
alias gs='git status'

# 历史命令
history
!100 # 执行第100条命令
!! # 执行上一条命令

总结

Linux命令核心:

  1. 文件操作:ls、cd、cp、mv
  2. 文本处理:grep、sed、awk
  3. 进程管理:ps、top、kill
  4. 网络工具:curl、wget、ssh

参考资料

  • 《鸟哥的Linux私房菜》