管道符和作业控制
管道符表示把一个文件的输出的内容, 传递给后面的命令.
比如 wc-l 的用法 可以统计 ls 下有多少个目录 文件.
还有之前用的 find 命令. 可以列出当前目录下所有文件, 也可以用管道符.
以后会经常用管道符.
ctrl+z 可以暂停一个任务., 可以用 fg 恢复任务.(fg + 暂停任务的 id 号 可以恢复指定的暂停任务.)
jobs 命令 可以把已经停止的任务给列出来.
bg 可以把任务放在后台.
vim 的命令 可能显示的不够明显, 可以用 vmstat 来做实验.
可以用 bg 把它放在后台, 虽然他还在显示. 因为用 jobs 它还在运行.
在后台可以用命令 只是会很影响操作, fg 可以把它调到前台, 区别就是 没办法敲命令 了.
也可以直接把任务放在后台 +&
比如
在另一个终端是发现不了 别的终端的任务的.
但是可以查看别的终端任务的进程.
shell 变量
系统的变量一般都是大写的英文字母.
变量的值可以是一些数字 , 也可以是一串字符串.
系统有很多配置文件, env 可以查看系统常用的环境变量.
还有 set 也可以查看变量 还可以看到自己设定的变量.
我们可以定义一个自定义的变量 (这个和系统的环境变量不一样)
自己定义的变量可以在 set 里查看到 (set |grep 123)
也可以用 less (set |less)
系统的环境变量是内置的, 没有权限去干涉它, 但是可以自己定义一些变量, 写 shell 脚本经常要用变量.
变量名的规则 变量名可以是字母 数字 下划线, 但是首位 不能是数字.
变量的值如果有特殊符号 要用单引号括起来.
也可以用双引号 但是建议用单引号, 因为可以脱译.
比如 用双引号 变量的值如果有 特殊符号, 用双引号, 系统会识别的不是你想要的效果.
变量的累加. 连起来显示就是变量的累加.
想要特殊符号 在变量值中起作用 可以把特殊符号单独双引号引起来.
查看自己在那个终端.
w 查看有两个用户登录了系统.
echo $SSH_TTY 查看自己在那个终端.
在 pts/0 定义一个变量 yingxin=linux 但是在 pts/1 上是没有这个变量的.
而且还可以进入一个子 shell shell 其实就是一个进程. 等于进入了一个新的终端, 虽然也在 pds/0 下. 可以用 pstree 看一下, 我们远程登录 sshd 获得了一个 bash 然后又在终端上运行了一个 bash .
现在去运行 echo $yingxin 也没有出现刚才的定义.
退出这个终端, 然后去 pstree 可以看到 我们是在 pds/0 下了.
这个叫做非全局, 或者叫本地的变量 仅仅在终端下生效.
可以变成全局的 就是 export 进入了新的终端 依然可以显示这个变量. 这就是全局环境变量.
但是在另一个 pds/1 是没有生效的. 因为这两个终端没有任何的交互, 所以不会在另一台终端生效.
我们再定义个全局变量 , 然后退出 新的终端, 回到上一层终端, 会发现 全局变量也没生效, 因为全局变量是一层一层向下的, 无法向上生效.
这里的 export 是以后写脚本的时候 会出现 脚本 1 里面有脚本 2 脚本 2 会用到脚本 1 的变量的.
变量可以赋值 也可以取消 就是 unset + 变量名.
环境变量配置文件.
环境变量配置文件分两个纬度 一个是系统层次, 一个是用户层次.
etc 下属于系统层次 (这两个文件不要动它, 除非以后知道这是怎么回事了.)
.bash 属于用户层次
可以把 profile 归为一个类型 是用户或者系统在登录的时候会加载到.
bashrc 归为一个类型. 是用户或者系统在执行一个脚本的时候会加载到.
当遇到一些需求 需要去编辑的时候 可以在用户的家目录下去编辑它. 比如之前的编辑命令显示的行数改为 5000 就可以在这里添加编辑, 要是想全局都变量 需要到 etc 下去配置. 图中的. 和 source 是同一个作用. 就是加载配置文件里的一些配置.
.bash_profile 会 z 自动调用 bashrc bashrc 会自动调用 etc/bashrc
.bash_logout 用来定义用户退出的时候的一些操作. 比如每次退出终端 想把命令历史删除, 就可以把删除命令历史的命令放在这个文件里面.
这里再说一个变量是 PS1=[033[01;32m]\u@\h[033[00m\033[01;36m\w\033[00m\$'
这个是在 etc bashrc 里面定义的.
我们最开始登录系统的时候 的命令行 最左侧是 root 用户名 然后 @ 后面跟的主机名. 然后是所在的目录.
ps1 就是这个命令行的变量配置文件.
echo $ PS1 u 就是用户名, h 就是主机名. w 就是所在目录.$ 在用户下是 $ 在 root 下是 #
这里是一个大写的 w 也可以改为小写.
修改后就是一个全局路径.
用户名, 主机名都是可以修改的, 方括号也可以取消掉.
我们也可以让他带颜色.
PS2 是用在另外一个环境里面的.
来源: http://www.bubuko.com/infodetail-2572836.html