美文网首页
【Linux 命令行与 shell 脚本编程大全】- 5 理解

【Linux 命令行与 shell 脚本编程大全】- 5 理解

作者: 夕颜00 | 来源:发表于2021-01-26 16:33 被阅读0次

5.2.2.2 jobs 命令查看后台进程

  1. 使用 jobs 命令可以显示当前运行在后台模式中的所有用户的进程信息
  2. 使用 jobs -l 则可以更详细的显示进程信息,如下图
    • jobs 命令会显示后台进程的任务 ID 、PID 、进程状态、进程命令

      image.png
    • 同时当后台进程执行完毕后,也就无法通过 jobs 查看对应进程信息

5.3 理解 shell 的内建命令

5.3.1 外部命令

  1. Linux 中存在 内建命令 和 外部命令 ,可以先理解一下 外部命令
  2. 外部命令 也被称为 文件系统命令 ,不是 shell 程序的一部分
  3. 外部命令 通常被放置在 /bin 、/usr/bin 、/sbin 、/usr/sbin 中
  4. 外部命令 在执行时,会创建一个子进程,在子进程中执行该命令,这个行为被称为 衍生( Forking )

5.3.1.1 which 命令和 type 命令查看命令归属

  1. 使用 which 命令和 type 命令可以查看指定命令是属于 外部命令 ,还是 内建命令 ,如下图
  • ps 命令位于 /bin 中,说明 ps 命令就是 外部命令
image.png

5.3.2.2 history 命令查看使用过的历史命令

首先 history 命令是一个 内建命令
可以通过 history 命令查看之前使用过的命令

5.3.2.4 在 .bash_history 文件中查看命令历史记录

使用 history 命令查看的命令历史记录,被存放在根目录的 .bash_history 文件中
需要注意的是,命令的历史记录并不是直接存放到该文件,而是先存放到内存中,当 shell 退出时,才被写入到该文件
想要强制将命令历史记录写入文件中,可以使用 history -a 命令

5.3.2.1 type -a 命令查看命令的多种实现

  1. 有些命令存在多种实现,使用 type -a 可以将该命令的全部实现列举出来,如下图
  2. 可以看到,pwd echo 命令既是 内建命令 ,也在 /bin 目录中有一份实现


    image.png

5.3.2.5 alias 命令实现为命令指定别名

alias 命令也是一个 内建命令

  1. 需要注意的是,直接使用命令创建的别名,只能在当前会话生效,无法做到全局生效
    想要全局生效,则需要将别名写入配置文件中,后续章节会有介绍
  2. 使用 alias 命令可以为某个复杂的命令指定一个简单的别名,从而将调用命令的输入减少到最低,如下图
    可以看到,通过 alias 命令将ls -l --color=auto 命令指向 ll 命令
    之后再输出 ll 命令,就可以得到和 ls -l --color=auto命令一样的结果
    image.png

5.4 小结

  1. shell 之间存在父子级关系
  2. 使用 bash 命令可以创建 子 shell
  3. 使用 exit 命令可以退出 子 shell
  4. 使用 & 命令可以将命令置入后台
  5. 使用 coproc 命令可以在子进程中执行命令
  6. 命令列表 是指在多个命令之间添加分号,可以依次执行命令
  7. 进程列表 是指在 命令列表 外部添加一对括号,可以将这些命令在子进程中执行
  8. 使用 history 命令可以查看命令历史记录
  9. 使用 !! 命令可以快速呼出最近依次的命令历史记录
  10. 使用 alias 命令可以给长命令指定短别名

部分内容转载来自:作者:asing1elife链接:https://www.jianshu.com/p/2ae62a56172d

相关文章

网友评论

      本文标题:【Linux 命令行与 shell 脚本编程大全】- 5 理解

      本文链接:https://www.haomeiwen.com/subject/tpigzktx.html