Linux下的基本指令大全
下面将Linux指令分成9种不同的主要类别:
-
文件管理指令 :这些指令用于文件和目录的创建、编辑、复制、移动和删除。例如:
ls
(列出目录内容),cp
(复制文件或目录),mv
(移动或重命名文件或目录),rm
(删除文件或目录)。 -
文本处理指令 :这些指令用于文本文件的查看、编辑和处理。例如:
cat
(查看文件内容),grep
(文本搜索),sed
(流编辑器),awk
(模式扫描和文本处理语言)。 -
系统管理指令 :用于监控和管理系统资源和进程。例如:
top
(显示进程的动态实时视图),ps
(显示当前运行的进程),kill
(终止进程),df
(显示磁盘空间使用情况),free
(显示内存使用情况)。 -
网络管理指令 :用于管理和诊断网络问题。例如:
ping
(检查网络连接),ifconfig
(配置或显示网络接口参数),ssh
(安全地访问远程服务器),scp
(通过SSH协议安全地复制文件)。 -
权限和用户管理指令 :用于管理用户权限和用户账户。例如:
chmod
(改变文件权限),chown
(改变文件所有者),useradd
(添加新用户),passwd
(更改用户密码)。 -
软件管理指令 :用于安装、更新和移除软件包。不同的Linux发行版可能使用不同的包管理器,例如:
apt
(在基于Debian的系统上),yum
(在基于Red Hat的系统上),pacman
(在Arch Linux上)。 -
编程和开发指令 :提供编程和脚本编写支持。例如:
gcc
(C语言编译器),git
(版本控制系统),make
(自动化编译工具)。 -
帮助和信息指令 :提供帮助信息和系统信息。例如:
man
(查看手册页),info
(查看程序的信息页),whatis
(显示一行命令描述)。
文本处理指令
指令cat
- 功能 :
cat
(concatenate 的缩写)命令用于显示文件内容、创建文件、文件合并和追加文件内容到另一文件。 - 常用用法 :
cat file.txt
:显示file.txt
的内容。cat file1.txt file2.txt > merged.txt
:合并file1.txt
和file2.txt
的内容,并将合并结果输出到merged.txt
。cat > file.txt
:创建一个新的file.txt
文件,并等待用户输入内容,使用 Ctrl-D 结束输入。
指令grep
- 功能 :
grep
(Global Regular Expression Print 的缩写)用于在文件中搜索包含指定模式的文本行,并输出匹配的行。 - 常用用法 :
grep "pattern" file.txt
:在file.txt
中搜索包含 "pattern" 的行。grep -i "pattern" file.txt
:不区分大小写地搜索 "pattern"。grep -r "pattern" directory/
:递归地在指定目录及其子目录中搜索 "pattern"。
指令sed
- 功能 :
sed
(Stream Editor 的缩写)是一个流编辑器,用于执行文本文件的自动编辑。它可以添加、删除、查找和替换文本,还可以执行更复杂的模式匹配和文本转换。 - 常用用法 :
sed 's/old/new/' file.txt
:在file.txt
中查找 "old" 并将其替换为 "new",只替换每行中的第一个匹配项。sed -i 's/old/new/g' file.txt
:直接修改文件,将 "old" 全部替换为 "new"。sed '/pattern/d' file.txt
:删除所有包含 "pattern" 的行。
指令awk
- 功能 :
awk
是一种编程语言,用于模式扫描和处理文本。它对处理表格数据和生成报告特别有用。 - 常用用法 :
awk '{print $1}' file.txt
:打印每一行的第一个字段(默认字段分隔符是空格)。awk '/pattern/ {print $0}' file.txt
:搜索包含 "pattern" 的行,并打印这些行。awk -F, '{print $2}' file.txt
:以逗号为分隔符,打印每行的第二个字段。
指令sort
- 功能 :
sort
命令用于对文件中的行进行排序。 - 常用用法 :
sort file.txt
:按字母顺序排序file.txt
的内容。sort -n file.txt
:按数值进行排序。sort -r file.txt
:进行反向排序。
指令uniq
- 功能 :
uniq
命令用于从输入中删除重复的连续行。 - 常用用法 :
uniq file.txt
:显示文件中的唯一行。sort file.txt | uniq
:排序后删除重复行,用于非连续的重复行。uniq -c file.txt
:统计每行重复的次数。
指令cut
- 功能 :
cut
命令用于按列切割文本行。 - 常用用法 :
cut -d':' -f1 file.txt
:使用冒号作为分隔符,提取每行的第一列。cut -c1-5 file.txt
:提取每行的第1到第5个字符。
指令tr
- 功能 :
tr
(translate的缩写)用于转换或删除字符。 - 常用用法 :
tr 'a-z' 'A-Z' < file.txt
:将文件中的小写字母转换为大写。tr -d '0-9' < file.txt
:删除所有数字。
指令wc
- 功能 :
paste
命令用于合并多个文件的列。 - 常用用法 :
paste file1.txt file2.txt
:并排合并两个文件的内容。paste -s file.txt
:将文件中的所有行合并成一行。
指令paste
- 功能 :
wc
(word count的缩写)命令用于统计文件的字数、行数和字节数。 - 常用用法 :
wc -l file.txt
:统计文件的行数。wc -w file.txt
:统计文件的单词数。wc -c file.txt
:统计文件的字符数。
指令less
- 功能 :
more
是一个基础的文本分页器,用户可以向前翻页查看文件内容,但不能后退。 - 常用用法 :
more file.txt
:打开file.txt
进行分页查看。- 在查看模式中,按
Space
键向下翻一页,按Enter
键向下翻一行。 - 使用
/pattern
搜索文本,按n
跳转到下一个匹配项。
指令more
- 功能 :
less
是对more
的扩展,提供了更多功能和更好的性能,特别是在查看大文件时。less
允许用户向前和向后翻页,并且具有搜索、跳转等高级功能。 - 常用用法 :
less file.txt
:打开file.txt
进行分页查看。- 在查看模式中,按
Space
键向下翻一页,按b
键向上翻一页。 - 使用
/pattern
搜索文本,按n
跳转到下一个匹配项,按N
跳转到上一个匹配项。 - 使用
G
跳到文件末尾,使用g
跳到文件开头。 less
也支持打开压缩文件(如.gz
文件)直接查看。
命令行管道
在Unix和Linux操作系统中,命令行管道(通常表示为符号 |
)是一个非常强大的功能,允许用户将一个命令的输出直接用作另一个命令的输入。这种机制提高了不同程序之间的互操作性,并允许用户创建复杂的命令链,实现高效的数据处理。
基本概念
管道的工作原理基于操作系统提供的流控制。当使用管道符号 |
时,左侧命令的标准输出(stdout)会被重定向到右侧命令的标准输入(stdin)。这种链接可以扩展到多个命令,形成一个命令链。
简单的小问题:如何打印一个文档里的第80000 - 80010 行的内容
cpp
head -80010 file.txt | tail -10
示例
结合 grep
和 sort
命令:
cpp
cat file.txt | grep "some text" | sort
使用 ps
和 grep
查找特定进程:
cpp
ps aux | grep "firefox"
计算文件中的单词数量:
cpp
cat file.txt | wc -w
高级用法
命令行管道不仅限于简单的文本处理。它们可以用于组合多个数据处理工具,如 awk
、sed
、cut
等,以及自定义脚本,从而实现复杂的数据分析和处理任务。例如,你可以从日志文件中提取特定数据,对其进行排序、唯一化和计数:
cpp
cat access.log | cut -d ' ' -f 1 | sort | uniq -c | sort -rn