学习笔记(7)

学习笔记(7)

1.命令执行错误,后续命令继续执行,语法错误后续命令将不再执行
2.bash -n 只检查语法错误,不检查命令错误
3.使用双引号可以保留文本格式 name=`cat /etc/fstab`,echo “$name”
4.name1=magename2=wang name3=$name1 echo $name3  name1=zhangsi echo $name3
5.type if 可以查看是否为关键字
6.普通变量只在当前会话有效,在子进程中无效,在其他终端也无效,子shell定义的变量不影响父shell定义的同名变量
7.echo $$ 查看当前进程的进程号 echo $PPID 查看父进程编号
8.pstree -p 查看进程树
9.子进程不能修改的全局变量
10.export 显示系统的环境变量,也可以使用declare 来显示环境变量,declare -x name 创建环境变量,env也可以显示环境变量
11.declare -x name=xixi 也可以使用declare -x 来显示系统的环境变量
12.系统自带的环境变量是通过读取配置文件读入的,所以自定义变量(包括环境变量)可以通过退出当前会话来取消,也可以通过unset取消
13.set 显示系统的所有变量,declare 也为显示系统的所有的变量(环境变量和普通变量)
14.脚本中定义的变量要记得unset变量,以便系统回收占用的内存
15.lscpu显示cpu信息
16.查看硬盘大小lsblk ,df 只能查询分区大小
17.$PATH 中的/root/bin 可以作为脚本的存放目录,不需要使用路径,此目录需要手动创建
18.echo -e “\e[1:31m start backup … \e[0m” 输出颜色字体, echo -e “\e[1;31m start \e[0m”
#!/bin/bash
color_num=$[RANDOM%7+31]
echo “color_number :$color_num”
echo -e “\e[1;${color_num}mCOLOR \e[0m”
19.echo $SHLVL  查看shell嵌套深度,可用来查看当前shell的层数 (LVL: level)
20.echo $_ 前一个命令的最后一个字符串,可以使用command $_ 来执行上一条命令的最后一个参数
21.只读变量不能修改不能删除,生命期为进程的生命期,退出会话环境变量取消
22.declare -r 显示系统的只读变量,declare -r name=zl(readonly name=zl)
23.防止修改系统环境可以使用(umask 666; touch /data/f1),()是开启了一个子shell,不影响当前系统的umask值,还可以保留原目录来执行
  (cd /data; rm -rf /data/*) 执行完成之后路径不切换
24.man bash 中可以查看()的使用说明,注意在bash中搜索$的时候需要转义符号\
25.{ name=mage; echo $name; } 在当前shell环境中执行,注意空格和分号,()里面的命令可以不使用空格,使用{}一定要有空格,如 { name=mge; echo $name }
26.x=1;echo $$;(echo $$;echo $x;x=2;echo $x);echo $x
27.多脚本传递参数,并打印第一个参数 $*,$@ 区别,只有在加””号时有区别
test2.sh
#!/bin/bash
echo “arg1 is $1”
test.sh
#!/bin/bash
echo “=============================”
echo “arg1 is $1, all args is $*”
echo “=============================”
echo “+++++++++++++++++++++++++++++”
/root/bin/test2.sh “$@”
echo “+++++++++++++++++++++++++++++”
# ./test.sh a b c
28.set — 清空所有位置变量,脚本执行完成以后清空变量以便系统回收内存
29.为执行的脚本创建软连接,可以通过$0判断来执行不同的功能,系统中给出的示例: # ll /usr/sbin/pidof
30.vim 编辑器使用 V 来复制行,Ctrl + v 来复制列
31.shift 左移位置参数, shift num  可以指定左移多少位
32.脚本的执行是否成功由最后一条命令来决定的,如果是语法错误,后续的命令无法执行,即便正确也是返回非0
33.exit 可以指定退出码,使用echo $? 查看返回
34.执行的shell脚本是在子进程中执行的,可以使用pstree来查看
35.let z=x+y(let z=$x+$y),$[],declare -i算数运算中里面的变量可以不用加$
36.COLOR=$[RANDOM%7+31] ;color 颜色字体补充
37.expr 是命令 expr 1+2 错误,正确 expr 1 + 2, expr 3 \* 2 乘法符号需要使用\转义
38.a=$[a^b]; b=$[a^b];a=$[a^b]; echo $a $b  a、b互换
39.help test 可以查看条件判断的种类,也是[ ] 的帮助说明,因为test 和[] 是等价的
40.[]中的变量建议使用”” 引用,防止一个变量为空另一个变量非空导致报错
41.[ $# -ne 2 ] && echo “******” && exit 1 最后一个&& 说明
42.=~ 使用扩展的表达式 并且使用[[]], !取非 [[ $filename =~ .+\.sh ]]
43.-w 判断权限看的是实际权限不是文件的权限设置,针对与root的(ll 查看的)  [ -w /etc/shadow ]
44.使用()或者{}在比较中可以改变优先级 false ||{ cmd1; cmd2; },() 开启 了一个子shell,{}不开启子shell,退出脚本本身要使用{}
45.[ ! $# -eq 2 ] 注意!的位置
46.脚本中只有在使用正则表达式的时候,使用[[]] 来做判断
47.linux操作系统退格键不好用,可以安装下readline库# yum install readline-devel.*
48.ls -d 选项查看当前目录的所有文件时不会递归目录下面的子文件夹,如: ls -d /etc/*/ 显示/etc 下面所有的文件夹,ls -d /etc/* 显示目录下面所有的文件夹和文件
49.ls 中的A选项排除.和..可以结合grep来搜索出当前目录下的子目录或是文件有多少(包括隐藏文件),如: ls -Al /etc/ |grep ‘^d’|wc -l
50.df -i 查看磁盘分区的inode利用率
51.if [[ $key =~ [Yy][Ee][Ss] ]] 注意在使用正则表达式的时候不要使用双引号如 $key =~ “[Yy][Ee][Ss]”,这种会报错
52.扫描当前新添加的磁盘并识别: echo ‘- – -‘ >/sys/class/scsi_host/host0/scan
53.-a File(-e File): 存在性测试,存在为真,否则为假
53.-h File(-L File): 存在且为符号链接文件
54.-s File: 是否存在且非空
55.vi 编辑器可以将指定的行保存至另外一个文件 :3,8w /root/test1111, 将指定的第三行至第8行保存至文件test1111中
   也可以读入命令输出, :r ls 将ls的输出输出至当前vi打开的编辑器中,使用:r /etc/fstab 读入/etc/fstab 中的文件内容至当前的编辑器中
56.vim编辑器中ctrl + d向屏幕的尾部翻半屏 ctrl + u 向屏幕的首部翻半屏
57.vim编辑器中使用D选项删除光标位置至行尾

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

(0)
上一篇 2018-04-22 17:37
下一篇 2018-04-22 17:39

相关推荐

  • Linux系统原理浅谈

    CPU   CPU和各个存储器   寄存器:接近于CPU的工作频率,是CPU的本地存储器,位于运算器和控制器中,在进程的切换时,寄存器会被清空 一级缓存:比寄存器稍慢,频率同样接近于CPU,只能用于缓存数据,不能像寄存器一样修改数据,各个核心都有自己的私有一级缓存,进程切换时不被清空 二级缓存:比一级缓存慢,多个核心都有自己私有的二级缓存…

    Linux笔记 2018-04-01
  • linux第十天笔记(markdown格式)

    # Linux第十天 “`bashrpm -qf ….“` “`bashyum provides ….“` 批量编译 C,C++:make项目管理器 configure脚本–》makefile.in–》makefile makefile.in是模板文件 makef…

    Linux笔记 2018-04-22
  • Linux任务计划、周期性任务执行

    Linux任务计划、周期性任务执行 at at命令用于在指定时间执行命令。执行结果会通过邮件发送给用户 at允许使用一套相当复杂的指定时间的方法。它能够接受在当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行 语法 at(选项)(参数) atq: 查询任务列表 atrm: 删除指定任务 选项 -f:指定包含具体指令的任务文件;…

    Linux笔记 2018-04-03
  • 第三周作业

    1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可 [root@yinwei ~]# who | cut -d ‘ ‘ -f1 | sort -ucentosgentooroot   取出最后登录到当前系统的用户的相关信息 [root@yinwei ~]# last | head -1gentoo pts/2 …

    Linux笔记 2018-05-25
  • N30-Listen学习汇总

    1.描述计算机的组成及其功能 计算机由CPU,存储器,I/O设备等部件组成计算机,每一部件分别按要求执行特定的基本功能。     CPU包含运算器、控制器以及寄存器,其中运算器主要是对数据进行各种运算;而控制器是整个计算机系统的控制中心,负责指挥计算机各部分协调地工作,保证计算机按照预先规定的目标和步骤有条不紊地进行操作及处理;寄存器则用来保存指令执行过程中…

    2018-05-13
  • linux系统修复报错的方法 .

    如果/etc/fstab文件和boot目录下的文件丢失怎么办
    centos6启动流程

    2018-05-13