Linux命令行不是一个简单的“打字窗口”,而是一个高效、精确、可编程的交互环境。它的核心思想源于 “Unix哲学”。
例子:ps aux | grep nginx | awk ‘{print $2}’ | xargs kill -91. ps aux:列出所有进程。2. grep nginx:过滤出包含“nginx”的行。3. awk ‘{print $2}’:提取第二列(进程ID)。4. xargs kill -9:将这些进程ID作为参数传递给 kill -9 命令来强制结束。这就是用四个简单工具组合完成了一个复杂的“杀死所有nginx进程”的任务。正是因为Linux系统有了一套无所不能的命令行工具集,Linux服务器才敢于并且乐于抛弃图形界面这个“累赘”。反过来,无GUI的环境又迫使并鼓励用户深入学习和使用命令行,从而更深刻地理解和掌控系统,形成了一个正向循环。因此,对于Linux系统管理员和开发者来说,熟练使用命令行不是一种选择,而是一项核心技能,是通往系统深处、发挥其全部威力的钥匙。而服务器选择无GUI,则是一种成熟、专业、追求极致效能和安全性的工程决策。
history即可显示出历史命令,如下图所示:
上下方向键可查看曾经执行过的Linux命令;![命令行号]即可直接执行历史命令,如下图所示:

touch指令可创建文件:
touch指令可批量创建文件:
cp oldFile newFile指令可将oldFile复制一份为newFile;cp -r oldDir newDir指令可将oldDir所有子目录和文件复制一份为newDir;mv oldFile newFile指令可将oldFile重命名为newFile;rm命令,具体如下表:Linux中cat、tac、nl、tail、head命令均可以将文件内容打印到屏幕中,具体如下:
cat命令:该命令一般用于查看或合并文件,一般在文件内容较少时使用;// 将文件abc.sv中的内容输出到屏幕上cat abc.sv// 将文件abc.sv 、123.sv中的内容顺序输出到屏幕上cat abc.sv 123.sv// 将文件abc.sv中的内容输出到屏幕上并加上行号cat -n abc.sv// 将文件abc.sv 、123.sv合并并生成一个新文件cx.svcat abc.sv 123.sv > cx.sv// 将文件abc.sv中的内容追加到123.sv中cat abc.sv > 123.sv// 将文本cxcxcx追加到文件abc.sv的末尾cat abc.sv >> abc.sv<<EOFcxcxcxEOFtac命令:该文件中的内容倒过来显示在控制台中;// 将文件abc.sv中的内容按行翻转后输出到屏幕上tac abc.svnl命令:打印文本时显示行号;// 将文件abc.sv中的内容按行输出到屏幕上并打印行号nl abc.sv// 将文件abc.sv中的内容按行输出到屏幕上并打印行号,空行也会显示行号nl -b abc.sv// 将文件abc.sv中的内容按行输出到屏幕上并打印行号,-n rz表示设置右对齐,空格用0填充nl -b a -n rz abc.sv// 将文件abc.sv中的内容按行输出到屏幕上并打印行号,-w 3表示设置行号宽度为6nl -b a -n rz -w 6 abc.svtail命令:默认打印指定文件末尾的10行至屏幕上;// 不停的追加显示abc.sv中的最后10行tail -f abc.sv// 显示abc.sv中的最后100行tail -n abc.svhead命令:打印指定文件开始的几行至屏幕上;// 显示abc.sv中的开始的100行head -n 100 abc.svLinux中流文件编辑工具sed命令可以在不打开文件的情况下对文件进行增删等操作 ,非常便于在自动化脚本中使用。
sed和a指令组合可在行后追加内容;// 在 cx.sv文件的第1201行的下一行增加cxcxcx内容,即把cxcxcx添加至1202行sed -i '1201a cxcxcx' cx.sv// 在 cx.sv文件的每一行的下一行都增加cxcxcx内容sed -i 'a cxcxcx' cx.sv// 在 cx.sv文件的第1201行的下一行后增加多行cxcxcx内容,下面例子为把cxcxcx添加至1202、1203、1204行sed -i '1201a cxcxcx\n cxcxcx\n cxcxcx' cx.svsed和i指令组合可在行后追加内容;// 在 cx.sv文件的第1201行的上一行增加cxcxcx内容,即把cxcxcx添加至1200行sed -i '1201i cxcxcx' cx.sv// 在 cx.sv文件的每一行的上一行都增加cxcxcx内容sed -i 'i cxcxcx' cx.sv// 在 cx.sv文件的第1204行的上一行前增加多行cxcxcx内容,下面例子为把cxcxcx添加至1203、1202、1201行sed -i '1204i cxcxcx\n cxcxcx\n cxcxcx' cx.svsed和d指令组合可以删除内容;// 删除 cx.sv文件的第1231行sed -i '1231d' cx.sv// 删除 cx.sv文件的第1230~1231行sed -i '1230,1231d' cx.sv// 删除 cx.sv文件的空白行sed -i '/^$/d' cx.sv// 删除 cx.sv文件中以qq开头的行sed -i '/^qq/d' cx.svsed和s指令组合可以修改内容;// 将cx.sv文件中的qq替换为cxsed -i 's/qq/cx/g' cx.sv// 将.sv后缀文件中的qq替换为cxsed -i 's/qq/cx/g' *.sv注1:sed命令中没有参数i时,只在终端中显示修改后的内容,不修改真实文件内容;注2:sed命令中$代表文件末尾,^代表文件头部;
find命令:find指令可以实时查找,并批量对文件进行删除、统计等操作;# 从根目录下开始查找文件cx.svfind / -name 'cx.sv'# 从根目录下开始查找文件cx.sv并删除find / -name 'cx.sv' -delete# 当前目录下,查找目标名称后级为".sv"的文件;find . -name '*.sv'# 从根目录开始查找内存为900M以上的文件find / -type f -size +900M# 查找当前目录下20天内被修改过的文件find . -type f -mtime -20# 查找指定目录 /cx 下60天前的sv文件find /cx/ -mtime +60 -name '*.sv'# 查找cx目录下不是普通文件的纯文件find /cx ! -type f# 查找cx目录下不是以.sv结尾的纯文件find /cx ! -name "*.sv" -type f# 查找资源时,屏蔽目录/cx/qqfind /cx -path "/cx/qq/" -prune -o -printwc命令:wc指令可以统计文件中的字节数、字数以及行数; # 统计当前目录下的所有文件行数及总计行数 wc -l * # 统计当前目录下的所有以.sv为后缀的文件行数及总计行数 wc -l *.sv# 只打印统计数字不打印文件名 wc -l < cx.sv##→从根目录下搜索30天前的 log 文件,并统计数量 find /- name '*. log '- mtime +30| wc -1注1:wc命令中-l选项代表统计行数;注2:wc命令中-w选项代表统计单词数;注3:wc命令中-m选项代表统计字符数;注4:wc命令中-c选项代表统计字节数;注5:wc命令中-L选项代表统计最长行的数;注6:wc命令中若不加选项,则默认输出行数、单词数、字节数,等同于加选项为-lwc;注7:wc命令可配合find命令使用,例如find / -name '*.sv ' -mtime +60 | wc -l命令可以从根目录下搜索60天前的.sv文件,并统计数量;
grep命令:grep指令可以很方便的查找文件中的字符,具体方法如下:# 查找zz.sv文件中含有cx的字符行grep 'cx' zz.sv # 查找当前目录中含有cx的字符行,匹配行前会显示文件名 grep 'cx' ./ # 递归查找当前目录中含有cx的字符行,匹配行前会显示文件名 grep -r 'cx' ./ # 查找zz.sv文件中含有cx的字符行,并展示行号grep -n 'cx' zz.sv # 统计zz.sv文件中包含cx字符行的总行数,而不是次数grep -c 'cx' zz.sv# 包含"cx"或"qq"的文本行都会被查出来grep -e "cx" -e "qq" zz.sv # 查找zz.sv文件中不含有qq的字符行grep -v 'qq' zz.sv# 查找zz.sv文件中含有cx的字符行,不区分大小写grep -i "cx" zz.sv# 查找zz.sv文件中含有cx的字符行,匹配到第一个就停止搜索grep -m1 'cx' zz.sv# 查找zz.sv文件中含有cx的字符行,cxx不会被查找到grep -w 'cx' zz.sv # 递归查找当前目录中含有cx的字符行,但排除当前目录中的qq目录和dd.sv文件 grep -r 'cx' --exclude=./qq --exclude=dd.sv # 输出匹配行及之后的三行的内容grep -A3 -n 'cx' zz.sv# 输出匹配行及之前的三行的内容grep -B3 -n 'cx' zz.sv# 输出匹配行及前后三行的内容grep -C3 -n 'cx' zz.sv 或 grep -3 -n 'cx' zz.sv# -E选项,使用扩展表达式;"[a - z]"的意思是查找a到z这26个字符,"+"是匹配更多并以符号点"."结尾grep -E "[a - z]+\." zz.sv