目录
提示
- [ ]:代表[ ]中的字段为可选参数
- [options] :可选参数,代表命令的选项,选项通常由一个短划线(-)后面跟着一个字母或一个长划线(–)后面跟着一个单词组成。这些选项允许对命令的输出进行不同的格式化和过滤。
- [directory] :可选参数,代表目录的路径。
一、文件和目录操作
- ls: 列出目录内容。
ls [options] [directory]
# 列出当前目录的内容(通常是用户的主目录)
ls
# 列出指定目录的内容
ls /path/directory
# 列出当前目录的内容,包括隐藏文件和目录的内容
ls -a
# 以长格式列出当前目录的内容(包括权限、所有者、文件大小等信息)
ls -l
- pwd: 显示当前工作目录。
pwd
- cd: 切换目录。
cd [directory]
# 进入指定目录
cd /path/to/directory
# 进入用户的主目录(通常是 home 目录)
cd ~
# 进入上级目录
cd ..
# 进入根目录
cd /
# 返回上一次所在的目录(使用 - 作为参数)
cd -
- touch: 创建空文件。
touch filename
- mkdir: 创建目录。
mkdir directory
- rm: 删除文件或目录。
rm [options] file/directory
# -r 或 -R:递归删除目录及其内容。
# 使用这个选项时,要特别小心,因为它将删除目录及其所有子目录和文件。
rm -r directory/
# -f:强制删除,不会提示用户确认。
# 这个选项通常与 -r 一起使用,以删除目录及其内容而无需确认。
rm -rf directory/
# -i:交互式删除,会在删除前提示用户确认。
rm -i file
- cp: 复制文件或目录。
cp [options] source destination
# 复制文件到另一个位置
cp file1.txt /path/to/destination/
# 复制多个文件到目标目录
cp file1.txt file2.txt /path/to/destination/
# 复制目录及其内容到目标目录,使用 -r 选项进行递归复制
cp -r directory/ /path/to/destination/
# 保留原文件的权限和属性,使用 -p 选项
cp -p file1.txt /path/to/destination/
# 强制覆盖目标文件,如果目标文件已存在,使用 -f 选项
cp -f file1.txt /path/to/destination/
# 显示复制进度,使用 -v 选项(verbose)
cp -v file1.txt /path/to/destination/
- mv: 移动或重命名文件或目录。
mv [options] source destination
# 移动文件到另一个位置
mv file1.txt /path/to/destination/
# 重命名文件
mv oldname.txt newname.txt
# 移动目录到另一个位置,使用 -i 选项进行交互式确认
mv -i directory/ /path/to/destination/
# 强制覆盖目标文件,如果目标文件已存在,使用 -f 选项
mv -f file1.txt /path/to/destination/
# 移动目录并保留原文件的权限和属性,使用 -p 选项
mv -p directory/ /path/to/destination/
# 移动多个文件到目标目录
mv file1.txt file2.txt /path/to/destination/
# 显示移动过程,使用 -v 选项(verbose)
mv -v file1.txt /path/to/destination/
二、文件查看和编辑
- cat: 查看文件内容。
cat filename
- more / less: 分屏查看文件内容。
# more 命令以一页一页地显示文件内容,每次按下空格键会显示下一页,按下 q 键退出。
# more 不支持回滚操作,只能向前查看。
more filename
# less 支持向前和向后滚动查看文件。
# 你可以使用空格键向下滚动一页,使用 b 键向上滚动一页,按下 q 键退出。
less filename
- head / tail: 查看文件头部或尾部。
head [options] filename
tail [options] filename
# 查看文件的前 20 行
head -n 20 filename
# 查看文件的最后 20 行
tail -n 20 filename
# 实时监视文件的末尾内容
tail -f filename
- nano / vi / vim: 文本编辑器。
nano filename
vi filename
vim filename
三、文件权限管理
- chmod: 修改文件权限。
chmod [options] mode filename
# 将文件 filename 的权限设置为所有者可读、写和执行,而其他用户只能读和执行
chmod 755 filename
# 递归地设置目录 directory 及其所有内容的权限
chmod -R 755 directory
# 允许所有者添加执行权限
chmod u+x filename
#删除群组和其他用户的读写权限
chmod go-rw filename
- chown: 修改文件所有者和所属组。
chown [newowner]:[newgroup] filename
# 将文件 file.txt 的所有者更改为用户 alice
chown alice file.txt
# 将文件 file.txt 的所属组更改为组 users
chown :users file.txt
# 将文件 file.txt 的所有者更改为用户 alice,并将所属组更改为组 users
chown alice:users file.txt
四、文件压缩和解压缩
- tar: 打包(压缩)文件。
tar -cvf archive.tar files/directories
# 创建一个名为 myarchive.tar 的归档文件,包含 file1.txt、file2.txt 和 directory1/
tar -cvf myarchive.tar file1.txt file2.txt directory1/
- tar: 解包(解压缩)文件。
tar -xvf archive.tar
# 解包名为 myarchive.tar 的归档文件
tar -xvf myarchive.tar
- tar: 查看归档文件内容。
tar -tvf archive.tar
# 显示 myarchive.tar 归档文件的内容列表
tar -tvf myarchive.tar
- tar: 向归档文件添加文件或目录。
tar -rvf archive.tar new_files/directories
# 向名为 myarchive.tar 的归档文件中添加新文件和目录
tar -rvf myarchive.tar newfile.txt newdirectory/
- gzip / gunzip: 压缩和解压缩文件。
# 压缩
tar -czvf archive.tar.gz files/directories
# 解压缩
tar -xzvf archive.tar.gz
五、查找文件
- find: 在文件系统中查找文件和目录。
find [directory] [condition] filename
# 在当前目录及其子目录中搜索文件名为 "example.txt" 的文件
find . -name example.txt
# 在 /home/user/documents 目录中搜索文件名以 ".pdf" 结尾的文件
find /home/user/documents -name "*.pdf"
# 在整个文件系统中搜索目录名为 "backup" 的目录
find / -type d -name backup
# 搜索当前目录及其子目录中所有的空文件夹
find . -type d -empty
# 查找 /var/log 目录下最近 7 天内修改过的 .log 文件
find /var/log -type f -name "*.log" -mtime -7
- grep: 在文件中搜索文本。
grep [options] pattern [file...]
# 在文件中搜索特定字符串
grep "pattern" filename
# 使用正则表达式搜索
grep -E "regex_pattern" filename
# 递归搜索目录中的文件
grep -r "pattern" /path/to/search
# 显示匹配行的行号
grep -n "pattern" filename
# 只显示包含匹配文本的文件名
grep -l "pattern" /path/to/search/*
# 显示不匹配模式的行
grep -v "pattern" filename
# 指定多个搜索模式
grep -e "pattern1" -e "pattern2" filename
- locate: 基于数据库查找文件。
locate [options] pattern
# 查找包含指定名称的文件
locate filename
# 查找包含指定名称的目录
locate directoryname
# 忽略大小写查找
locate -i filename
# 限制显示结果数量
locate -l 5 filename
# 显示匹配结果的数量而不显示文件名
locate -c filename
# 使用正则表达式搜索
locate -r "regex_pattern"
六、系统信息和状态
- uname: 显示系统信息。
uname [options]
# 显示操作系统名称
uname
# 显示所有系统信息
uname -a
# 显示内核版本
uname -r
# 显示硬件架构
uname -m
- top/htop: 显示系统进程和资源使用情况。
# 多数 Linux 发行版中都默认安装了 top
# top 会以实时更新的方式显示系统状态,按 q 键可以退出
top
# 需要单独安装 htop。
# 是 top 的增强版本,提供了更多的功能和可视化效果
htop
- ps: 显示当前用户的进程。
ps [options]
# 显示当前用户的所有进程
ps
# 显示所有进程的详细信息(包括其他用户的进程)
ps aux
# 以树状结构显示进程(显示进程的父子关系)
ps -ejH
# 显示某个特定用户的进程(以用户名为条件过滤)
ps -u username
# 显示某个特定进程的信息(以进程ID为条件过滤)
ps -p process_id
# 显示完整的进程命令行(包括参数)
ps -f
# 按 CPU 使用率排序并显示前 N 个进程
ps aux --sort=-%cpu | head -n N
# 按内存使用排序并显示前 N 个进程
ps aux --sort=-%mem | head -n N
- df: 查看磁盘空间。
df [options]
# 查看所有挂载点的磁盘空间信息
df
# 查看指定文件系统类型(如 ext4、NTFS)的磁盘空间信息
df -t ext4
# 以更易读的格式显示磁盘空间(以 GB、MB 等单位显示)
df -h
# 仅显示本地文件系统(不包括虚拟文件系统)的磁盘空间信息
df -x tmpfs -x devtmpfs
# 显示指定挂载点的磁盘空间信息(用于特定目录的磁盘空间查看)
df /path/to/directory
# 以 inode 数量的方式查看文件系统信息(显示可用 inode 数量等)
df -i
- du: 查看目录空间占用。
du [options] directory
# 查看指定目录的磁盘空间使用情况(默认单位为千字节)
du /path/to/directory
# 以人类可读的格式显示磁盘空间(以 GB、MB 等单位显示)
du -h /path/to/directory
# 查看目录的总磁盘使用情况,不显示子目录的详细信息
du -s /path/to/directory
# 仅显示指定深度内的目录磁盘使用情况(例如,只显示一级子目录的情况)
du --max-depth=1 /path/to/directory
# 以更多详细信息显示目录的磁盘使用情况,包括子目录
du -ah /path/to/directory
# 排除指定目录或文件的磁盘使用情况,以忽略特定内容
du --exclude=pattern /path/to/directory
七、用户和权限管理
- who: 查看当前登录到系统的用户列表。
who
- whoami: 显示当前登录用户的用户名。
whoami
- passwd: 更改用户密码。
passwd [username]
- adduser / useradd: 添加用户。
useradd [options] username
# 创建用户并创建home目录
useradd -m username
- deluser / userdel: 删除用户。
userdel [options] username
- sudo: 以超级用户权限执行命令。
sudo command
八、网络相关操作
- ping: 测试主机之间的连通性。
ping [options] hostname/IP
# 向示例主机 example.com 发送4个数据包
ping -c 4 example.com
# 设置数据包大小为100字节,并每隔1秒发送一个
ping -s 100 -i 1 example.com
- ifconfig / ip: 配置网络接口信息。
# 显示当前系统上所有的网络接口(如以太网接口、无线接口等)的配置信息,包括IP地址、子网掩码、MAC地址等。
ifconfig
# 将以太网接口 eth0 的IP地址设置为 192.168.1.2,子网掩码为 255.255.255.0
ifconfig eth0 192.168.1.2 netmask 255.255.255.0
# 显示当前系统上所有网络接口的详细信息
ip addr show
# 将以太网接口 eth0 的IP地址设置为 192.168.1.2,子网掩码为 /24,表示 255.255.255.0
ip addr add 192.168.1.2/24 dev eth0
- netstat/ss: 查看网络状态。
netstat [options]
ss [options]
# 查看网络接口信息
netstat -i
# 查看路由表信息
netstat -r
# 查看所有网络套接字的详细信息
ss -tuln
# 查看监听的TCP套接字
ss -tln
# 查看UNIX套接字
ss -lx
- ssh: 远程登录到其他主机。
ssh [options] [user@]hostname
# 系统将提示你输入远程主机的用户密码以进行身份验证。一旦验证成功,你就可以在远程主机上执行命令。
ssh username@example.com
九、包管理
- apt / apt-get: Debian/Ubuntu 包管理器。
# 更新软件包列表,这会从软件源更新软件包列表,以确保你能够获取到最新的软件包信息
apt update
# 安装指定名称的软件包
apt install package-name
# 升级系统中的所有软件包
apt upgrade
# 删除软件包,但保留配置文件
apt remove package-name
# 如果要删除软件包及其配置文件
apt purge package-name
# 搜索包含指定搜索词的软件包
apt search search-term
# 显示软件包信息
apt show package-name
# 查看已安装的软件包列表
apt list --installed
# 清理不再需要的依赖和缓存
apt autoremove
- yum / dnf: Red Hat/CentOS 包管理器。
# 更新软件包列表
sudo yum update
# 或者
sudo dnf update
# 安装软件包
sudo yum install package-name
# 或者
sudo dnf install package-name
# 升级系统中的所有软件包
sudo yum upgrade
# 或者
sudo dnf upgrade
# 删除软件包,但保留配置文件
sudo yum remove package-name
# 或者
sudo dnf remove package-name
# 删除已安装的软件包及其配置文件
sudo yum erase package-name
# 或者
sudo dnf erase package-name
# 搜索软件包
yum search search-term
# 或者
dnf search search-term
# 显示软件包信息
yum info package-name
# 或者
dnf info package-name
# 查看已安装的软件包列表
yum list installed
# 或者
dnf list installed
# 清理不再需要的依赖和缓存
sudo yum autoremove
# 或者
sudo dnf autoremove
十、进程管理
- kill: 终止指定进程ID的进程。
kill [options] process_id
- ps: 查看进程信息。
ps [options]
- top / htop: 查看系统进程。
top
htop
- killall: 终止指定名称的进程。
killall [options] process_name
十一、时间和日期
- date: 显示系统日期和时间。
date
- cal: 显示日历。
cal
# 查看 2023 年 8 月的日历
cal 8 2023
- timedatectl: 配置系统时间和时区。
# 查看当前的时间和时区设置
timedatectl
# 启用自动时间同步(NTP)
sudo timedatectl set-ntp true
# 将时区设置为 "Asia/Shanghai"
timedatectl set-timezone Asia/Shanghai
# 将日期设置为 "2023-08-28",时间设置为 "14:30:00"
timedatectl set-time "2023-08-28 14:30:00"
十二、系统关机和重启
- shutdown: 关闭系统。
# 立即关闭系统
sudo shutdown -h now
# 立即重启系统
sudo shutdown -r now
# 计划在一定时间后关闭系统
sudo shutdown -h +30
# 取消计划的关机
sudo shutdown -c
- reboot: 重启系统。
reboot
十三、文件传输
- scp: 安全复制文件。
scp [options] source destination
# 从本地复制到远程计算机
scp /path/to/local/file username@remote:/path/to/destination/
# 从远程计算机复制到本地
scp username@remote:/path/to/remote/file /path/to/local/destination/
# 从远程计算机复制到本地并保持原始文件名
scp username@remote:/path/to/remote/file /path/to/local/destination/
# 从本地复制到远程计算机并保持原始文件名
scp /path/to/local/file username@remote:/path/to/destination/
- rsync: 同步文件和目录。
rsync [options] source destination
# 从本地复制到远程计算机
rsync [options] /path/to/local/file username@remote:/path/to/destination/
# 从远程计算机复制到本地
rsync [options] username@remote:/path/to/remote/file /path/to/local/destination/
# 从远程计算机复制到本地并保持原始文件名
rsync [options] --relative username@remote:/path/to/remote/file /path/to/local/destination/
# 从本地复制到远程计算机并保持原始文件名
rsync [options] --relative /path/to/local/file username@remote:/path/to/destination/
十四、其他常用命令
- echo: 打印文本。
echo "text"
- history: 查看命令历史记录。
history [options]
- wget/curl: 下载文件。
wget [options] URL
curl [options] URL
这些命令是 Linux 系统中常用的命令,用于执行各种系统管理和文件操作任务。每个命令都有各自的选项和参数,可以通过命令后跟 --help 查看帮助信息以获取更多详细信息。