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

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

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

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


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

乱写会报错

sh 略过幻数,直接

source 不会开启一个新的shell,直接用当前的shell作为解释器

+x  用脚本里的指定运行环境


#!/bin/bash
find /etc -name *.conf -exec cp -rp {} /mnt/ \; ##复制
find /mnt -name *.conf -exec mv {} {}.`date +%m-%d` \;#重命名

tab=8个字符
信息
map <F5> ms:call WESTOS()<cr>'s
function WESTOS()
    call appnd
endfuncation

.代表执行结束

#diff#:比较两个文件的不同

diff在比较文件过程中结果读取方式
[num1,num2][a/b/d][num3,num4]
num1,num2表示在第一个文件中的行数
a--add表示添加
c--change表示更改
d--delete表示删除
<表示第一个文件中的内容,>表示第二个文件中的内容,---分割线
num3,num4表示在第二个文件中的行数
2,4c2,4表示改变第一个文件中的第二行和第四行才能匹配第二个文件中的第二行和第四行

#eg#
[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:对比两个文件的内容并且以补丁的方式输出

#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 安装打补丁的工具
#cut#

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

#显示ip地址#:
ifconfig eth0 | grep "inet " | cut -d " " -f 10
(inet前有8个空格)

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

sort -t : -k 2 -n haha ##以:为分隔符排第二列
#uniq#
-c  统计字符个数
-d  显示重复行
-u  显示唯一的行


#test#
&&也
||非

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

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

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

猜你喜欢

转载自blog.csdn.net/weixin_44214830/article/details/88257567