Linux Shell常用命令
1.什么是Linux Shell
Linux Shell是用户和Linux内核之间的接口程序,为用户提供使用操作系统的借口。当Shell向Linux传递命令时,内核会做出响应的反应。
Shell是一个用户程序,或是一个为用户和系统交互提供的环境。
它是一个执行从标准输入设备读入的命令的语言解释程序,他拥有自己內建的Shell命令集,Shell也能被系统中的其他命令所调用。
当登陆或打开控制台时Shell就会运行。
Shell不是系统内核的一部分,但是他可以使用内核系统执行命令、创建文件等。
Linux Shell自身就是一个解释性的程序设计语言。
可以使用如下按键组合来编辑和回调命令:
CTAL+W :删除光标位置前的单词。
CTAL+U :清空行
CTAL+R :搜索先前使用的命令。
CTAL+C :终止当前的命令。
CTAL+D :退出登陆shell。
ESC+T :调换光标前的两个单词。
Tab :自动补全文件名、目录名和命令名。
上下键:查看命令历史
定制自己的Bash登陆脚本
vim /etc/vimrc
"map <F9> ms:call WESTOS()<cr>'s
autocmd BufNewFile *.sh exec ":call WESTOS()" ##新的以.sh结尾的文件为shell的脚本文件
function WESTOS()
call append(0,"#################################################")
call append(1,"#Aythor: lee #")
call append(2,"# CreateTime:".strftime("%Y-%m-%d %H:%M:%S").("#"))
call append(3,"#Version: 1.0 #")
call append(4,"#Mail: lee@westos.org #")
call append(5,"#Description: #")
call append(6,"# #")
call append(7,"#################################################")
call append(8," ")
call append(9,"#!/bin/bash")
endfunction
vim hello.sh
脚本的调式
sh -x hello.sh
必须有X权限
cut命令的使用
被用于文本处理,可以用这个命令来提取文件中指定的列或者指定的字符的内容。
cut -d 指定分隔符
cut -f 1.7|1-7 指定截取的列
cut -c 指定借取的字符
diff命令
用来比较两个文件或目录的不同
diff 【options】 target1 target2
比较的结果读取方式
【num1,num2】【a|c|d】【num3,num4】
num1,num2表示在第一个文件中的行数
a表示添加
c表示更改
d表示删除
表示在第一个文件的第二行后添加linux才能匹配第二个文件的三行
删除第一个文件的第三行的linux才能匹配第二个文件的两行
diff中常用的参数
-b 或 ignore-space-change 不检查空个字符的不同
-B 或 --ignore-blank-lines 不检查空白行的不同
-c 显示全部内文,并标出不同之处
-i 或 --ignore-case 不检查大小写的不同
-p :若比较的文件为 C 语言的程序码文件时,显示差异所在的函数名称
-q 或 --brief :仅显示有无差异,不显示详细的信息
-r 或 --recursive :比较子目录中的文件
-u 以合并的方式来显示文件内容的不同
补丁patch
下载patch yum install patch
将两个文件的不同放到补丁文件中
然后用patch将补丁文件打入原文件进行修改
grep命令的使用
全面搜索研究正则表达式并显示出来grep 命令是一种强大的文本搜索工具 , 根据用户指定的“模式”对目标文本进行匹配检查 , 打印匹配到的行由正则表达式或者字符及基本文本字符所编写的过滤条件。
grep 的格式
grep 匹配条件 处理文件
grep root passwd ##过滤passwd文件中含有root的信息
grep ^root passwd ##过滤以roo开头的信息
grep root$ passwd ##过滤以root结尾的信息
\< 关键字 不匹配开头
关键字 \> 不匹配结尾
\< 关键字 \> 只匹配关键字
grep -i 强制grep命令忽略关键字的大小写
-r/R 可以递归搜索指定目录下的文件
-w 默认情况下当搜索字符,grep命令也会匹配含有关键字的所有字符,使用-w选项,则强制匹配关键字的行
-c 可以报告文件或文本中模式被匹配的次数
-n 可以显示每一个匹配行的行号
-v 可以输出除匹配行以外的其他所有行
--color 输出中将匹配的字符串以彩色形式输出
grep 中字符的匹配次数设定
* 字符出现【0-任意次】
\? 字符出现【0-1次】
\+ 字符出现 【1-任意次】
\{n\} 字符出现【n次】
|{m,n\} 字符出现【最少出现 m 次,最多出现 n 次】
\{0,n\} 字符出现 [0-n 次 ]
\{m,\} 字符出现 [ 至少 m 次 ]
xyxy\{n\}xy 关键字出现 [n 次 ]
.* 关键字之间匹配任意字符
sed 行编译器
stream editor用来操作纯 ASCII 码的文本处理时 , 把当 前处理的行存储在临时缓冲区中 , 称为“模式空间” (pattern space) 可以指定仅仅处理哪些行sed 符合模式条件的处理 不符合条件的不予处理处理完成之后把缓冲区的内容送往屏幕接着处理下一行 , 这样不断重复 , 直到文件末尾.
sed一次处理一行输入的优点时在读取非常庞大的文件时不会出现问题。一般的文件编辑器必须将整个文件读入内存,这将会产生内存溢出或者在处理庞大的文件系统是速度非常慢。它的优势在于你可以在一处(一个sed脚本中)指定所有的编辑命令,然后逐条执行他们.
常用选项
-e——他告诉sed将下一条参数解释为sed指令,只有在命令行给出多个sed指令时才需要使用-e
-f——指定由sed指令组成的脚本的名称,如果sed脚本的第一行为“#n”,则sed的行为与-n选项相同。
-i——直接修改读取内容,而不是输出到终端
-n——取消默认输出如果使用-n参数后,只有经过sed处理的行才会被显示。
p显示 模式操作
sed -n '/\:/p' /etc/fstab ##只显示fstab文件中含有“:” 的行
sed -n ‘/UUID$/p’ /etc/fstab ##只显示以UUID结尾的行
sed -n ‘2~6p’ /etc/fstab ##显示2~6行的内容
sed -n ‘2~6!p’ /etc/fstab ##显示除2~6行以外的内容
=显示在第几行
##d 删除模式操作
##a追加
##i插入
如果之追加不插入则只改变输出终端
a,i不影响模式空间的内容,提供的文本将不匹配脚本中后续命令i的任何地址
##c更改
可以处理一个范围内的行。他用一个文本备份取代所有被寻地址的行,但提供的文本植被输入一次。。它会清楚模式空间,他在模式空间内与删除命令有同样的效果i,所以在sed脚本中,变更命令被放在最后。
##s替换
n——1~512之间的数字,表示对文本模式pattern中指定模式第n次出现的情况进行替换
g——对模式空间的所有出现的情况进行全局更改,如果没有g时通常只有第一次出现的情况被更改
p——打印模式空间的内容
w——将空间模式的内容写入到文件file中
& 作为元字符,“&”符号表示模式匹配的范围,不是被匹配的行,可以使用‘&’符号匹配一个单词或一串字符
\n——匹配第n个子字符,这个子字符是先前在模式中使用的“\"指定的
\——用于转义符号“&”“\”等字符。它还可以用于转义换行符cut
test命令
Shell脚本可以使用逻辑,使用脚本可以根据参数、Shell变量或是其他条件的值采取不同的行动。test命令允许你做各种测试每当测试成功或失败时设置他的退出状态码为0或1.
test命令用于
文本属性测试、字符串测试、算术测试
-e <file> 如果file存在则为真
-f 存在且是一个常规文件为真
-d 存在是一个目录为真
-c 存在且是一个则特殊字符文件为真
-b 存在且是一个特色块文件为真
-p 存在且是一个命名管道为真
-S 存在且是一个套接字文件为真
-L /-h 存在且是一个符号连接则为真
-g 存在且是设置了sgid位则为真
-u 存在且时设置了suid位则为真
-r/-w/-x 存在且是可读可写可执行的则为真
-s 存在且不为空的文件则为真
<File1> -nt <File2> 如果1比2新则为真
-ot 1比2旧则为真
-ef 1有硬链接到2则为真
字符串测试的操作符
-z <STRING> 如果<STRING>为空则为真
-n <STRING> 如果<STRING>不为空则为真
<STRING1> = <STRING2> 如果相同则为真
<STRING1> != <STRING2> 如果不相同则为真
<STRING1> < <STRING2> 如果1排在2之前则为真(ASCII码)
<STRING1> > <STRING2> 如果1排在2之后则为真(ASCII码)
算术测试的操作符
<INTEGER1> [操作符]<INTEGER2>
-eq 相等则为真
-ne 不相等则为真
-le 小于等于则为真
-ge 大于等于则为真
-lt 小于则为真
-gt 大于则为真
sort名令
sort命令用于对文本文件的行进行排序,也可以通过管道符对其他命令的输出进行排序
多用于字符排序
sort -n 纯数字排序
sort -r 倒序
sort -u 去掉重复数字
sort -o 输出到指定文件中
sort -t 指定分隔符
sort -k 指定要排序的列
uniq
对重复字符做相应的处理
uniq -u显示唯一的行
uniq -d显示重复的行
uniq -c每行显示一次并统计重复次数
awk命令的用法
awk是被设计用于文本处理,并通常被用作数据提取和报告工具的解释性程序设计语言。
运行awk的方式有两种
awk 【OPTIND】【--】 program-text file
{ } 用于将代码块集和在一起
BEGIN{}: 读入第一行文本之前执行 , 一般用来初始化操作
END{}: 处理完最后一行文本之后执行 , 一般用来输出处理结果
awk '{print $0}' 变量$0表示当前的一整行
要是将参数改为固定的字符串如{print "hello"} 你的文集那有多少行,就会打印多少hello
使用awk打印指定的列
如 awk '{print $1}'
不指定分隔符的情况下默认空格作为分隔符
-F 用来指定分隔符;$1表示第一列字符
awk基本用法
awk '{print 第NR行,NF列}'
awk '/bash$/' 打印以bash结尾的行
awk -F : '/bash$/{print $1}' 打印以bash结尾的行的以:为分隔符的第一列
awk 的表达式和块
可以把任意类型的表达式放在代码块之前来控制特定的块什么时候执行,只有当表达式为真时,awk才会执行此代码块
比如输出文件/etc/passwd 文件中第一列等于root的所有行的第三列
&& 和 ||
&& 用来执行条件成立后执行的命令
|| 用来执行条件不成立后执行的命令
抓取eth0网卡的ip

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
LEMP环境下WordPress建站教程
LEMP 代表的是(L:Linux OS,E:Nginx,M:MySQL/MariaDB, P:PHP),与之对应的是 LAMP(唯一不同的是 A,代表 Apache 网络服务器),由于Nginx轻量、高效的特性,LEMP 在近来的 Web 服务中的出镜率越来越高。 为了追随潮流,在之前LAMP 搭建 WordPress的基础上,我又尝试了使用 Nginx 作为 WordPress 的网络服务器,尽管遇到了各种各样的问题,但是取得了不错的效果。由于 Nginx 的配置比较复杂,于是有很多需要注意的地方。 常见网络服务器的优缺点 1. Nginx Nginx 是十分轻量级的 HTTP 服务器,是一个高性能的 HTTP 和反向代理服务器,Nginx 以事件驱动的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理、负载平衡。其拥有匹敌 Lighttpd 的性能,同时还没有 Lighttpd 的内存泄漏问题。 优点:轻量级,处理请求异步非阻塞,抗并发,高度模块化,有着 Lighttpd 的性能,且更稳定。 缺点:Nginx 在处理动态请求方面不如 Apache。 2. Apache ...
- 下一篇
Linux常用命令大全
最近都在和Linux打交道,这方面基础比较薄弱的我只好买了本鸟哥的书看看,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大。为了方便大家查找linux的相关命令,我就将我了解到的命令列举一下,仅供大家参考: 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示CPU info的信息 cat /proc/interrupts 显示中断 cat /proc/meminfo 校验内存使用 cat /proc/swaps 显示哪些swap被使用 cat /proc/version 显示内核的版本 cat /proc/net/dev 显示网络适配器及统计 cat /proc...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2全家桶,快速入门学习开发网站教程
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- 设置Eclipse缩进为4个空格,增强代码规范
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS6,7,8上安装Nginx,支持https2.0的开启