文章目录
-
- 一、文件与目录操作
-
- [1.1 `ls` - 列出目录内容](#1.1
ls
- 列出目录内容) - [1.2 `cd` - 切换目录](#1.2
cd
- 切换目录) - [1.3 `pwd` - 显示当前目录](#1.3
pwd
- 显示当前目录) - [1.4 `mkdir` - 创建目录](#1.4
mkdir
- 创建目录) - [1.5 `rmdir` - 删除空目录](#1.5
rmdir
- 删除空目录) - [1.6 `rm` - 删除文件或目录](#1.6
rm
- 删除文件或目录) - [1.7 `cp` - 复制文件或目录](#1.7
cp
- 复制文件或目录) - [1.8 `mv` - 移动或重命名文件或目录](#1.8
mv
- 移动或重命名文件或目录) - [1.9 `touch` - 创建空文件或更新文件时间戳](#1.9
touch
- 创建空文件或更新文件时间戳)
- [1.1 `ls` - 列出目录内容](#1.1
- 二、文件内容查看与编辑
-
- [2.1 `cat` - 连接并显示文件内容](#2.1
cat
- 连接并显示文件内容) - [2.2 `tac` - 反向显示文件内容](#2.2
tac
- 反向显示文件内容) - [2.3 `more` - 分页显示文件内容](#2.3
more
- 分页显示文件内容) - [2.4 `less` - 分页显示文件内容(支持向前翻页)](#2.4
less
- 分页显示文件内容(支持向前翻页)) - [2.5 `head` - 显示文件开头部分内容](#2.5
head
- 显示文件开头部分内容) - [2.6 `tail` - 显示文件结尾部分内容](#2.6
tail
- 显示文件结尾部分内容) - [2.7 `nano` - 简单易用的文本编辑器](#2.7
nano
- 简单易用的文本编辑器) - [2.8 `vim` - 功能强大的文本编辑器](#2.8
vim
- 功能强大的文本编辑器)
- [2.1 `cat` - 连接并显示文件内容](#2.1
- 三、文件权限管理
-
- [3.1 `chmod` - 修改文件权限](#3.1
chmod
- 修改文件权限) - [3.2 `chown` - 修改文件所有者](#3.2
chown
- 修改文件所有者) - [3.3 `chgrp` - 修改文件所属组](#3.3
chgrp
- 修改文件所属组)
- [3.1 `chmod` - 修改文件权限](#3.1
- 四、系统管理
-
- [4.1 `ps` - 显示当前进程](#4.1
ps
- 显示当前进程) - [4.2 `top` - 实时显示系统资源使用情况](#4.2
top
- 实时显示系统资源使用情况) - [4.3 `kill` - 终止进程](#4.3
kill
- 终止进程) - [4.4 `df` - 显示磁盘空间使用情况](#4.4
df
- 显示磁盘空间使用情况) - [4.5 `du` - 显示目录或文件的磁盘使用情况](#4.5
du
- 显示目录或文件的磁盘使用情况) - [4.6 `free` - 显示内存使用情况](#4.6
free
- 显示内存使用情况)
- [4.1 `ps` - 显示当前进程](#4.1
- 五、网络管理
-
- [5.1 `ping` - 测试网络连通性](#5.1
ping
- 测试网络连通性) - [5.2 `ifconfig` - 配置网络接口(旧版工具,已被`ip`替代)](#5.2
ifconfig
- 配置网络接口(旧版工具,已被ip
替代)) - [5.3 `ip` - 显示或配置网络接口](#5.3
ip
- 显示或配置网络接口) - [5.4 `netstat` - 显示网络连接、路由表、接口状态等](#5.4
netstat
- 显示网络连接、路由表、接口状态等) - [5.5 `ssh` - 远程登录](#5.5
ssh
- 远程登录)
- [5.1 `ping` - 测试网络连通性](#5.1
- 六、打包与压缩
-
- [6.1 `tar` - 归档文件](#6.1
tar
- 归档文件) - [6.2 `gzip` - 压缩文件](#6.2
gzip
- 压缩文件) - [6.3 `gunzip` - 解压缩文件](#6.3
gunzip
- 解压缩文件) - [6.4 `zip` - 压缩文件](#6.4
zip
- 压缩文件) - [6.5 `unzip` - 解压缩文件](#6.5
unzip
- 解压缩文件)
- [6.1 `tar` - 归档文件](#6.1
- 七、查找与搜索
-
- [7.1 `find` - 查找文件](#7.1
find
- 查找文件) - [7.2 `grep` - 搜索文本](#7.2
grep
- 搜索文本) - [7.3 `locate` - 快速查找文件](#7.3
locate
- 快速查找文件)
- [7.1 `find` - 查找文件](#7.1
- 八、其他实用命令
-
- [8.1 `date` - 显示或设置系统日期时间](#8.1
date
- 显示或设置系统日期时间) - [8.2 `cal` - 显示日历](#8.2
cal
- 显示日历) - [8.3 `history` - 显示命令历史](#8.3
history
- 显示命令历史) - [8.4 `alias` - 设置命令别名](#8.4
alias
- 设置命令别名) - [8.5 `uname` - 显示系统信息](#8.5
uname
- 显示系统信息) - [8.6 `man` - 查看命令手册](#8.6
man
- 查看命令手册)
- [8.1 `date` - 显示或设置系统日期时间](#8.1
- 九、进阶命令与脚本编写
-
- [9.1 `awk` - 文本处理工具](#9.1
awk
- 文本处理工具) - [9.2 `sed` - 流编辑器](#9.2
sed
- 流编辑器) - [9.3 `cron` - 定时任务](#9.3
cron
- 定时任务) - [9.4 `ssh-keygen` - 生成SSH密钥](#9.4
ssh-keygen
- 生成SSH密钥) - [9.5 `scp` - 安全复制文件](#9.5
scp
- 安全复制文件) - [9.6 `rsync` - 同步文件和目录](#9.6
rsync
- 同步文件和目录) - [9.7 `iptables` - 配置Linux内核防火墙](#9.7
iptables
- 配置Linux内核防火墙) - [9.8 `docker` - 容器管理](#9.8
docker
- 容器管理) - [9.9 `kubernetes` - 容器编排](#9.9
kubernetes
- 容器编排) - [9.10 `ansible` - 自动化配置管理](#9.10
ansible
- 自动化配置管理)
- [9.1 `awk` - 文本处理工具](#9.1
- 十、总结与常见问题
-
- [10.1 常见问题](#10.1 常见问题)
-
- [10.1.1 权限不足](#10.1.1 权限不足)
- [10.1.2 文件不存在](#10.1.2 文件不存在)
- [10.1.3 命令未找到](#10.1.3 命令未找到)
- [10.2 提高效率的技巧](#10.2 提高效率的技巧)
-
- [10.2.1 使用别名](#10.2.1 使用别名)
- [10.2.2 使用命令历史](#10.2.2 使用命令历史)
- [10.2.3 自动补全](#10.2.3 自动补全)
- [10.3 持续学习与进阶](#10.3 持续学习与进阶)
-
- [10.3.1 阅读手册页](#10.3.1 阅读手册页)
- [10.3.2 在线资源](#10.3.2 在线资源)
一、文件与目录操作
1.1 ls
- 列出目录内容
ls
命令用于显示目录中的文件和子目录。默认情况下,它仅显示文件名。该命令支持多种选项,以提供更多信息。
shell
ls [选项] [目录]
常用选项:
ls -l
:以长格式显示,包括文件的权限、所有者、文件大小和最后修改时间。
shell
ls -l /home/user
输出示例:
shell
total 12
drwxr-xr-x 2 user user 4096 Jan 1 12:34 Documents
-rw-r--r-- 1 user user 123 Jan 1 12:34 file.txt
ls -a
:显示所有文件,包括隐藏文件(以.
开头的文件)。
shell
ls -a /home/user
输出示例:
shell
. .. .bashrc .profile Documents file.txt
ls -h
:以人类可读的格式显示文件大小(如K、M、G)。
shell
ls -lh /home/user
输出示例:
shell
total 12K
drwxr-xr-x 2 user user 4.0K Jan 1 12:34 Documents
-rw-r--r-- 1 user user 123 Jan 1 12:34 file.txt
组合使用选项:
shell
ls -lah /home/user
输出示例:
shell
total 12K
drwxr-xr-x 3 user user 4.0K Jan 1 12:34 .
drwxr-xr-x 20 user user 4.0K Jan 1 12:34 ..
-rw-r--r-- 1 user user 220 Jan 1 12:34 .bashrc
-rw-r--r-- 1 user user 655 Jan 1 12:34 .profile
drwxr-xr-x 2 user user 4.0K Jan 1 12:34 Documents
-rw-r--r-- 1 user user 123 Jan 1 12:34 file.txt
1.2 cd
- 切换目录
cd
命令用于在目录之间导航。它改变当前工作目录。
shell
cd [目录]
示例:
- 切换到用户的主目录:
shell
cd ~
- 切换到上一级目录:
shell
cd ..
- 切换到指定目录:
shell
cd /home/user/Documents
- 返回到上一次所在的目录:
shell
cd -
1.3 pwd
- 显示当前目录
pwd
命令显示当前工作目录的完整路径。
shell
pwd
示例:
shell
$ pwd
/home/user/Documents
1.4 mkdir
- 创建目录
mkdir
命令用于创建新目录。
shell
mkdir [选项] 目录名
常用选项:
- 创建单个目录:
shell
mkdir mydir
- 创建多级目录:
shell
mkdir -p parent/child/grandchild
1.5 rmdir
- 删除空目录
rmdir
命令用于删除空目录。如果目录非空,则删除失败。
shell
rmdir 目录名
示例:
shell
rmdir mydir
1.6 rm
- 删除文件或目录
rm
命令用于删除文件或目录。删除操作是不可逆的,需谨慎使用。
shell
rm [选项] 文件
常用选项:
- 删除文件:
shell
rm file.txt
- 递归删除目录及其内容:
shell
rm -r mydir
- 强制删除:
shell
rm -f file.txt
1.7 cp
- 复制文件或目录
cp
命令用于复制文件或目录。
shell
cp [选项] 源文件 目标文件
常用选项:
- 复制文件:
shell
cp file1.txt file2.txt
- 递归复制目录:
shell
cp -r dir1 dir2
1.8 mv
- 移动或重命名文件或目录
mv
命令用于移动或重命名文件或目录。
shell
mv [选项] 源文件 目标文件
示例:
- 移动文件:
shell
mv file.txt /new/location/
- 重命名文件:
shell
mv oldname.txt newname.txt
1.9 touch
- 创建空文件或更新文件时间戳
touch
命令用于创建新的空文件或更新现有文件的访问和修改时间。
shell
touch 文件名
示例:
- 创建新文件:
shell
touch newfile.txt
二、文件内容查看与编辑
2.1 cat
- 连接并显示文件内容
cat
命令用于连接文件并显示其内容。它通常用于查看文件的内容,但也可用于合并文件。
shell
cat [选项] 文件
常用选项:
- 显示文件内容:
shell
cat file.txt
- 显示带行号的文件内容:
shell
cat -n file.txt
2.2 tac
- 反向显示文件内容
tac
命令将文件内容按行反序显示。与cat
相反。
shell
tac 文件
示例:
shell
tac file.txt
2.3 more
- 分页显示文件内容
more
命令用于分页显示文件内容,适合查看长文件。
shell
more 文件
示例:
shell
more file.txt
操作提示:
- 按
空格键
翻页 - 按
Enter
键逐行滚动 - 按
q
退出
2.4 less
- 分页显示文件内容(支持向前翻页)
less
命令类似于more
,但提供了更多功能,如向前翻页。
shell
less 文件
示例:
shell
less file.txt
操作提示:
- 按
空格键
翻页 - 按
上/下箭头
键滚动 - 按
q
退出
2.5 head
- 显示文件开头部分内容
head
命令显示文件的前几行内容。
shell
head [选项] 文件
常用选项:
- 显示文件的前10行:
shell
head -n 10 file.txt
2.6 tail
- 显示文件结尾部分内容
tail
命令显示文件的后几行内容。
shell
tail [选项] 文件
常用选项:
- 显示文件的最后10行:
shell
tail -n 10 file.txt
- 实时显示文件新增内容:
shell
tail -f file.txt
2.7 nano
- 简单易用的文本编辑器
nano
是一个简单易用的文本编辑器,适合新手。
shell
nano 文件
示例:
shell
nano file.txt
基本操作:
Ctrl + O
:保存文件Ctrl + X
:退出编辑器
2.8 vim
- 功能强大的文本编辑器
vim
是一个功能强大的文本编辑器,适合高级用户。它有两种模式:普通模式和插入模式。
shell
vim 文件
示例:
shell
vim file.txt
基本操作:
- 进入插入模式:按
i
- 保存文件:按
Esc
,输入:w
- 退出编辑器:按
Esc
,输入:q
三、文件权限管理
3.1 chmod
- 修改文件权限
chmod
命令用于更改文件或目录的权限。权限由三部分组成:所有者、组和其他用户。
shell
chmod [选项] 权限 文件
权限表示法
:
- 数字表示法:如755
- 符号表示法:如
u+x
示例:
- 设置文件权限为755:
shell
chmod 755 file.txt
- 增加文件拥有者的执行权限:
shell
chmod u+x file.txt
3.2 chown
- 修改文件所有者
chown
命令用于更改文件或目录的所有者和组。
shell
chown [选项] 用户:组 文件
示例:
- 将文件所有者和所有组改为root:
shell
chown root:root file.txt
3.3 chgrp
- 修改文件所属组
chgrp
命令用于更改文件或目录的组。
shell
chgrp [选项] 组 文件
示例:
- 将文件的组改为staff:
shell
chgrp staff file.txt
四、系统管理
4.1 ps
- 显示当前进程
ps
命令用于显示当前系统的进程列表。
shell
ps [选项]
常用选项:
- 显示所有进程:
shell
ps aux
4.2 top
- 实时显示系统资源使用情况
top
命令实时显示系统资源的使用情况,包括CPU、内存、进程等。
shell
top
操作提示:
- 按
q
退出
4.3 kill
- 终止进程
kill
命令用于终止进程。
shell
kill [选项] 进程号
示例:
- 终止指定进程:
shell
kill 12345
- 强制终止进程:
shell
kill -9 12345
4.4 df
- 显示磁盘空间使用情况
df
命令显示文件系统的磁盘空间使用情况。
shell
df [选项]
常用选项:
- 以人类可读格式显示:
shell
df -h
4.5 du
- 显示目录或文件的磁盘使用情况
du
命令显示指定目录或文件的磁盘使用情况。
shell
du [选项] [文件]
常用选项:
- 以人类可读格式显示:
shell
du -h
- 显示总计:
shell
du -s
4.6 free
- 显示内存使用情况
free
命令显示系统内存的使用情况。
shell
free [选项]
常用选项:
- 以MB为单位显示:
shell
free -m
五、网络管理
5.1 ping
- 测试网络连通性
ping
命令用于测试与目标主机的网络连通性。
shell
ping [选项] 目标地址
示例:
shell
ping google.com
5.2 ifconfig
- 配置网络接口(旧版工具,已被ip
替代)
ifconfig
命令用于显示和配置网络接口。
shell
ifconfig [接口]
示例:
- 显示所有网络接口:
shell
ifconfig
5.3 ip
- 显示或配置网络接口
ip
命令是ifconfig
命令的替代工具,用于显示和配置网络接口。
shell
ip addr
ip link set dev 接口名 up/down
示例:
- 显示所有网络接口和地址:
shell
ip addr
- 启用网络接口:
shell
ip link set dev eth0 up
- 禁用网络接口:
shell
ip link set dev eth0 down
5.4 netstat
- 显示网络连接、路由表、接口状态等
netstat
命令用于显示网络连接、路由表、接口状态等信息。
shell
netstat [选项]
常用选项:
- 显示所有连接:
shell
netstat -an
5.5 ssh
- 远程登录
ssh
命令用于通过SSH协议远程登录到另一台机器。
shell
ssh 用户名@远程主机
示例:
shell
ssh user@remotehost
六、打包与压缩
6.1 tar
- 归档文件
tar
命令用于创建和管理归档文件。
shell
tar [选项] 文件
常用选项:
- 创建tar归档文件:
shell
tar -cvf archive.tar 文件
- 解压tar归档文件:
shell
tar -xvf archive.tar
- 查看tar归档文件内容:
shell
tar -tvf archive.tar
6.2 gzip
- 压缩文件
gzip
命令用于压缩文件。
shell
gzip 文件
示例:
- 压缩文件:
shell
gzip file.txt
6.3 gunzip
- 解压缩文件
gunzip
命令用于解压缩文件。
shell
gunzip 文件.gz
示例:
- 解压缩文件:
shell
gunzip file.txt.gz
6.4 zip
- 压缩文件
zip
命令用于将文件或目录压缩为zip格式。
shell
zip [选项] 压缩包名 文件
常用选项:
- 压缩单个文件:
shell
zip archive.zip file.txt
- 递归压缩目录:
shell
zip -r archive.zip 目录
6.5 unzip
- 解压缩文件
unzip
命令用于解压缩zip文件。
shell
unzip 压缩包名.zip
示例:
- 解压缩文件:
shell
unzip archive.zip
七、查找与搜索
7.1 find
- 查找文件
find
命令用于在指定目录及其子目录中查找文件。
shell
find [路径] [选项] [表达式]
常用选项:
- 按名称查找文件:
shell
find / -name "file.txt"
- 按文件大小查找文件:
shell
find / -size +100M
7.2 grep
- 搜索文本
grep
命令用于在文件中搜索匹配的文本模式。
shell
grep [选项] 模式 文件
常用选项:
- 搜索文件中的模式:
shell
grep "pattern" file.txt
- 递归搜索目录中的模式:
shell
grep -r "pattern" 目录
7.3 locate
- 快速查找文件
locate
命令用于快速查找文件。它基于预先构建的数据库,速度很快。
shell
locate 文件名
示例:
- 查找文件:
shell
locate file.txt
八、其他实用命令
8.1 date
- 显示或设置系统日期时间
date
命令用于显示或设置系统日期和时间。
shell
date
示例:
- 显示当前日期时间:
shell
date
- 设置系统日期时间(需管理员权限):
shell
date -s "2023-01-01 12:34:56"
8.2 cal
- 显示日历
cal
命令用于显示日历。
shell
cal
示例:
- 显示当前月份的日历:
shell
cal
- 显示指定年份的日历:
shell
cal 2023
8.3 history
- 显示命令历史
history
命令用于显示命令历史记录。
shell
history
示例:
- 显示所有历史记录:
shell
history
- 清空历史记录:
shell
history -c
8.4 alias
- 设置命令别名
alias
命令用于创建命令别名,以简化命令输入。
shell
alias 别名='命令'
示例:
- 创建
ll
的别
名为ls -l
:
shell
alias ll='ls -l'
8.5 uname
- 显示系统信息
uname
命令用于显示系统信息。
shell
uname [选项]
常用选项:
- 显示所有系统信息:
shell
uname -a
8.6 man
- 查看命令手册
man
命令用于查看命令的手册页,提供详细的命令使用信息。
shell
man 命令名
示例:
- 查看
ls
命令的手册页:
shell
man ls
九、进阶命令与脚本编写
9.1 awk
- 文本处理工具
awk
是一种强大的文本处理工具,适用于格式化报告和文本提取。
shell
awk '模式 {动作}' 文件
示例:
- 打印文件中的第二列:
shell
awk '{print $2}' file.txt
9.2 sed
- 流编辑器
sed
是一种流编辑器,适用于对文本文件的批量编辑。
shell
sed '命令' 文件
示例:
- 将文件中的所有
foo
替换为bar
:
shell
sed 's/foo/bar/g' file.txt
9.3 cron
- 定时任务
cron
用于在指定时间运行计划任务。
shell
crontab -e
示例:
- 每天凌晨2点运行备份脚本:
shell
0 2 * * * /path/to/backup.sh
9.4 ssh-keygen
- 生成SSH密钥
ssh-keygen
用于生成SSH公钥和私钥对。
shell
ssh-keygen
示例:
- 生成密钥对并指定文件名:
shell
ssh-keygen -f ~/.ssh/mykey
9.5 scp
- 安全复制文件
scp
用于通过SSH在本地和远程主机之间安全复制文件。
shell
scp 源文件 目标文件
示例:
- 将本地文件复制到远程主机:
shell
scp file.txt user@remotehost:/path/to/destination
9.6 rsync
- 同步文件和目录
rsync
用于在本地和远程主机之间同步文件和目录。
shell
rsync [选项] 源 目标
示例:
- 同步本地目录到远程主机:
shell
rsync -avz /path/to/local/ user@remotehost:/path/to/remote/
9.7 iptables
- 配置Linux内核防火墙
iptables
用于配置和管理Linux内核中的IP包过滤规则。
shell
iptables [选项]
示例:
- 允许特定端口的入站连接:
shell
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
9.8 docker
- 容器管理
docker
用于管理应用容器,可以简化应用的部署和管理。
shell
docker [选项]
示例:
- 拉取Docker镜像:
shell
docker pull ubuntu
- 运行Docker容器:
shell
docker run -it ubuntu /bin/bash
9.9 kubernetes
- 容器编排
kubernetes
用于自动化容器化应用的部署、管理和扩展。
shell
kubectl [选项]
示例:
- 显示当前集群中的所有Pod:
shell
kubectl get pods
9.10 ansible
- 自动化配置管理
ansible
用于自动化配置管理和应用部署。
shell
ansible [选项]
示例:
- 运行Ansible playbook:
shell
ansible-playbook playbook.yml
十、总结与常见问题
10.1 常见问题
10.1.1 权限不足
- 错误示例:
shell
bash: /etc/hosts: Permission denied
- 解决方法:使用
sudo
命令提升权限。
shell
sudo nano /etc/hosts
10.1.2 文件不存在
- 错误示例:
shell
ls: cannot access 'file.txt': No such file or directory
- 解决方法:检查文件路径是否正确,使用
find
或locate
命令查找文件。
10.1.3 命令未找到
- 错误示例:
shell
bash: foo: command not found
- 解决方法:检查命令是否正确输入,或安装相应的软件包。
10.2 提高效率的技巧
10.2.1 使用别名
通过创建别名,可以简化常用命令的输入。
shell
alias ll='ls -l'
alias gs='git status'
10.2.2 使用命令历史
使用history
命令查看和重用以前输入的命令。
shell
history
使用!
加上命令编号重复执行命令:
shell
!42
10.2.3 自动补全
使用Tab键自动补全命令和文件名,可以减少输入错误和提高效率。
10.3 持续学习与进阶
10.3.1 阅读手册页
每个Linux命令都有详细的手册页,可以通过man
命令查看。
shell
man ls
10.3.2 在线资源
- Linux Documentation Project (LDP)
- Stack Overflow
- 各种Linux发行版的官方文档和社区论坛