Linux 命令行基础指南
Linux 命令行是一个强大的工具,可以帮助你高效地管理系统、执行各种任务,甚至编写自动化脚本。以下是常用的一些命令,分为几个类别进行介绍。
文件和目录操作
-
ls
: 列出目录内容。- 示例:
ls -l
显示详细信息,包括权限、所有者等。
- 示例:
-
cd
: 切换目录。- 示例:
cd /home/hhh
进入到指定目录。
- 示例:
-
pwd
: 显示当前工作目录的路径。 -
mkdir
: 创建新目录。- 示例:
mkdir aaa
在当前目录下创建一个名为aaa
的新目录。
- 示例:
-
rm
: 删除文件或目录。- 示例:
rm -r aaa
删除目录及其内容。
- 示例:
-
cp
: 复制文件或目录。- 示例:
cp file1 file2
将file1
复制到file2
。
- 示例:
-
mv
: 移动文件或目录,也可用于重命名文件或目录。- 示例:
mv file1 file2
将file1
移动或重命名为file2
。
- 示例:
-
touch
: 创建空文件或更新文件的时间戳。- 示例:
touch filename
创建一个名为filename
的空文件。
- 示例:
-
find
: 在文件系统中搜索文件。- 示例:
find /path/to/search -name "pattern"
在指定路径下查找文件名匹配pattern
的文件。
- 示例:
-
locate
: 快速查找文件位置。- 示例:
locate filename
查找文件filename
的位置。
- 示例:
-
which
: 查找可执行文件的位置。- 示例:
which command
显示命令command
的完整路径。
- 示例:
-
ln
: 创建硬链接或符号链接。- 示例:
ln source target
创建source
到target
的硬链接。 - 示例:
ln -s source target
创建source
到target
的符号链接。
- 示例:
-
split
: 将文件分割成更小的部分。- 示例:
split -b 1M largefile
将largefile
分割成 1MB 大小的文件。
- 示例:
文本处理
-
cat
: 查看文件内容。- 示例:
cat filename
将文件filename
的内容输出到终端。
- 示例:
-
grep
: 在文件中搜索指定模式。- 示例:
grep aaa filename
在filename
中搜索包含aaa
的行。
- 示例:
-
sed
: 流编辑器,用于对文本进行替换、删除等操作。- 示例:
sed 's/pattern/replacement/g' filename
替换文件中的模式。
- 示例:
-
awk
: 强大的文本处理工具,支持按列处理文本。- 示例:
awk '{print $1}' filename
打印文件第一列的内容。
- 示例:
-
head
: 显示文件的前几行。- 示例:
head -n 10 filename
显示filename
的前10行。
- 示例:
-
tail
: 显示文件的最后几行。- 示例:
tail -n 10 filename
显示filename
的最后10行。 - 示例:
tail -f filename
实时显示filename
的新增内容。
- 示例:
-
less
: 分页浏览文件内容。- 示例:
less filename
逐页浏览文件内容。
- 示例:
-
more
: 传统的分页浏览文件内容。- 示例:
more filename
逐页浏览文件内容。
- 示例:
-
wc
: 计算文件中的字节数、字数、行数等。- 示例:
wc -l filename
显示文件filename
的行数。
- 示例:
-
sort
: 对文件中的行进行排序。- 示例:
sort filename
对文件filename
的内容进行排序。
- 示例:
-
uniq
: 从排序的文件中去除重复的行。- 示例:
uniq filename
从文件filename
中去除重复的行。
- 示例:
-
cut
: 从每一行切割出部分字符。- 示例:
cut -c 1-10 filename
显示文件filename
每一行的前10个字符。
- 示例:
-
join
: 将两个文件按列合并。- 示例:
join file1 file2
将file1
和file2
按第一列合并。
- 示例:
系统管理
-
ps
: 显示当前进程信息。- 示例:
ps aux
显示所有进程的详细信息。
- 示例:
-
top
: 实时显示系统运行状态,包括 CPU、内存占用等。 -
kill
: 终止进程。- 示例:
kill PID
结束指定进程,其中PID
是进程的 ID。
- 示例:
-
df
: 显示磁盘空间使用情况。- 示例:
df -h
以人类可读的格式显示磁盘空间使用情况。
- 示例:
-
du
: 显示目录或文件大小。- 示例:
du -sh directory_name
显示指定目录的总大小。
- 示例:
-
free
: 显示内存使用情况。 -
last
: 查看最近的登录记录。- 示例:
last
显示最近的登录活动。
- 示例:
-
uptime
: 显示系统运行时间、用户数和负载。- 示例:
uptime
显示当前系统的运行状态。
- 示例:
-
who
: 显示当前登录的用户列表。- 示例:
who
列出当前登录的用户。
- 示例:
-
history
: 查看命令历史。- 示例:
history
显示用户执行过的命令历史。
- 示例:
-
date
: 显示或设置系统日期和时间。- 示例:
date
显示当前日期和时间。 - 示例:
date "+%Y-%m-%d %H:%M:%S"
显示格式化的日期和时间。
- 示例:
-
cal
: 显示日历。- 示例:
cal
显示当前月份的日历。 - 示例:
cal 2024
显示2024年的日历。
- 示例:
-
shutdown
: 关闭系统。- 示例:
shutdown now
立即关闭系统。 - 示例:
shutdown -h +10
在10分钟后关闭系统。
- 示例:
网络工具
-
ping
: 测试主机之间的连通性。- 示例:
ping example.com
向example.com
发送 ICMP 请求以测试连通性。
- 示例:
-
ifconfig
/ip
: 显示和配置网络接口信息。- 示例:
ip addr show
显示网络接口信息。
- 示例:
-
netstat
: 显示网络连接、路由表等信息。 -
curl
/wget
: 下载文件或资源。- 示例:
curl -O http://example.com/file.txt
下载文件。
- 示例:
-
traceroute
: 跟踪到达目标主机的路径。- 示例:
traceroute example.com
显示到达example.com
的路径。
- 示例:
-
nslookup
: 查询域名服务器。- 示例:
nslookup example.com
获取example.com
的DNS记录。
- 示例:
-
dig
: DNS 信息查询工具。- 示例:
dig example.com
获取example.com
的DNS信息。
- 示例:
-
ssh
: 安全地登录远程机器。- 示例:
ssh user@hostname
登录远程机器。 - 示例:
ssh -X user@hostname
使用X11转发登录远程机器。
- 示例:
-
scp
: 安全地复制文件或目录。- 示例:
scp file user@hostname:/path/to/remote
复制文件到远程机器。
- 示例:
-
telnet
: 连接到远程主机。- 示例:
telnet hostname port
连接到远程主机的指定端口。
- 示例:
-
nmap
: 网络扫描工具。- 示例:
nmap -sV hostname
扫描主机并显示服务版本信息。
- 示例:
包管理
-
apt
/apt-get
: Debian 和 Ubuntu 系统的包管理器。- 示例:
sudo apt install package-name
安装软件包。
- 示例:
-
yum
/dnf
: Red Hat 和 CentOS 系统的包管理器。- 示例:
sudo yum install package-name
安装软件包。
- 示例:
-
rpm
: RPM 包管理工具,用于手动安装和管理软件包。- 示例:
rpm -ivh package.rpm
安装软件包。
- 示例:
-
rpm -qa
: 列出已安装的所有软件包。- 示例:
rpm -qa | grep pattern
列出所有包含pattern
的已安装软件包。
- 示例:
-
rpm -qi package
: 显示软件包的详细信息。- 示例:
rpm -qi package
显示package
的详细信息。
- 示例:
-
rpm -e package
: 卸载软件包。- 示例:
rpm -e package
卸载package
。
- 示例:
-
rpm -Uvh package.rpm
: 升级软件包。- 示例:
rpm -Uvh package.rpm
升级package.rpm
。
- 示例:
-
rpm -V package
: 验证软件包的完整性。- 示例:
rpm -V package
验证package
的完整性。
- 示例:
权限管理
-
chmod
: 修改文件或目录权限。- 示例:
chmod 755 file
将文件file
的权限设置为rwxr-xr-x
。 - 示例:
chmod u+x file
仅为主用户添加执行权限。
- 示例:
-
chown
: 修改文件或目录的所有者。- 示例:
chown user1:group1 file
将文件file
的所有者设为user1
,所属组设为group1
。
- 示例:
-
sudo
: 以超级用户权限执行命令。- 示例:
sudo command
以超级用户权限执行命令。
- 示例:
解压缩相关指令
-
tar
: 用于打包和解包文件。- 示例:
tar -czvf archive.tar.gz directory
将directory
目录打包并使用 gzip 压缩成archive.tar.gz
。 - 示例:
tar -xzvf archive.tar.gz
解压缩archive.tar.gz
文件。
- 示例:
-
gzip
/gunzip
: 分别用于压缩和解压缩文件。- 示例:
gzip file
将file
压缩成file.gz
。 - 示例:
gunzip file.gz
将file.gz
解压缩成file
。
- 示例:
-
zip
/unzip
: 分别用于创建和解压缩 ZIP 文件。- 示例:
zip -r archive.zip directory
将directory
目录压缩成archive.zip
。 - 示例:
unzip archive.zip
解压缩archive.zip
文件。
- 示例:
脚本和批处理
-
bash
: 运行 Bash shell。- 示例:
bash script.sh
运行脚本script.sh
。
- 示例:
-
sh
: 运行 POSIX 兼容的 shell。- 示例:
sh script.sh
运行脚本script.sh
。
- 示例:
-
bash -c "command"
: 在子 shell 中运行命令。- 示例:
bash -c "ls -l"
在子 shell 中运行ls -l
。
- 示例:
-
bash --version
: 显示 Bash 版本信息。- 示例:
bash --version
显示当前 Bash 的版本。
- 示例:
-
env
: 显示环境变量。- 示例:
env
显示当前环境变量。
- 示例:
-
export
: 设置环境变量。- 示例:
export VAR=value
设置环境变量VAR
为value
。
- 示例:
-
unset
: 清除环境变量。- 示例:
unset VAR
清除环境变量VAR
。
- 示例:
其他实用工具
-
bc
: 命令行计算器。- 示例:
echo "10 * 20" | bc
计算表达式的值。
- 示例:
-
xargs
: 读取标准输入并作为参数传递给命令。- 示例:
find / -name "*.txt" | xargs rm
删除所有.txt
文件。
- 示例:
-
watch
: 重复执行命令并显示输出。- 示例:
watch -n 5 ls -l
每5秒执行一次ls -l
。
- 示例:
-
dd
: 复制文件和转换。- 示例:
dd if=/dev/sda of=/path/to/image.img
备份磁盘/dev/sda
到文件/path/to/image.img
。
- 示例:
-
md5sum
: 计算文件的 MD5 校验和。- 示例:
md5sum filename
显示文件filename
的 MD5 校验和。
- 示例:
-
sha256sum
: 计算文件的 SHA-256 校验和。- 示例:
sha256sum filename
显示文件filename
的 SHA-256 校验和。
- 示例:
-
gpg
: 加密和解密文件。- 示例:
gpg -c filename
加密文件filename
。 - 示例:
gpg -d filename.gpg
解密文件filename.gpg
。
- 示例: