9学习shell脚本之前的基础知识.docx_第1页
9学习shell脚本之前的基础知识.docx_第2页
9学习shell脚本之前的基础知识.docx_第3页
9学习shell脚本之前的基础知识.docx_第4页
9学习shell脚本之前的基础知识.docx_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、 Shell的特点(1.)记录命令历史Shell会记录我们敲过的linux命令1、 执行上一步已执行的linux命令Ls!(执行上一步已执行的命令ls)2、 执行.bash_history文件中第七条指令History |grep 7(查询第7条指令是什么指令)!7(执行第7条指令,!n(这里的n是数字),表示执行命令历史中第n条指令)3、 执行命令历史中最近一次以ab开头的命令!ab(2.)指令与文件名补全打命令时记不住时,按tab或两次tab键可以显示补全此命令(3.)设置表别名把比较长得命令设置为简单的命令如ls l=ls直接敲alias会看到目前系统预设的alias(也可以解除命令别名)把强行删除命令rm f设别名为rmAlias rm=rm -f取消刚刚设置的别名Unalias rm(4.)输入输出从定向 输出重定向更为常用,它经常用于将命令的结果输入到文件中,而不是屏幕上。输入重定向的命令是,另外还有错误重定向2,以及追加重定向。(5.)管道符前面已经提过过管道符”|”,就是把前面的命令运行的结果丢给后面的命令。(6)作业控制当运行一个进程是可以使用Ctrl+z,使他暂停在用fg恢复继续,使用bg让它在后台运行;也可以按ctrl+c使它终止;二、 变量通常shell预设的变量都是大写的;变量就是一个较简单的字符串来代替某些具有特殊意义的设定以及数据,如PATH,它代替了所有命令的绝对路径的设定;因为有PATH这个变量我们运行命令时就不再输入全局路径,直接敲命令名即可1、显示变量的值,如显示PATH变量的值 Echo $PATH2、 列出系统预设的所有系统环境变量Env3、 显示系统预设的全部变量Set4、常用的系统环境变量PATH 决定了shell将到那些命令中寻找命令或程序HOME 当前用户主目录HISTSIZE 历史记录数LOGNAME 当前用户的登录名HOSTNAME 主机名称SHELL 当前用户shell类型LANG 语言相关的环境变量,多语言可以修改此环境变量MAIL 当前用户的邮件存放目录PWD当前目录4、 自定义myname变量值为fanguangpuMyname=fanguangpu5、 显示myname变量值(94页)Echo $myname或Set |grep myname三、重新打开一个shell,并查询上题自定义的变量是否可用Bash 重新进入一个shelEcho $myname 显示myname变量结果ExitEcho $myname此时先前设置的myname变量已经不存在了,退出当前shell回到原来的shell,myname变量还在。四、 设置自己设定的变量在每一个shell都可以应用,即设置的变量一直生效1)要想系统内所有用户登录后都能使用该变量Myname=fanCd /etcVi profile (只有root权限才能进行修改)在最后一行中添加export myname=fan保存退出Source /etc/profile (source命令的作用是,讲目前设定的配置刷新,即不用注销再登录也能生效。)Echo $myname2)只想让当前用户使用该变量在用户主目录下.bashrc文件的最后一行中添加myname=fan运行命令source .bashrc5、 在linux系统下设置自定义变量有哪些规则a. 设定变量的格式为”a=b”,其中a为变量名,b为变量的内容,等号两边不能有空格;b. 变量名只能由英文、数字以及下划线组成,而且不能以数字开头;c. 当变量内容带有特殊字符(如空格)时,需要加上单引号;如Myname=li mingEcho $myname有一种情况,需要你注意,就是变量内容中本身带有单引号,这就需要用到双引号了。如Myname=“li ming”Echo $mynamed. 如果变量内容中需要用到其他命令运行结果则可以使用反引号;如Myname=pwdEcho $mynamee. 变量内容可以累加其他变量的内容,需要加双引号;如Myname=”$LOGNAME”fan在这里如果你不小心把双引号加错为单引号,将得不到你想要的结果,如Myname=$LOGNAMEfan6、 在一个shell中进入另一个新的shell,并用pstree命令查看区别Pstree |grep bashBashPstree |grep bashpstree这个指令会把linux系统中所有进程通过树形结构打印出来。七、在父shell中设定一个变量后,进入子shell后该变量是不会生效的,如果想让这个变量在子shell中生效则要用到export指令。Abc=123Echo $abcBashEcho $abcExitExport abcBashEcho $abc如果在export后不加任何变量则会生成所有的变量8、 取消设置的abc变量Abc=123Echo $abcUnset abcEcho $abc9、 系统环境变量与个人环境变量的配置文件/etc/profile :这个文件预设了几个重要的变量,例如PATH, USER, LOGNAME, MAIL, INPUTRC, HOSTNAME, HISTSIZE, umas等等。/etc/bashrc :这个文件主要预设umask以及PS1。这个PS1就是我们在敲命令时,前面那串字符了,例如自己的linux系统PS1就是 rootlocalhost # ;u就是用户,h 主机名, W 则是当前目录,$就是那个#了,如果是普通用户则显示为$.bashrc :该文件包含专用于你的shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。例如你可以将用户自定义的alias或者自定义变量写到这个文件中。.bash_history :记录命令历史用的。.bash_logout :当退出shell时,会执行该文件。可以把一些清理的工作放到这个文件中。10、 linux shell中的特殊符号1、* 代表零个或多个字符或数字 如:ls -d test*2、 ? 只代表一个任意字符如:touch testa testb testaa Ls -d test?3、 # 这个符号在linux中表示注释说明的意思,即”#”后面的内容linux忽略掉#qwertyuiooCd . #ghjkk4、 脱意字符,将后面的特殊字符还原成普通字符Ls test*查看以test*为文件名的文件属性5、 | 管道符:它的作用在于将符号前面命令的结果丢给符号后面的命令。6、 $ :除了用于变量前面的标识符外,还有一个妙用,就是和!结合起来使用。Ls test.txt(test.txt)Ls !$(ls test.txttest.txt)!$表示上条命中中最后一个变量(也许称为变量不合适,总之就是上条命令中最 后出现的那个东西)例如上边命令最后是test.txt那么在当前命令下输入!$则代表test.txt。1)grep过滤一个或多个字符Cat /etc/passwd | grep root2) cut截取某一字段语法:cut -d “分隔字符” -cf n 这里的n是数字-d :后面跟分隔字符,分隔字符要用双引号括起来-c :后面接的是第几个字符-f :后面接的是第几个区块Cat /etc/passwd |cut -d “:” -f 1-c 后面可以是1个数字n,也可以是一个区间n1-n2,还可以是多个数字n1,n2,n3Head -n2 /etc/passwd |cut -c2Head -n2 /etc/passwd |cut -c1-10Head -n2 /etc/passwd |cut -c1,4,8(98页)3) sort 用作排序语法:sort -t 分隔符 -kn1,n2 -nru 这里的n1 n2-t 分隔符 :作用跟cut的-d一个意思-n :使用纯数字排序-r :反向排序-u :去重复-

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论