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