Linux命令实践
Linux命令的基础知识
Linux命令是用户与操作系统交互的主要方式,它通常由以下几个部分组成:
命令本身:如 ls、pwd,表示要执行的操作。
选项(Options):以 - 或 -- 开头,用于修改命令的行为,例如 ls -l 中的 -l 表示以长格式显示。
参数(Arguments):指定命令操作的对象,如文件名或目录路径。
管道(|)和重定向(>、>>):用于组合多个命令或将输出保存到文件。
Linux命令区分大小写,并且大多数命令都有内置的帮助信息,可以通过 man 命令查看。
常用命令
- ls - 列出目录内容
- ls:列出当前目录的文件和文件夹。

- ls -l:以详细列表格式显示(包括权限、所有者等)。

- ls -a:显示所有文件,包括隐藏文件(以 . 开头)。

- ls /home:列出指定目录(如 /home)的内容。

- ls -lh:以易读的格式(如KB、MB)显示文件大小。

- who - 显示当前登录用户
- who:显示所有登录用户的用户名、终端和时间。
- who -u:显示空闲时间。
- who -H:以表格形式显示,带标题。
- who am i:显示当前用户的信息。


- pwd - 显示当前工作目录
- pwd:输出当前目录的绝对路径。

- cd - 切换目录
- cd /home:切换到 /home 目录。

- cd ..:切换到上一级目录。

- cd ~:切换到当前用户的主目录。

- cd -:切换回上一个目录。

- man - 查看命令手册
- man ls:查看 ls 命令的详细帮助。
![]()

- man -k "search term":搜索相关命令的手册页。

- whereis - 查找命令的位置
- whereis ls:显示 ls 命令的二进制文件、源码和手册页位置。

- whereis -b ls:只显示二进制文件位置。

- which - 显示命令的完整路径
- which ls:显示 ls 命令的路径。

- find - 查找文件
- find /home -name "*.txt":在 /home 目录查找所有 .txt 文件。

-
find . -type f -name "test*":在当前目录查找以 "test" 开头的文件。
-
find /var/log -size +1M:查找大于1MB的文件。

- locate - 快速查找文件
- locate passwd:查找所有包含 "passwd" 的文件(需要先更新数据库,使用 updatedb)。
- locate -i "*.conf":忽略大小写查找 .conf 文件。
- grep - 文本搜索
- grep "error" /var/log/syslog:在系统日志中搜索 "error"。

- grep -r "pattern" /etc:递归搜索 /etc 目录中的文本。

- grep -i "warning" file.txt:忽略大小写搜索 "warning"。

- grep -v "success" file.txt:反向搜索,排除包含 "success" 的行。
高频应用命令推荐
echo:输出文本或变量内容,常用于脚本中。
od:以八进制或其他格式显示文件内容,适用于二进制文件分析。
`sort``:对文本行进行排序,常用于处理数据。
1.echo
- echo "Hello, World!":输出字符串。

- echo $HOME:输出环境变量 HOME 的值。
![]()
- echo -e "Line1 Line2":启用转义字符,输出多行文本。
- echo "Text" > file.txt:将输出重定向到文件(覆盖)。
- echo "Appended" >> file.txt:追加文本到文件。
2.od
- od -t x1 file.bin:以十六进制格式显示文件内容。

- od -t oC file.txt:以八进制格式显示字符。

- od -t a file.txt:显示可打印字符和转义序列。

- od -t d file.bin:以十进制格式显示。

3.sort
- sort file.txt:按字典序排序文件内容。
- sort -r file.txt:反向排序。
- sort -n numbers.txt:按数值大小排序。
- sort -u file.txt:去除重复行后排序。
- sort -k 2 data.txt:按第二列排序。
其他常用Linux命令:
cat - 查看文件内容
cp - 复制文件或目录
mv - 移动或重命名文件
rm - 删除文件
mkdir - 创建目录
rmdir - 删除空目录
touch - 创建空文件或更新时间戳
chmod - 修改文件权限
chown - 修改文件所有者
ps - 显示进程状态
top - 动态显示进程信息
kill - 终止进程
df - 显示磁盘使用情况
du - 显示目录磁盘使用情况
tar - 打包和解包文件
ssh - 远程登录
scp - 安全复制文件
wget - 下载文件
curl - 传输数据
ping - 测试网络连接
ifconfig - 配置网络接口(旧版)
ip - 显示或配置网络(新版)
netstat - 显示网络状态
systemctl - 管理系统服务
journalctl - 查看系统日志
useradd - 添加用户
passwd - 修改用户密码
su - 切换用户
sudo - 以超级用户权限执行命令
alias - 创建命令别名
学习
在学习过程中,我发现find和locate命令都是为了查找文件,那具体的区分是什么呢?询问AI后,我的综合理解是find是实时搜索,locate是数据库搜索。所以在应用中,如果我想搜索一个文件但是我不知道这个文件在哪里,那我应该使用locate更快,因为它搜索数据库而不是实时扫描文件系统。而如果一个文件是刚刚创建的,locate搜索可能搜不到的原因是数据库还没有及时更新。
另一对让我混淆的命令是whereis和which。whereis是查找命令的位置,which是显示命令的完整路径。AI还补充的区别是which 只显示在 PATH 环境变量中找到的可执行文件,而 whereis 还会显示手册页和源代码的位置。
最后是Ai对我的一个提问:如果你用 sort file.txt 排序后想同时去重,该怎么组合命令?
可行的两种命令是
sort file.txt | uniq
sort -u file.txt
posted on 2025-09-11 20:59 20231301周子昂 阅读(12) 评论(0) 收藏 举报
浙公网安备 33010602011771号