初涉sed命令

零散知识点散记和sed基础接触

第一次笔记(零散知识点)

可将脚本放入$PATH包括的目录下,可直接执行

hash查看所有使用过的bash变量

hash -d 删除某一条命令

在vim中,语法错误出现,则程序不会继续执行,而命令错误,则不影响后面的执行

bash -n :检查语法错误

bash -x :跟踪调试执行结果

pstree -p :查看所有进程和进程编号

echo $$ : 查看当前所在进程的进程编号

全局变量export name 则把局部变量name变为全局变量(环境变量)

export :显示目前的环境变量;等价于declare -x

set :显示所有变量及很多相关函数

echo $SHLVL :显示当前bash的嵌套深度为几

readonly name=…. : 设置只读变量,不能修改,同declare -r ,并且结束进程则失效

(ls) : 类似这种加括号,意为让里面的命令仅生效这一次,不影响以后

vim 中,$1表示第一个变量,$*|$@表示所有参数,$0表示命令本身(basename隐藏路径)

$*表示所有目标字符为一个整体,$@则把目标字符串分开识别

$0也显示软链接本身

set — :清空所有位置参数

shift : 参数向前移动一位

echo $? : 查看上一条命令是否成功执行,成功为0,失败为1-255

vim中结尾exit x ,则修改echo $?的显示数字为x

ping -c1 172.20.0.123 : 只拼一次

算数运算:

let var=算数表达式

COLOR=$[RANDOM%7+31] : 对某个随机数取模(余数),+31实现颜色命令随机

read -p “” 变量: 取消回车换行,实现在引号内容的后面输入,等价于echo -e “   \c”

read -s -p “” 变量 :-s 表示隐藏输出的字符

$? 0 成功

—–

0 false

1 true

& 并且 and

| 或者 or

0&0=0

0&1=0

1&0=0

1&1=1

0|0=0

0|1=1

1|0=1

1|1=1

短路与 &&

短路或 ||

0&&0=0

0&&1=0

1&&0=0

1&&1=1

cmd1 && cmd2

如果cmd1为假,cmd2不需要执行,反之cmd1为真,需要cmd2执行

cmd1 || cmd2

如果cmd1为真,cmd2不需要执行,反之cmd1为假,需要cmd2执行

XOR异或^

可理解为同性相斥,异性相吸

变量在中括号里面写时,最好加””

在vim中用到

false ||{ echo cmd1 ;exit; } :这里,花括号不开启子shell,( )则开启子shell

批量对多个变量赋值:read x y z <<< “1 2 3”

第二次笔记

read x y z <<< “i j k” : 批量赋值

source : 运行脚本不开启shell子进程,不同于“.”和“echo $”,source是影响当前shell的环境,慎用!

脚本里面默认是不支持别名的

修改PATH路径要去/etc/profile.d/env.sh 中,添加内容path =路径+”$PATH”

updatedb :直接更新预查找索引,以便locate 可以查找到最新的信息

find /etc/ -maxdepth 3 -mindepth 2 -name passwd :在最多三级最少二级子目录中查找passwd

-ls :以列表格式显示find的结果,包含目标文件的一些属性信息

find /home -type d -maxdepth 1 : 只查看最多一层目录的文件夹

userdel haha: 删除用户haha

tar -cpvf :四个子母依次是打包、保留原属性、显示过程、打包成后面的文件

tar -xvf : 解压

-T : 打包制定目录

-X : 排除该目录再打包

split -b 1M -d 文件名 前缀 :把该大文件切割成以该前缀开头的1M大小的若干小文件

sed 支持正则表达式

sed 2,3 : 处理范围在第二行到第三行

sed 2,+3 : 处理范围在第二行到2+3=5第五行

sed /par1/,/part2/

sed 1~2

sed 2~2

sed -n “2p” f1 : 只对第二行打印一遍(默认全部打印一遍)p就是对指定的行打印

sed -n “2,5p” f1

sed -n “/^b/,/^f/p” f1

sed -e -e : 多点编辑

sed -r 使用扩展正则表达式时用

sed ‘2,5a====’ f1 : 在第二行到第五行后面都追加====,不过并不是真的改,只是显示上改了

sed -i.bak : i表示真的修改文件,并备份原文件并以.bak为后缀

sed ‘2,5w f2’ f1 : 符合条件的行备份到f2

sed ‘s///g’ 搜索替换,g表示全局搜索

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/96119

(0)
晨嘉晨嘉
上一篇 2018-04-15 16:26
下一篇 2018-04-15 17:23

相关推荐

  • 7月9日~7月15日(第四周作业)

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 ~]# cp -r  /etc/skel    /home/tuser1 ~]#chmod -R go-rwx  /home/tuser1 2.编辑/etc/group文件,添加组hadoop 编辑/etc/group 写入…

    Linux笔记 2018-07-16
  • 基于lamp(源码)搭建blog

    lamp架构搭建blog(源码) 安装环境:2台主机,centos7.5 host1:192.168.67.115   httpd php host2:192.168.67.111   mariadb 安装包: apr-1.6.3.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.33.tar.bz2 php-7.1.18.tar…

    2018-07-02
  • Linux系统下软硬链接底层工作原理的理解

    软硬链接底层工作原理

    2018-03-31
  • 课堂笔记

    cat— 文本文件 1.cat/etc/centos/—release看到发行版名称 lsb—releas—a                    看到发行版名称 (centors  7上如果看不到发行版名称,并不是没有,而是没有安装对映的软件,生产环境中都是最小化安装,默认安装是最小文件) 2.sz/etc/centos—release传到w…

    Linux笔记 2018-07-24
  • Linux 的用户、文件管理和权限

    Linux文件系统上的特殊权限 可执行文件上SUID权限   目录上的SGID权限 sticky 特殊权限数字法: 权限位映射: 设定文件的特定属性: 访问控制列表: 访问控制列表: 访问控制列表:        

    Linux笔记 2018-04-08
  • Linux系统网络管理

    本机索引: 一、基本网络配置 二、主机、网卡名称管理 三、网卡别名 四、Bonding技术 五、实现网络组 六、Linux网络管理常用命令   一、基本网络配置: 将Linux主机接入网络,需要配置网络相关设置 一般包括以下内容: 主机名 IP/netmask 路由:默认网关 DNS服务器: 主DNS服务器 次DNS服务器   网络配置文…

    2018-05-03