码迷,mamicode.com
首页 > 其他好文 > 详细

学习笔记第二十三节课

时间:2018-04-24 00:19:18      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:作业

管道符和作业控制

技术分享图片

  • 管道符表示把一个文件的输出的内容, 传递给后面的命令。
  • 比如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://blog.51cto.com/13645927/2107038

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!