shell入门基础知识及常用命令

脚本:可以运行的文本
uinux--> kshell
c语言:面向过程的编译型语言
java:面向对象的编译型语言
shell:解释型语言

shell也是操作系统中的一个软件
它包含在linux内核的外面,为用户和内核之间的交互提供了一个接口。
系统中的命令用shell去解释shell接收系统回应的输出并显示其到屏幕中
bash=GNU Bourne-Again Shell

硬件-->系统核心-->命令解释器-->外围应用程序

.sh 会变色
#!/bin/bash 运行的环境,bash-->脚本的解释器
解释器的官方名称-->幻数

 

三种执行脚本的方式:

  • sh 略过幻数,直接执行脚本
  • source 不会开启一个新的shell,直接用当前的shell作为解释器
  • +x  用脚本里的指定运行环境(./文件名.sh)
#!/bin/bash
find /etc -name *.conf -exec cp -rp {} /mnt/ \; ##复制
find /mnt -name *.conf -exec mv {} {}.`date +%m-%d` \;#重命名

#{}表示找出的东西

1个tab键=8个字符


信息
map <F5> ms:call WESTOS()<cr>'s
function WESTOS()
    call appnd
endfuncation

.代表执行结束

1.diff:比较两个文件的不同

diff在比较文件过程中结果读取方式
[num1,num2][a/b/d][num3,num4]
num1,num2表示在第一个文件中的行数

a--add表示添加
c--change表示更改
d--delete表示删除
<表示第一个文件中的内容,>表示第二个文件中的内容,---分割线
num3,num4表示在第二个文件中的行数
2,4c2,4表示改变第一个文件中的第二行和第四行才能匹配第二个文件中的第二行和第四行

例子:

[root@localhost mnt]# cat file
hello world
[root@localhost mnt]# cat file2
hello world
123

#1:
[root@localhost mnt]# diff file file2
1a2
> 123   ##第二个文件比第一个文件多了123(添加第二行的123与第二个文件一样)

#2:
[root@localhost mnt]# diff file2 file
2d1
< 123   ##删除第一个文件的第二行与第二个文件一样

#3:
[root@localhost mnt]# diff file file2
2c2
<
---
> 123

用-u对file file1两个文件里的内容作比较,会把里面的字符以补丁的形式显示出来,并且可以导出到.path的文件中
-u:对比两个文件的内容并且以补丁的方式输出

2.diff常用参数:

-b或--ignore-space-change :不检查空格字符的不同
-B或--ignore-blank-lines  :不检查空白行
-c:显示全部内文,并标出不同之处
-c1  ##显示不能之处及不同行的上下一行
-i或--ignore-case:不检查大小写的不同
-p:若比较的文件为C语言的程序码文件时,显示差异所在的函数名称,比较的是源代码
-q或--brief :仅显示有无差异,不显示详细的信息              
-r或--recursive:比较子目录中的文件
-u:以合并的方式来显示文件内容的不同

yum install patch -y 安装打补丁的工具

3.cut

-d 分隔符
-f 第几列
-f 1-3 第一列到第三列
-c 截取字符
-c 1,4第一个和第四个字符

例子:显示ip地址

ifconfig eth0 | grep "inet " | cut -d " " -f 10

(inet前有8个空格)

4.sort:用于字符排序

字母在数字后面
sort -n 纯数字排序
sort -r 倒叙
sort -u 去掉重复数字
sort -o 输出到指定文件中
sort -t 指定分隔符
sort -k 指定要排序的列

sort -t : -k 2 -n haha   ##以:为分隔符排第二列

5.uniq

-c  统计字符个数
-d  显示重复行
-u  显示唯一的行

6.test

&&也
||非

条件不成立时为真[!]
[!=]
-a 且
-o 或

-z是否为空
-n是否不为0

a=1
b=2
[ "$a" -ne "$b" ] && echo yes || echo no  ##a不等于b
b=1
[ "$a" -ne "$b" ] && echo yes || echo no ##a不等于b
b=-1
[ "$a" -ne "$b" -a "$a" -gt "$b" ] && echo yes || echo no ##a不等于b且a大于b
[ "$a" -ne "$b" -a "$a" -lt "$b" ] && echo yes || echo no
##a不等于b且a小于b
[ "$a" -ne "$b" -o "$a" -lt "$b" ] && echo yes || echo no
##a不等于b或a小于b
b=1
[ "$a" -ne "$b" -o "$a" -gt "$b" ] && echo yes || echo no
##a不等于b或a大于b

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马克图布s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值