Linux基础:20个必需掌握的命令(详解)

Linux基础:20个必需掌握的命令(详解)

在日常的Linux运维工作中,你是否经常遇到命令记不住、操作效率低的问题?掌握这些核心命令不仅能提升工作效率,还能让你在团队中更加专业。
本文将详细介绍20个Linux常用命令,从基础操作到高级技巧,帮助你快速提升Linux操作能力。

目录

    1. Linux命令基础介绍
    1. 文件操作类命令
    1. 系统管理类命令
    1. 网络相关命令
    1. 高级实用命令

1. Linux命令基础介绍

1.1 Linux命令行简介

Linux命令行是Linux系统的核心交互方式,通过命令行可以高效地管理系统、执行程序和处理数据。掌握Linux命令是每个Linux用户的必备技能。

命令基本结构

1
命令 [选项] [参数]

示例:

1
ls -la /home

1.2 命令行操作技巧

Tab键自动补全

  • • 输入命令或文件名的前几个字符
  • • 按Tab键自动补全
  • • 如果有多个匹配,按两次Tab显示所有选项

命令历史记录

  • • 上下箭头键:浏览历史命令
  • • Ctrl+R:搜索历史命令
  • • !!:执行上一条命令

2. 文件操作类命令

2.1 文件和目录浏览

ls - 列出目录内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 基本用法
ls

# 显示详细信息
ls -la

# 显示隐藏文件
ls -a

# 按大小排序
ls -lhS

# 按时间排序
ls -lt

执行结果:

1
2
3
4
5
6
total 32
drwxr-xr-x 5 user user 4096 Jan 10 10:00 .
drwxr-xr-x 20 root root 4096 Jan 9 15:00 ..
-rw-r--r-- 1 user user 220 Jan 5 12:00 .bashrc
-rw-r--r-- 1 user user 3800 Jan 5 12:00 .profile
-rw-r--r-- 1 user user 0 Jan 10 09:45 test.txt

⚠️ 注意事项ls命令只显示当前目录下的文件,要查看其他目录需要指定路径。

2.2 文件和目录操作

cd - 切换目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 进入用户主目录
cd

# 进入指定目录
cd /var/log

# 返回上一级目录
cd ..

# 返回主目录
cd ~

# 进入上一次访问的目录
cd -

pwd - 显示当前目录

1
pwd

执行结果:

1
/home/user

mkdir - 创建目录

1
2
3
4
5
6
7
8
# 创建单个目录
mkdir newdir

# 创建多级目录
mkdir -p path/to/directory

# 创建带权限的目录
mkdir -m 755 secure_dir

rmdir - 删除空目录

1
rmdir empty_dir

rm - 删除文件和目录

1
2
3
4
5
6
7
8
9
10
11
# 删除文件
rm file.txt

# 强制删除文件(不提示)
rm -f file.txt

# 删除目录及其内容
rm -r directory/

# 强制删除目录及其内容
rm -rf directory/

⚠️ 注意事项rm -rf命令非常危险,删除前请确认路径正确!

cp - 复制文件和目录

1
2
3
4
5
6
7
8
9
10
11
# 复制文件
cp source.txt dest.txt

# 复制目录
cp -r source_dir dest_dir

# 复制并保留权限
cp -p source.txt dest.txt

# 复制时覆盖已有文件
cp -f source.txt dest.txt

mv - 移动和重命名

1
2
3
4
5
6
7
8
9
10
11
# 移动文件
mv file.txt /path/to/destination/

# 重命名文件
mv old_name.txt new_name.txt

# 移动目录
mv directory/ /path/to/destination/

# 强制移动
mv -f source.txt dest.txt

touch - 创建空文件

1
2
3
4
5
6
7
8
# 创建空文件
touch newfile.txt

# 创建多个空文件
touch file1.txt file2.txt file3.txt

# 更新文件时间戳
touch existing_file.txt

2.3 文件内容查看

cat - 查看文件内容

1
2
3
4
5
6
7
8
9
10
11
# 查看文件内容
cat file.txt

# 查看多个文件
cat file1.txt file2.txt

# 显示行号
cat -n file.txt

# 不显示空行
cat -s file.txt

less - 分页查看文件

1
2
3
4
5
6
7
8
9
# 分页查看文件
less large_file.txt

# 操作说明:
# 空格键:向下翻页
# b键:向上翻页
# q键:退出
# /键:搜索内容
# n键:下一个搜索结果

head - 查看文件开头

1
2
3
4
5
# 查看前10行
head file.txt

# 查看前n行
head -n 20 file.txt

tail - 查看文件结尾

1
2
3
4
5
6
7
8
# 查看最后10行
tail file.txt

# 查看最后n行
tail -n 20 file.txt

# 实时查看文件变化
tail -f log_file.txt

3. 系统管理类命令

3.1 用户和权限管理

useradd - 添加用户

1
2
3
4
5
6
7
8
# 添加用户
sudo useradd newuser

# 添加用户并指定主目录
sudo useradd -m -d /home/newuser newuser

# 添加用户并指定shell
sudo useradd -s /bin/bash newuser

usermod - 修改用户信息

1
2
3
4
5
6
7
8
9
10
11
# 修改用户主目录
sudo usermod -d /home/newdir username

# 修改用户shell
sudo usermod -s /bin/zsh username

# 锁定用户账户
sudo usermod -L username

# 解锁用户账户
sudo usermod -U username

passwd - 修改密码

1
2
3
4
5
# 修改当前用户密码
passwd

# 修改其他用户密码
sudo passwd username

chmod - 修改文件权限

1
2
3
4
5
6
7
8
9
10
# 数字方式
chmod 755 file.txt

# 符号方式
chmod u+x file.txt
chmod g-w file.txt
chmod o+r file.txt

# 递归修改目录权限
chmod -R 755 directory/

chown - 修改文件所有者

1
2
3
4
5
6
7
8
9
10
11
# 修改文件所有者
sudo chown username file.txt

# 修改文件所属组
sudo chown :groupname file.txt

# 同时修改所有者和所属组
sudo chown username:groupname file.txt

# 递归修改目录
sudo chown -R username:groupname directory/

3.2 系统信息查看

uname - 显示系统信息

1
2
3
4
5
6
7
8
9
10
11
# 显示所有信息
uname -a

# 显示内核版本
uname -r

# 显示操作系统名称
uname -s

# 显示硬件架构
uname -m

top - 实时进程监控

1
2
3
4
5
6
7
8
# 启动top
top

# 操作说明:
# M键:按内存使用排序
# P键:按CPU使用排序
# k键:终止进程
# q键:退出

ps - 查看进程

1
2
3
4
5
6
7
8
9
10
11
# 查看当前用户进程
ps

# 查看所有进程
ps aux

# 查看进程树
ps -ef

# 查看特定进程
ps -ef | grep nginx

df - 查看磁盘使用情况

1
2
3
4
5
6
7
8
# 查看所有文件系统
df -h

# 查看特定目录
df -h /var

# 显示inode使用情况
df -i

du - 查看目录大小

1
2
3
4
5
6
7
8
9
10
11
# 查看当前目录大小
du -sh

# 查看子目录大小
du -sh *

# 查看指定目录大小
du -sh /path/to/directory

# 显示详细大小信息
du -h --max-depth=1

3.3 系统服务管理

systemctl - 系统服务管理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 查看服务状态
systemctl status nginx

# 启动服务
sudo systemctl start nginx

# 停止服务
sudo systemctl stop nginx

# 重启服务
sudo systemctl restart nginx

# 启用服务开机自启
sudo systemctl enable nginx

# 禁用服务开机自启
sudo systemctl disable nginx

# 查看所有服务
systemctl list-units --type=service

service - 传统服务管理

1
2
3
4
5
6
7
8
9
10
11
# 查看服务状态
service nginx status

# 启动服务
sudo service nginx start

# 停止服务
sudo service nginx stop

# 重启服务
sudo service nginx restart

4. 网络相关命令

4.1 网络连接查看

ifconfig - 网络接口配置

1
2
3
4
5
6
7
8
9
10
11
# 查看所有网络接口
ifconfig

# 查看特定网络接口
ifconfig eth0

# 启用网络接口
sudo ifconfig eth0 up

# 禁用网络接口
sudo ifconfig eth0 down

ip - 现代网络管理工具

1
2
3
4
5
6
7
8
9
10
11
# 查看网络接口
ip addr

# 查看路由表
ip route

# 查看网络连接
ip link

# 启用网络接口
sudo ip link set eth0 up

ping - 网络连通性测试

1
2
3
4
5
6
7
8
9
10
11
# 测试与主机的连通性
ping google.com

# 指定发送包数量
ping -c 4 google.com

# 指定包大小
ping -s 1024 google.com

# 快速模式(每秒发送多个包)
ping -f google.com

netstat - 网络连接状态

1
2
3
4
5
6
7
8
9
10
11
# 查看所有网络连接
netstat -an

# 查听端口
netstat -ln

# 查看进程ID和端口
netstat -tulpn

# 查看路由表
netstat -rn

4.2 网络配置管理

ssh - 安全远程登录

1
2
3
4
5
6
7
8
9
10
11
# 基本登录
ssh username@hostname

# 指定端口
ssh -p 2222 username@hostname

# 使用密钥登录
ssh -i /path/to/private_key username@hostname

# 执行远程命令
ssh username@hostname "command"

scp - 安全文件传输

1
2
3
4
5
6
7
8
9
10
11
# 复制文件到远程主机
scp local_file.txt username@hostname:/remote/path/

# 从远程主机复制文件
scp username@hostname:/remote/path/file.txt ./

# 复制目录
scp -r local_dir/ username@hostname:/remote/path/

# 指定端口
scp -P 2222 local_file.txt username@hostname:/remote/path/

wget - 文件下载

1
2
3
4
5
6
7
8
9
10
11
# 下载文件
wget http://example.com/file.zip

# 保存到指定目录
wget -P /path/to/save http://example.com/file.zip

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

# 后台下载
wget -b http://example.com/file.zip

curl - 网络请求工具

1
2
3
4
5
6
7
8
9
10
11
# 发送GET请求
curl http://example.com

# 发送POST请求
curl -X POST -d "data=value" http://example.com

# 保存到文件
curl -o file.txt http://example.com

# 显示响应头
curl -I http://example.com

5. 高级实用命令

5.1 文本处理工具

grep - 文本搜索

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 搜索包含特定字符串的行
grep "error" log.txt

# 不区分大小写搜索
grep -i "ERROR" log.txt

# 显示行号
grep -n "error" log.txt

# 递归搜索目录
grep -r "error" /var/log/

# 排除特定文件
grep -r "error" /var/log --exclude="*.log"

sed - 流编辑器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 替换文本
sed 's/old/new/g' file.txt

# 直接修改文件
sed -i 's/old/new/g' file.txt

# 删除行
sed 'd' file.txt

# 指定行范围删除
sed '1,5d' file.txt

# 插入行
sed '1i\New line' file.txt

awk - 文本处理工具

1
2
3
4
5
6
7
8
9
10
11
# 打印第一列
awk '{print $1}' file.txt

# 打印特定列
awk '{print $1, $3}' file.txt

# 条件过滤
awk '$1 > 100' file.txt

# 计算总和
awk '{sum += $1} END {print sum}' file.txt

5.2 系统监控工具

free - 内存使用情况

1
2
3
4
5
6
7
8
# 显示内存使用情况
free

# 以MB为单位显示
free -m

# 以GB为单位显示
free -g

vmstat - 虚拟内存统计

1
2
3
4
5
6
7
8
# 显示虚拟内存统计
vmstat

# 每秒更新一次
vmstat 1

# 显示指定次数
vmstat 1 5

iostat - I/O设备统计

1
2
3
4
5
6
7
8
# 显示I/O统计
iostat

# 显示CPU和I/O统计
iostat -x

# 每秒更新一次
iostat 1

5.3 压缩和解压

tar - 归档工具

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 创建tar包
tar -cvf archive.tar file1 file2 directory/

# 创建gzip压缩包
tar -czvf archive.tar.gz file1 file2 directory/

# 创建bzip2压缩包
tar -cjvf archive.tar.bz2 file1 file2 directory/

# 解压tar包
tar -xvf archive.tar

# 解压gzip压缩包
tar -xzvf archive.tar.gz

# 解压bzip2压缩包
tar -xjvf archive.tar.bz2

zip/unzip - ZIP压缩工具

1
2
3
4
5
6
7
8
# 创建zip压缩包
zip archive.zip file1 file2 directory/

# 解压zip文件
unzip archive.zip

# 查看zip文件内容
unzip -l archive.zip

总结

技术要点回顾

    1. 文件操作:掌握lscdcpmvrm等基本命令,能够高效管理文件和目录
    1. 系统管理:学会useraddchmodchown等命令,进行用户和权限管理
    1. 网络操作:熟悉sshscpping等命令,进行网络连接和文件传输
    1. 文本处理:掌握grepsedawk等工具,高效处理文本数据
    1. 系统监控:使用topfreedf等命令监控系统运行状态

实际应用建议

  • 日常运维:使用lscdgrep等命令快速查找和管理文件
  • 系统管理:定期使用dfdufree检查系统资源使用情况
  • 网络管理:使用ssh进行远程管理,ping测试网络连通性
  • 故障排查:使用tail查看日志,ps检查进程状态
  • 自动化脚本:结合sedawk编写自动化处理脚本