Shell基本知识】的更多相关文章

Linux shell基础知识(上) 目录 一.shell介绍 二.命令历史 三.命令补全和别名 四.通配符 五.输入输出重定向 六.管道符和作业控制 七.shell变量 八.环境变量配置文件 九.bashrc和bash_profile的区别 一.shell介绍 shell是一个命令解释器,提供用户和机器之间的交互.支持特定语法,如逻辑判断,循环等.每个用户都可以有自己的shell,centos7默认的shell为bash(Bourne Again Shell). Shell的两大家族 1.Bo…
1. 本文知识结构 2. shell 基础知识 2.1 shell 简单介绍 ​ GNU bash shell 能提供对 Linux 系统的交互式访问,一般来说,使用快捷键 Ctrl + Alt + T 即可打开 Linux Terminal . ​ /etc/passwd 文件包含所有系统用户账户列表以及每个用户的基本配置信息,从该文件中可以找到各用户使用的默认 shell 程序. ​ 大多数 Linux 发行版自带用以查找 shell 命令以及其他 GNU 工具信息的在线手册.man 命令常…
1.1 简介 Shell是一个C语言编写的脚本语言,它是用户与Linux的桥梁,用户输入命令交给Shell处理,Shell将相应的操作传递给内核(Kernel),内核把处理的结果输出给用户. 下面是处理流程示意图: Shell既然是工作在Linux内核之上,那我们也有必要知道下Linux相关知识. Linux是一套免费试用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统. 1983年9月27日,Richard Stallman(理查德…
调试脚本 检查脚本语法错误 bash -n /path/to/some_script 调试执行 bash -x /path/to/some_script shell里的变量 本地变量:只对当前shell有效:作用范围可以是整个shell程序文件,包括脚本中的函数,对其他的shell无效.    环境变量:对当前shell及子进程shell有效.    声明.赋值:export name=value 或者 declare -x name=value    局部变量:与函数的生命周期一样:     …
一,Shell环境查看 1.1 查看系统Shell支持情况 [root@linux-node1 ~]# cat /etc/shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin 1.2 查看当前系统默认的Shell 方法一 [root@linux-node1 ~]# echo $SHELL /bin/bash 方法二 [root@linux-node1 ~]# grep root /et…
I:知识整理:变量.运算符.流程控制.函数.计划任务 变量 系统变量:set:显示所有变量                env:环境变量 常用系统变量: path pwd lang home histsize ps1 ifs 变量赋值:x=test               echo $x               删除变量 unset x 自定义变量 定义变量: 变量名=变量值 变量名必须以字母或下划线开头,区分大小写 ip1=192.168.2.115 引用变量: $变量名 或 ${变…
1. shell 对于一台计算机而言,其硬件受系统内核的控制,使用者想要控制计算机,就必须有与系统内核进行通讯的手段.而shell就是使用者与计算机进行通讯的手段之一.从命名上看,shell其实是相对于kernel(内核)而言,指系统与外界(使用者)进行接触的部分,一个提供系统功能给用户使用的软件,它接受来自用户的指令,然后调用相应的应用程序. 为了满足不同的需求,shell提供了两种执行命令方式: a. 交互式:解释并执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令. b. 程序…
从未写过脚本我的最近接了俩脚本的需求,就在这分享一下我的我学到基础知识主要就四部分内容 一.变量 变量的定义 string='字符串' string="字符串" num=808string=str 字符串可以用单引号和双引号包裹,也可不包裹.数字话不用引号包裹的话就是一个数值. 变量也可以用来接受语句给变量赋值 file=`ls -l filepath/txt.txt` 上面的语句是接收filepath 下的txt.txt文档 数组的定义 程序中常用的还有数组在 Shell 中,用括号…
函数的定义 function fname(){ } 或者 function_name(){ } 对于简单的函数,甚至可以是这样做 fname() { statement; } 函数调用 直接写函数名即可.如 fname 传参给函数 传入的参数都是位置参数,无法传入形式参数以及设置默认参数,传入位置的参数如下: fname arg1 arg2 简单的函数例子如下: fname(){ echo $1, $2; #访问参数1和参数2 echo "$@"; #以列表的方式一次性打印所有参数 e…
第1章 shell基础 1.1 什么叫做shell编程 shell编程也叫做bash高级编程语法 1.2 常见的shell命令解释器 bash            redhat和centos使用 dsh            Ubuntu使用 csh和tcsh    unix使用 1.3 开发语言程序代码的分类说明 编译型            写完后需要编译才可以运行(C语言,java语言) 解释型            写完就可以直接运行(shell语言) 1.4 脚本规范 1.4.1 书…
1:用户的shell历史命令保存在home/username/.bash_history中 #!!  执行用户的上一条命令 #!pw  执行命令历史中最近一次以pw开头的命令 2:'*'来匹配零或多个字符 '?’匹配一个字符 #ls -d Day* 列出Day开头,后面匹配所有字符的目录 #ls -d Day? 列出Day开头,后面匹配一个字符的目录 3:>> 在文件中追加重定向 > 在文件中重定向 4:| 管道符 #cat /etc/passwd|wc -l cat /etc/pass…
cmd 也是shell  windowns的外壳一种. 查看文件和文件夹 dir mkdir *** 创建文件夹 rd *** 删除文件夹(应该有参数的,递归之类的)CTR+C 终止命令 cd>***.** 创建文件 del 文件名 删除文件 type +相对路径 查看文件(很多后缀都可以打开)编辑文件1.notepad 文件名2.echo内容>文件名(重定向) control-----控制面板打开 narrator----屏幕'讲述人' osk---------虚拟键盘 logoff----…
Shell 学习基础 1.组合命令的符号 管道,将前面一个命令的结果作为后面一个命令的输入 分号,顺序执行用分号分割的命令 重定向,重定向包括三种:输入重定向.输出重定向.错误重定向,以7个不同的符号实现 < :输入重定向 > :输出重定向 >> :输出重定向,但以追加的方式写入 2> :错误重定向 2>> :错误重定向,但以追加的方式写入 &> :重定向输出和错误 &>> :重定向输出和错误,但以追加的方式写入 2.变量 变量的…
Shell 简介 Shell作为命令语言,它交互式地解释和执行用户输入的命令:作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支. 常常作为批处理命令来使用,用来提高生产效率! 入门 下面是Shell的一段简单入门程序,我们在Linux上面使用vi test.sh然后将下面的代码打进去,运行sh test.sh 即可 #!/bin/bash echo "Hello World !" 上面这段程序是输出HelloWorld,其中#!/bin…
课程大纲: 1. shell特性 命令历史 history !!  !$  !n  !字符 Tab 键可以补全文件路径或者命令 alias  a=“b”  unalias a 通配符 *匹配零个或多个字符 ?匹配一个字符 输入输出重定向 >, >>,  <,  2>, 2>> 管道符 | 作业控制 ctrl+z, jobs,  fg,  bg 2. 变量 系统变量名都是大写,echo 可以查看变量名 env 可以列出当前用户的所有环境变量以及用户自定义全局变量 s…
shell script的一些注意事项: .#这个符号是注释本行,通常用来做批注用,#!除外,是用来标注用哪种shell执行本脚本, .执行顺序为从上到下,从做到右 .忽略空行,tab空格 .脚本换行用 \ 然后接着在下一行继续写代码 shell script执行所需权限 chmod 或者 chomod r+x 都可以. shell script 执行三方法 .sh script_path 这种方法执行后,脚本里面的变量外部不可饮用 .本目录下使用 ./script_name [推荐使用] .s…
shell中有很多内建命令,如何区分内建命令与外部文件,使用type command即可看到命令类型. >> type cd # input << cd is a Shell builtin # output >> type ifconfig # input << ifconfig is /sbin/ifconfig # output 通常,内建命令运行速度更快,相当于调用当前shell进程的一个函数.而外部命令不但会触发磁盘I/O,而且还需要fork出一个…
shell中同样有数组的概念,获取数组中的元素要使用下标[],并且下标的值必须大于等于0.数据的各项特性见下例: #!/bin/bash array1=(1 2 3 999) echo ${array1[3]} array2=(1 3 5 "hello,world") # different data type echo ${array2[0]} echo ${array2[3]} array1[4]=1000 # append more data echo ${array1[4]}…
字符串详解 字符串可以由 单引号/双引号/无引号 包围.如下所示 >> str1=hello str2="hello" str3='hello' << 三种形式的区别: 1)由单引号包围 字符原样输出,不对其中的变量进行解析.并且在字符串中不能出现单引号,即使加了转义字符也不行. 2)由双引号包围 如果字符串中存在变量,那么会对变量进行解析.可以存在双引号,只要由转义字符就行. 3)没有符号包围 如果有变量同样也会被解析,但是不能出现空格,否则,会认为空格后面的…
Shell中变量的作用域: 在当前Shell会话中使用,全局变量. 在函数内部使用,局部变量. 可以在其他Shell会话中使用,环境变量. 局部变量: 默认情况下函数内的变量也是全局变量 #!/bin/bash function func() { a=99 } func echo $a 输出 >> 99 为了让全局变量变成局部变量 #!/bin/bash function func() { local a=99 } func echo $a 输出为空,说明此时变量a是局部变量   环境变量:…
对于一个shell脚本来说,第一行是 "#!/bin/bash",这条命令中的 "#!" 告诉系统该用哪一款解释器来对该脚本进行解释,后面的"/bin/bash"用来指定解释器的具体路径   第一个shell脚本 >> #!/bin/bash echo "What is your name?" # 除了第一行的#符号,其他行的#号表示注释 read PERSON # read用来从标准输入输出文件进行读取用户输入…
教程链接:shell从入门到入门 这个网站还有其他教程,可以尝试下看看.   普及类文章:bash/cmd/dos之间有什么区别与联系 >> bash是Linux下的一个shell应用程序,cmd是Windows下的一个shell应用程序,cmd是window操作系统的一部分,dos是一个操作系统.   笔记:   为了让用户与硬件打交道,需要在用户与kernel(操作系统)之间有连接,所以产生了shell,这也是为了区别kernel所起的名字.   shell可以解释为一种应用程序,它也有自…
一,Shell中特殊且重要的变量 $0结合dirname和basename分别取出脚本名称和脚本路径 [root@192-168-3-163 scripts]# cat test.sh #!/bin/bash dirname $0 basename $0 [root@192-168-3-163 scripts]# sh /mnt/scripts/test.sh /mnt/scripts test.sh 也可参考系统rpcbind脚本 echo $"Usage: $0 {start stop |…
在有的shell(比如linux中的bash)中sleep还支持睡眠(分,小时) sleep 睡眠1秒 sleep 1s 睡眠1秒 sleep 1m 睡眠1分 sleep 1h 睡眠1小时…
一 先介绍几种常用字符: 1 * 匹配任意个任意字符2 ?匹配一个任意字符3 # 注释符号,符号后的语句不被执行4 \脱意字符,后面跟带含义字符时,照原字符输出5 []匹配包含在[]之中的任意一个字符:例如[bc]ook 匹配book 或cook[0-9] 匹配任意一个数字6 {1,2} 匹配任意一个字符,同[]效果相同,格式不同7 > 输出重定向 例如 cat 1.txt > 2.txt,把1.txt 的内容读出来替换2.txt的内容8 >>追加重定向cat 1.txt >…
参考网站:http://billie66.github.io/TLCL/book/chap08.html 1.字符“*”--展开 [me@linuxbox ~]$ echo * Desktop Documents ls-output.txt Music Pictures Public Templates Videos 注:这个”*“字符意味着匹配文件名中的任意字符,就是 shell 在 echo 命 令被执行前把”*“展开成了另外的东西(在这里,就是在当前工作目录下的文件名字). 当回车键被按下…
Shell是什么 Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以使用Shell来启动.挂起.停止甚至编写一些程序. Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强.Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令. Shell的分类 Shell的梁总主要语法类型有Bourne和C,这两种语法彼此不兼容.Bourne家族主要包括sh.ksh.Bash.psh.zsh:C家族主要包括:c…
1. vim,vi及ex的关系 vim不需要安装,vi为ex的“Visual Mode”,Vim是vi的高级版本: 2. Unix Shell 快捷键 Ctrl+a/e将光标定位到 命令的头/尾 Ctrl+u/k剪切光标前/后的内容       Ctrl+y 粘贴Ctrl+u/k的内容 3. Unix Shell中的时间提取 dt="`date +%F`"         //2017-09-27 yy="`date +%Y`"        //2017 mm=&…
1. Unix常目录结构与作用: 2.  基本命令: $echo $date $who $who am i 3.  创建文件的几种方式: A. touch FileName 创建空文件 B. > FileName  创建空文件 C. vi FileName  创建空文件并开始编辑其中内容 D. cat /dev/null > FileName 创建空文件 4. 文件操作: $rm:删除文件:(rm -rf FilePath:强制删除FilePath及其下的所有内容:r:向下递归:f:强制删除,…
在bash shell中,$( )与` ` (反引号)都是用来做命令替换用(command substitution)的.所谓的命令替换与我们第五章学过的变量替换差不多,都是用来重组命令行:*完成引号里的命令行,然后将其结果替换出来,再重组命令行.例如: $ echo the last sunday is $(date -d "last sunday" +%Y-%m-%d) 在操作上,用$( )或` `都无所谓,只是我"个人"比较喜欢用$( ),理由是:1,  `…