Linux 系统中的命令行工具非常强大,是日常操作、管理系统和开发中不可或缺的工具。下面我将详细介绍一些常用的 Linux 命令,并附上常见的用法和示例,帮助你更好地理解它们的用途。
1. 文件和目录管理命令
- ls
列出目录内容。常用选项:ls -l
:长格式显示,包括权限、所有者、大小和修改时间。ls -a
:显示所有文件(包括隐藏文件)。- 示例:
ls -la /home/user
- cd
切换当前工作目录。- 示例:
cd /var/log
切换到/var/log
目录;cd ..
返回上一级目录。
- 示例:
- pwd
显示当前工作目录的完整路径。- 示例:
pwd
- 示例:
- mkdir
创建新目录。- 示例:
mkdir new_folder
创建名为 new_folder 的目录;mkdir -p /tmp/a/b
递归创建多级目录。
- 示例:
- rmdir
删除空目录。- 示例:
rmdir empty_folder
- 示例:
- cp
复制文件或目录。- 示例:
cp file1.txt file2.txt
复制文件;cp -r folder1 folder2
递归复制目录。
- 示例:
- mv
移动或重命名文件、目录。- 示例:
mv oldname.txt newname.txt
改名文件;mv file.txt /destination/path/
移动文件。
- 示例:
- rm
删除文件或目录。- 示例:
rm file.txt
删除单个文件;rm -r folder
递归删除目录;使用-f
选项可强制删除。
- 示例:
- touch
创建空文件或更新文件的访问和修改时间。- 示例:
touch newfile.txt
- 示例:
2. 文件查看和操作命令
- cat
连接并显示文件内容。- 示例:
cat file.txt
显示文件内容;可以用来合并多个文件。
- 示例:
- more / less
分页查看文件内容。- 示例:
less file.txt
,使用上下键或 PgUp/PgDn 翻页。 less
功能比more
强大,支持向前翻页。
- 示例:
- head / tail
显示文件的开头或结尾部分。- 示例:
head -n 10 file.txt
查看前 10 行;tail -n 10 file.txt
查看后 10 行。 tail -f file.log
实时查看日志文件动态更新。
- 示例:
- grep
在文件中查找匹配特定模式的文本。- 示例:
grep "error" /var/log/syslog
查找包含“error”的行;grep -r "main" ./src
递归搜索目录。
- 示例:
- find
在目录树中查找文件和目录。- 示例:
find / -name "*.conf"
查找所有 .conf 文件;find . -type d -name "config"
查找当前目录下名称为 config 的目录。
- 示例:
- diff
比较两个文件或目录的差异。- 示例:
diff file1.txt file2.txt
- 示例:
3. 权限和用户管理
- chmod
改变文件或目录的权限。- 示例:
chmod 755 script.sh
将 script.sh 设置为所有者可读写执行,组和其他用户可读执行。
- 示例:
- chown
改变文件或目录的所有者和群组。- 示例:
chown user:group file.txt
将 file.txt 的所有者改为 user,群组改为 group。
- 示例:
- su / sudo
切换用户或以超级用户身份执行命令。su
切换到其他用户身份;sudo command
用管理员权限执行命令,前提是当前用户在 sudoers 列表中。
4. 压缩与归档
- tar
用于打包和压缩文件。- 示例:
tar -cvf archive.tar /path/to/dir
打包目录; tar -zxvf archive.tar.gz
解压 tar.gz 文件。- 选项说明:
-c
创建,-v
显示过程,-f
指定文件,-z
使用 gzip 压缩。
- 示例:
- gzip / gunzip
用于压缩或解压单个文件。- 示例:
gzip file.txt
压缩文件;gunzip file.txt.gz
解压文件。
- 示例:
- zip / unzip
用于创建和解压 .zip 格式的压缩包。- 示例:
zip archive.zip file1.txt file2.txt
创建压缩包;unzip archive.zip
解压。
- 示例:
5. 系统监控与管理
- ps
列出当前运行的进程。- 示例:
ps aux
显示所有用户的所有进程;ps -ef
是另一种格式的显示方式。
- 示例:
- top / htop
实时显示系统资源使用情况。- 示例:
top
显示 CPU、内存等信息;htop
是增强版,需要额外安装。
- 示例:
- free
查看系统内存使用情况。- 示例:
free -h
以易读格式显示内存信息。
- 示例:
- df
显示文件系统磁盘空间使用情况。- 示例:
df -h
以人性化格式显示各分区使用情况。
- 示例:
- du
显示目录或文件的磁盘使用情况。- 示例:
du -sh /path/to/dir
显示目录的总大小。
- 示例:
- uname
显示系统信息。- 示例:
uname -a
显示所有相关信息(内核版本、系统架构等)。
- 示例:
- uptime
显示系统运行时间和负载情况。- 示例:
uptime
- 示例:
6. 网络相关命令
- ifconfig / ip
配置和显示网络接口信息。- 示例:
ifconfig
(较老的工具)或ip addr
(推荐现代用法)。
- 示例:
- ping
测试网络连通性。- 示例:
ping www.google.com
检查与目标主机的连接情况。
- 示例:
- netstat / ss
查看网络连接、路由表、接口统计等信息。- 示例:
netstat -tulnp
显示所有监听端口;ss -tulw
类似用法,但更快更现代。
- 示例:
- curl / wget
从网络上下载内容。- 示例:
wget http://example.com/file.zip
下载文件; curl -O http://example.com/file.zip
也可以下载文件。
- 示例:
- ssh
通过安全通道连接远程主机。- 示例:
ssh user@remote_host
远程登录服务器。
- 示例:
- scp
通过 SSH 协议在本地主机和远程主机间复制文件。- 示例:
scp file.txt user@remote_host:/path/to/destination
; - 支持目录复制:
scp -r folder user@remote_host:/path/to/destination
- 示例:
7. 进程管理
- kill / killall
结束进程。- 示例:
kill PID
发送默认信号终止进程; kill -9 PID
强制杀死进程;killall process_name
根据名称结束所有相关进程。
- 示例:
- bg / fg
管理后台和前台任务。- 示例:
Ctrl+Z
将前台任务挂起;bg
将任务放入后台运行;fg
将后台任务调回前台。
- 示例:
- jobs
查看当前 shell 会话中的所有作业。- 示例:
jobs
- 示例:
8. 环境变量及其他常用命令
- echo
在终端输出字符串或变量值。- 示例:
echo "Hello, Linux!"
或echo $PATH
查看环境变量 PATH。
- 示例:
- env
显示当前环境变量。- 示例:
env
- 示例:
- export
设置或导出环境变量。- 示例:
export PATH=$PATH:/new/path
- 示例:
- history
显示命令历史记录,方便查找和重复使用之前的命令。- 示例:
history
- 示例:
- man
显示命令的手册页,提供详细的用法和参数说明。- 示例:
man ls
查看 ls 命令的详细文档。
- 示例:
- alias
为常用命令设置别名,简化输入。- 示例:
alias ll='ls -la'
以后输入 ll 即可执行 ls -la。
- 示例:
这些只是 Linux 系统中众多命令的一部分。不同的场景下,可能还会用到如编辑器(vim、nano)、版本控制工具(git)、日志管理(journalctl)等其他工具。掌握这些常用命令,将极大提高你在 Linux 环境下的工作效率和系统管理能力。