管道符和作业控制
- 管道符表示把一个文件的输出的内容, 传递给后面的命令。
- 比如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]\[email protected]\h[033[00m\033[01;36m\w\033[00m\$‘
这个是在etc bashrc里面定义的。
- 我们最开始登录系统的时候 的命令行 最左侧是root 用户名 然后@ 后面跟的主机名。然后是所在的目录。
- ps1 就是这个命令行的变量配置文件。
- echo $ PS1 u 就是用户名, h 就是主机名。 w就是所在目录。$在用户下是$ 在root下是#
- 这里是一个大写的w 也可以改为小写。
- 修改后就是一个全局路径。
- 用户名,主机名都是可以修改的, 方括号也可以取消掉。
- 我们也可以让他带颜色。
- PS2 是用在另外一个环境里面的。
原文地址:http://blog.51cto.com/13645927/2107038
时间: 2024-10-13 02:41:38