Linux常用命令详解

目录

文件和目录操作

文本处理

系统信息查看

进程管理

权限管理

压缩和解压

查找和搜索

网络相关

磁盘和存储

环境变量和配置

常用快捷键

管道和重定向

实用组合命令示例


文件和目录操作

ls – 列出目录内容

ls              # 列出当前目录文件
ls -l           # 详细列表格式
ls -la          # 显示隐藏文件
ls -lh          # 人性化显示文件大小
ls -lt          # 按修改时间排序
ls -lr          # 递归显示子目录

cd – 切换目录

cd /path/to/dir # 切换到指定目录
cd ~            # 切换到用户主目录
cd ..           # 切换到上级目录
cd -            # 切换到上次访问的目录
cd              # 切换到用户主目录(同cd ~)

pwd – 显示当前目录

pwd             # 显示当前工作目录的完整路径

mkdir – 创建目录

mkdir dirname           # 创建单个目录
mkdir dir1 dir2 dir3    # 创建多个目录
mkdir -p path/to/dir    # 递归创建目录(父目录不存在时自动创建)
mkdir -m 755 dirname    # 创建目录并设置权限

rmdir – 删除空目录

rmdir dirname           # 删除空目录
rmdir -p path/to/dir    # 递归删除空目录

rm – 删除文件和目录

rm filename             # 删除文件
rm -i filename          # 交互式删除(确认提示)
rm -f filename          # 强制删除
rm -r dirname           # 递归删除目录
rm -rf dirname          # 强制递归删除目录
rm *.txt                # 删除所有.txt文件

cp – 复制文件和目录

cp source dest          # 复制文件
cp -r source dest       # 递归复制目录
cp -i source dest       # 交互式复制(目标存在时提示)
cp -p source dest       # 保持文件属性
cp -u source dest       # 只复制更新的文件

mv – 移动/重命名文件和目录

mv oldname newname      # 重命名文件/目录
mv source dest          # 移动文件/目录
mv -i source dest       # 交互式移动
mv file1 file2 dir/     # 移动多个文件到目录

ln – 创建链接

ln file link            # 创建硬链接
ln -s file link         # 创建软链接(符号链接)
ln -sf file link        # 强制创建软链接

文本处理

cat – 显示文件内容

cat filename            # 显示文件内容
cat file1 file2         # 连接显示多个文件
cat -n filename         # 显示行号
cat -b filename         # 显示非空行行号
cat > filename          # 创建文件(输入内容后Ctrl+D结束)

less/more – 分页显示文件内容

less filename           # 分页显示文件(推荐)
more filename           # 分页显示文件
# less中的操作:
# 空格键:下一页
# b:上一页
# /text:搜索text
# q:退出

head – 显示文件头部

head filename           # 显示前10行
head -n 20 filename     # 显示前20行
head -c 100 filename    # 显示前100个字符

tail – 显示文件尾部

tail filename           # 显示后10行
tail -n 20 filename     # 显示后20行
tail -f filename        # 实时监控文件变化
tail -F filename        # 实时监控(文件被重建时也能继续)

grep – 文本搜索

grep "pattern" filename         # 搜索模式
grep -i "pattern" filename      # 忽略大小写搜索
grep -r "pattern" directory     # 递归搜索目录
grep -n "pattern" filename      # 显示行号
grep -v "pattern" filename      # 反向搜索(不包含模式的行)
grep -c "pattern" filename      # 统计匹配行数
grep -E "pattern" filename      # 使用扩展正则表达式

sed – 流编辑器

sed 's/old/new/' filename           # 替换每行第一个匹配
sed 's/old/new/g' filename          # 替换所有匹配
sed -i 's/old/new/g' filename       # 直接修改文件
sed '1,5d' filename                 # 删除1-5行
sed -n '1,5p' filename              # 只显示1-5行

awk – 文本处理工具

awk '{print $1}' filename          # 打印第一列
awk '{print NF}' filename           # 打印每行的字段数
awk 'NR==1,NR==5' filename          # 打印1-5行
awk -F: '{print $1}' /etc/passwd    # 以:为分隔符,打印第一列

sort – 排序

sort filename           # 按字母顺序排序
sort -n filename        # 按数值排序
sort -r filename        # 反向排序
sort -u filename        # 排序并去重
sort -k2 filename       # 按第二列排序

uniq – 去重

uniq filename           # 去除相邻重复行
uniq -c filename        # 统计重复次数
uniq -d filename        # 只显示重复行

wc – 统计

wc filename             # 统计行数、词数、字符数
wc -l filename          # 只统计行数
wc -w filename          # 只统计词数
wc -c filename          # 只统计字符数

系统信息查看

uname – 系统信息

uname -a                # 显示所有系统信息
uname -r                # 显示内核版本
uname -m                # 显示机器架构

whoami – 当前用户

whoami                  # 显示当前用户名

id – 用户ID信息

id                      # 显示当前用户和组ID
id username             # 显示指定用户信息

who – 已登录用户

who                     # 显示已登录用户
w                       # 显示用户活动详情

date – 日期时间

date                    # 显示当前日期时间
date +"%Y-%m-%d %H:%M:%S"  # 格式化显示
date -d "1 day ago"     # 显示一天前的日期

uptime – 系统运行时间

uptime                  # 显示系统运行时间和负载

df – 磁盘使用情况

df                      # 显示磁盘使用情况
df -h                   # 人性化显示
df -i                   # 显示inode使用情况

du – 目录大小

du -h directory         # 显示目录大小
du -sh directory        # 显示目录总大小
du -ah directory        # 显示所有文件大小
du --max-depth=1        # 只显示一级子目录

free – 内存使用情况

free                    # 显示内存使用情况
free -h                 # 人性化显示
free -m                 # 以MB为单位显示

进程管理

ps – 显示进程

ps                      # 显示当前终端进程
ps aux                  # 显示所有进程详细信息
ps -ef                  # 显示所有进程
ps -u username          # 显示指定用户进程

top – 实时显示进程

top                     # 实时显示系统进程
htop                    # 增强版top(需要安装)
# top中的操作:
# q:退出
# k:杀死进程
# M:按内存使用排序
# P:按CPU使用排序

jobs – 作业管理

jobs                    # 显示后台作业
jobs -l                 # 显示作业详细信息

nohup – 后台运行

nohup command &         # 后台运行命令,忽略挂起信号
nohup command > log.txt 2>&1 &  # 重定向输出到文件

kill – 终止进程

kill PID                # 终止指定进程
kill -9 PID             # 强制终止进程
kill -TERM PID          # 发送终止信号
killall process_name    # 终止所有同名进程

bg/fg – 后台前台切换

bg %1                   # 将作业1放到后台
fg %1                   # 将作业1调到前台
Ctrl+Z                  # 暂停当前进程
Ctrl+C                  # 终止当前进程

权限管理

chmod – 修改权限

chmod 755 filename      # 设置权限为rwxr-xr-x
chmod +x filename       # 添加执行权限
chmod -w filename       # 移除写权限
chmod u+w filename      # 给所有者添加写权限
chmod g-r filename      # 移除组的读权限
chmod o+x filename      # 给其他用户添加执行权限
chmod -R 755 directory  # 递归修改目录权限

权限数字表示:

4: 读权限(r)
2: 写权限(w)
1: 执行权限(x)
7 = 4+2+1: 读写执行
6 = 4+2: 读写
5 = 4+1: 读执行

chown – 修改所有者

chown user filename         # 修改文件所有者
chown user:group filename   # 修改所有者和组
chown -R user directory     # 递归修改目录所有者

chgrp – 修改组

chgrp group filename        # 修改文件所属组
chgrp -R group directory    # 递归修改目录所属组

umask – 默认权限

umask                   # 显示当前umask值
umask 022               # 设置umask值

压缩和解压

tar – 打包和解压

tar -cvf archive.tar files     # 创建tar包
tar -czvf archive.tar.gz files # 创建gzip压缩包
tar -cjvf archive.tar.bz2 files # 创建bzip2压缩包
tar -xvf archive.tar           # 解压tar包
tar -xzvf archive.tar.gz       # 解压gzip包
tar -xjvf archive.tar.bz2      # 解压bzip2包
tar -tf archive.tar            # 查看tar包内容
tar -xvf archive.tar -C /path  # 解压到指定目录

gzip/gunzip – gzip压缩

gzip filename           # 压缩文件
gunzip filename.gz      # 解压文件
gzip -d filename.gz     # 解压文件
gzip -r directory       # 递归压缩目录下所有文件

zip/unzip – zip压缩

zip archive.zip files   # 创建zip包
zip -r archive.zip dir  # 递归压缩目录
unzip archive.zip       # 解压zip包
unzip -l archive.zip    # 查看zip包内容
unzip archive.zip -d /path  # 解压到指定目录

查找和搜索

find – 查找文件

find /path -name "filename"     # 按名称查找
find /path -type f              # 查找文件
find /path -type d              # 查找目录
find /path -size +100M          # 查找大于100M的文件
find /path -mtime -7            # 查找7天内修改的文件
find /path -user username       # 查找指定用户的文件
find /path -perm 755            # 查找指定权限的文件
find /path -name "*.txt" -exec rm {} ;  # 查找并删除

locate – 快速查找

locate filename         # 快速查找文件
updatedb               # 更新文件数据库

which – 查找命令路径

which command          # 查找命令的完整路径

whereis – 查找程序

whereis command        # 查找程序的二进制、源码、手册位置

网络相关

ping – 测试连通性

ping hostname          # 测试网络连通性
ping -c 4 hostname     # 发送4个包后停止
ping -i 2 hostname     # 每2秒发送一个包

wget – 下载文件

wget URL               # 下载文件
wget -O filename URL   # 下载并重命名
wget -c URL            # 断点续传
wget -r URL            # 递归下载网站

curl – 传输数据

curl URL               # 获取网页内容
curl -O URL            # 下载文件
curl -L URL            # 跟随重定向
curl -H "Header: value" URL  # 添加HTTP头
curl -X POST URL       # 发送POST请求

ssh – 远程登录

ssh user@hostname      # SSH登录远程主机
ssh -p 2222 user@host  # 指定端口登录
ssh -i keyfile user@host  # 使用密钥文件登录

scp – 远程复制

scp file user@host:/path    # 复制文件到远程主机
scp user@host:/path file    # 从远程主机复制文件
scp -r dir user@host:/path  # 复制目录

netstat – 网络状态

netstat -tuln          # 显示所有监听端口
netstat -an            # 显示所有连接
netstat -r             # 显示路由表

磁盘和存储

mount – 挂载文件系统

mount                  # 显示已挂载的文件系统
mount /dev/sdb1 /mnt   # 挂载设备到目录
umount /mnt            # 卸载文件系统

fdisk – 磁盘分区

fdisk -l               # 列出所有磁盘分区
fdisk /dev/sdb         # 对磁盘进行分区操作

lsblk – 显示块设备

lsblk                  # 以树状显示块设备
lsblk -f               # 显示文件系统信息

环境变量和配置

export – 设置环境变量

export VAR=value       # 设置环境变量
export PATH=$PATH:/new/path  # 添加到PATH

env – 显示环境变量

env                    # 显示所有环境变量
env | grep PATH        # 查找特定环境变量

alias – 别名

alias                  # 显示所有别名
alias ll='ls -l'       # 创建别名
unalias ll             # 删除别名

history – 命令历史

history                # 显示命令历史
history | grep command # 搜索历史命令
!!                     # 执行上一条命令
!n                     # 执行第n条历史命令

常用快捷键

命令行编辑

Ctrl+A: 光标移到行首
Ctrl+E: 光标移到行尾
Ctrl+U: 删除光标到行首的内容
Ctrl+K: 删除光标到行尾的内容
Ctrl+W: 删除光标前的单词
Ctrl+L: 清屏
Ctrl+C: 终止当前命令
Ctrl+Z: 暂停当前命令
Ctrl+D: 退出当前会话

历史命令

: 上一条命令
: 下一条命令
Ctrl+R: 搜索历史命令


管道和重定向

重定向操作符

command > file         # 标准输出重定向到文件(覆盖)
command >> file        # 标准输出重定向到文件(追加)
command < file         # 从文件读取输入
command 2> file        # 错误输出重定向到文件
command 2>&1           # 错误输出重定向到标准输出
command > file 2>&1    # 标准输出和错误输出都重定向到文件

管道操作

command1 | command2    # 将command1的输出作为command2的输入
ls -l | grep ".txt"    # 列出当前目录并筛选txt文件
ps aux | grep firefox  # 查找firefox进程

实用组合命令示例

# 查找最大的10个文件
find /path -type f -exec ls -lh {} ; | sort -k5 -hr | head -10

# 统计代码行数
find . -name "*.py" | xargs wc -l

# 批量重命名文件
for file in *.txt; do mv "$file" "${file%.txt}.bak"; done

# 监控日志文件
tail -f /var/log/syslog | grep ERROR

# 查找并删除空目录
find /path -type d -empty -delete

# 统计目录下文件数量
find /path -type f | wc -l

# 查找重复文件
find /path -type f -exec md5sum {} ; | sort | uniq -d -w32

这份文档涵盖了Linux系统中最常用的命令和操作。建议根据实际使用场景,逐步学习和实践这些命令。记住,man command 可以查看任何命令的详细手册页。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容