一、文件和目录操作

目录操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 查看当前目录
pwd

# 切换目录
cd /path/to/dir
cd ~ # 进入home目录
cd - # 返回上一次目录

# 创建目录
mkdir dir
mkdir -p a/b/c # 递归创建

# 删除目录
rmdir dir # 删除空目录
rm -rf dir # 删除非空目录

文件操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 创建文件
touch file.txt

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

# 移动或重命名
mv source dest
mv oldname newname

# 删除文件
rm file
rm -f file # 强制删除

# 查看文件
cat file
more file # 分页查看
less file # 可上下翻页
head -n 10 file # 查看前10行
tail -n 10 file # 查看后10行
tail -f file # 实时查看

查找和搜索

1
2
3
4
5
6
7
8
9
10
11
# 查找文件
find /path -name "*.txt"
find /path -type f -size +100M

# 搜索文件内容
grep "pattern" file
grep -r "pattern" dir/ # 递归搜索
grep -i "pattern" file # 忽略大小写

# 组合使用
find . -name "*.java" | xargs grep "keyword"

二、文件权限

权限表示

r:读(4)
w:写(2)
x:执行(1)

权限管理

1
2
3
4
5
6
7
8
9
# 修改权限
chmod 755 file
chmod u+x file # 所有者添加执行权限
chmod g-w file # 组移除写权限
chmod o+r file # 其他添加读权限

# 修改所有者
chown user:group file
chown -R user:group dir # 递归修改

三、进程管理

进程查看

1
2
3
4
5
6
7
8
9
10
11
12
# 查看进程
ps aux
ps -ef
ps aux | grep java

# 动态查看
top
htop

# 查看端口占用
netstat -tunlp | grep 8080
lsof -i :8080

进程控制

1
2
3
4
5
6
7
8
9
10
11
12
13
# 后台运行
nohup java -jar app.jar &

# 查看后台任务
jobs

# 前台运行
fg %1

# 杀死进程
kill PID
kill -9 PID # 强制杀死
pkill java # 按名称杀死

四、系统监控

资源监控

1
2
3
4
5
6
7
8
9
10
11
12
# 内存使用
free -h

# 磁盘使用
df -h
du -sh dir/

# CPU信息
cat /proc/cpuinfo

# 系统信息
uname -a

日志查看

1
2
3
4
5
6
7
# 系统日志
/var/log/messages
/var/log/syslog

# 应用日志
tail -f /var/log/app.log
grep "ERROR" /var/log/app.log

五、网络操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 测试连通性
ping www.baidu.com

# 查看网络配置
ifconfig
ip addr

# 查看端口
netstat -tunlp

# 下载文件
wget url
curl -O url

# 查看响应
curl -I url

六、压缩和解压

1
2
3
4
5
6
7
8
9
10
11
# tar打包
tar -cvf archive.tar dir/
tar -xvf archive.tar

# gzip压缩
tar -zcvf archive.tar.gz dir/
tar -zxvf archive.tar.gz

# zip压缩
zip -r archive.zip dir/
unzip archive.zip

七、Shell脚本基础

变量

1
2
3
4
5
6
7
8
9
# 定义变量
name="value"

# 使用变量
echo $name
echo ${name}

# 环境变量
export JAVA_HOME=/usr/local/java

条件判断

1
2
3
4
5
6
7
8
9
10
11
12
13
if [ condition ]; then
# do something
elif [ condition ]; then
# do something
else
# do something
fi

# 常用判断
[ -f file ] # 文件存在
[ -d dir ] # 目录存在
[ -z string ] # 字符串为空
[ a -eq b ] # 数值相等

循环

1
2
3
4
5
6
7
8
9
10
11
12
13
# for循环
for i in 1 2 3; do
echo $i
done

for file in *.txt; do
echo $file
done

# while循环
while [ condition ]; do
# do something
done

函数

1
2
3
4
5
6
7
function name() {
echo $1 # 第一个参数
echo $2 # 第二个参数
return 0
}

name arg1 arg2

八、常用技巧

管道和重定向

1
2
3
4
5
6
7
# 管道
command1 | command2

# 重定向
command > file # 覆盖
command >> file # 追加
command 2>&1 # 错误输出合并

命令替换

1
2
3
4
5
6
# 获取命令输出
result=$(ls -l)
echo $result

# 或使用反引号
result=`ls -l`

别名

1
2
3
4
5
6
# 设置别名
alias ll='ls -l'
alias la='ls -a'

# 查看别名
alias

九、总结

Linux常用命令:

  • 文件操作:ls、cd、cp、mv、rm
  • 文件查看:cat、more、less、tail
  • 进程管理:ps、top、kill
  • 网络命令:ping、netstat、curl
  • Shell脚本:变量、条件、循环、函数

掌握这些命令可以高效地进行日常开发和运维工作。