在写shell脚本的时候发现cd切换目录的时候无法切换,代码是下面的. #!/bin/bash #changedir.sh history cd /home/firefox sleep pwd 我仔细一想,我执行的时候是./changedir.sh来执行的,这样执行的话终端会产生一个子shell,子shell去执行我的脚本,在子shell中已经切换了目录了,但是子shell一旦执行完,马上退出,子shell中的变量和操作全部都收回.回到终端根本就看不到这个过程的变化.那么怎么验证上面的猜想呢?看…
对于一段包含cd 命令的shell脚本(test.sh): #!/bin/bash cd .. mkdir ./test 运行: sh ./test.sh 脚本运行时无法在上级目录建立test文件 此时用 . ./test.sh 即可…
Linux cd 命令可以说是Linux中最基本的命令语句,其他的命令语句要进行操作,都是建立在使用 cd 命令上的. 所以,学习Linux 常用命令,首先就要学好 cd 命令的使用方法技巧. . 命令格式: cd [目录名] . 命令功能: 切换当前目录至dirName . 常用范例 3.1 例一:进入系统根目录 命令: cd / 输出: [root@localhost ~]# cd / 说明:进入系统根目录,上面命令执行完后拿ls命令看一下,当前目录已经到系统根目录了 命令: cd .. 或…
shell执行方式: 第一:输入命令  (简单工作) 第二:   脚本  (适合大量工作) Bash shell 实际上的叫法是  GNU/Bash    如何查询呢:  bash - version Bash是默认的shell ,其实还有其他很多的shell 问题一:如何快速创建100个用户 答:使用shell创建 vi   useradd.sh bash useradd.sh      Bash shell 常用的快捷键: Ctrl  +a  跳转光标到本行的首部 Ctrl  +e  跳转光…
本文是上课笔记总结,涉及细节知识点会在以后文章说明! bash脚本编程: 脚本程序:解释器解释执行: shell: 交互式接口:编程环境: shell: 能够提供一些内部命令,并且能通过PATH环境变量找到外部命令:把命令提交给内核启动为进程: 编程环境: 流程控制语句: 顺序执行: 循环执行: 选择执行: 条件测试:真.假 $? 命令的状态结果: 0: 真 1-255: 假 过程式的编程语言的元素:变量.流程.函数.数组 变量:局部变量.本地变量.环境变量.位置参数变量.特殊变量 变量: 数值…
有时候,我们需要知道当前执行的输出shell脚本的所在绝对路径,可以用dirname实现. 我们知道 dirname 可以获取一个文件所在的路径,dirname的用处是: 输出已经去除了尾部的”/”字符部分的名称:如果名称中不包含”/”, 则显示”.”(表示当前目录). 下面是dirname的命令行说明:  从上面的描述可知道,直接从dirname返回的未必是绝对路径,取决于提供给dirname的参数是否是绝对路径. 所以下面这样的代码中SHELL_FOLDER中不一定是绝对路径 SHELL_F…
type指令是用来观察指令时来自于外部指令还是内建在bash中的指令. type  [-tpa]  name 选项与参数: :不加任何选项与参数时,type会显示出name是外部指令还是bash内建指令: -t :type会将name以以下字眼显示出他的意义: file:表示外部指令: alias:表示该指令为命令别名所设定的名称: builtin:表示该指令为bash内建的指令功能: -p:如果后面接的name为外部指令时,才会显示完整文件名: -a:会由PATH变量定义的路径中,将所有含na…
Conditional Logic on Files # 判断文件是否存在及文件类型 -a file exists. #文件存在 -b file exists and is a block special file. #文件存在,并且是块设备 -c file exists and is a character special file. ##文件存在,并且是字符设备 -d file exists and is a directory. #文件存在,并且是目录 -e file exists (ju…
编辑~/.bashrc或者~/.bash_profile alias go="xxxxx" 返回bash,执行 source ~/.bash_profile 即可. 我的常用别名 alias subl="open -a Sublime\ Text" alias cellar='cd /usr/local/Cellar' alias local='cd /usr/local/' alias ll='ls -al' alias vi='vim' alias ls='ls…
1.linux中的配置文件都已是以ASCII的纯文本的形式存在 2.vim文本编译器. 一般模式:用vi打开的一个文件直接进入的就是一般模式,这个模式可以移动光标和删除字符,复制粘贴等,但是不能比那几文本内容. 一般模式中比较重要的操作: x:  向后删除一个字符. X:向前删除一个字符. nx:向后删除n个字符,同理X. dd:删除光标所在的一整行,同时也可以使用ndd来删除n行. d1G:删除光标坐在到第一行所有的数据. dG:删除光标到最后一行的所有数据. yy:复制光标所在的那一行.同时…