Linux Command Line 学习笔记3

Linux Command Line 学习笔记3

说明;写Linux Command Line 学习笔记系列文章本意只是记录自己学习 《Linux Command Line 》 这本书的过程中看到的一些自己没有留意到的地方,因此绝大多数内容只是记录了相关知识点而没有实际扩展内容,纯粹是为了自己后期回顾时有迹可循。另外,因为直接看的是原版书,所以很多地方中英混杂。更详细地学习建议去阅读原书即可。

Advanced Keyboard Tricks

  • 建议调换大写键和ctrl的映射关系

  • 光标瞬间移动

    Ctrl-a 移动光标到行首
    Ctrl-e 移动光标到行尾
    Ctrl-f 光标前移一个字符;和右箭头作用一样
    Ctrl-b 光标后移一个字符;和左箭头作用一样
    Alt-f 光标前移一个字
    Alt-b 光标后移一个字
    Ctrl-l 清空屏幕
  • 文本修改

    Ctrl-d 删除光标位置的字符
    Ctrl-t 光标位置的字符和光标前面的字符互换位置
    Alt-t 光标位置的字和其前面的字互换位置
    Alt-l 把从光标位置到字尾的字符转换成小写字母
    Alt-u 把从光标位置到字尾的字符转换成大写字母
  • 复制剪切

    Ctrl-k 剪切从光标位置到行尾的文本
    Ctrl-u 剪切从光标位置到行首的文本
    Alt-d 剪切从光标位置到词尾的文本
    Alt-Backspace 剪切从光标位置到词头的文本 如果光标在一个单词的开
    头,剪切前一个单词
    Ctrl-y 把剪切环中的文本粘贴到光标位置
  • 补全

    tab; tab两次显示可能的自动补全内容

  • 历史命令

    .bash_history

    • 默认保存500条历史命令

    • 浏览历史命令history |less

    img

    • 执行时可以使用 !1120

    搜索历史命令

    • Ctrl-r启动递增搜索,输入想要查找的内容
    • 回车即可执行
    • Ctrl-j复制命令到当前行

    展开历史命令

    • !88第88行历史命令
    • !string重复最近历史列表中,以这个字符串开头的命令

    linux 中的录屏功能

    • scirpt命令
    • script <file>屏幕显示的一切都会记录在文件中
    • 在原有文件继续追加使用-a选项,-q安静模式
    • 结束记录输入 exit或者ctrl-d

Permissions 权限

  • 三类人:拥有者,组员,其他人

    命令id 查看用户相关的信息

    • uid 用户id
    • gid 组id

    ubuntu中,普通用户账号从1000开始

    用户信息存储位置

    • 用户账户: /etc/passwd包含用户(登录)名,uid,gid,帐号的真实姓名,家目录,和登录shell
    • 组定义:/etc/group
    • 密码信息:/etc/shadow
  • 三种操作方式:读取,写入,执行

    文件模式-rw-rw-r--

    • 第一个字符表示文件类型
    • rwx读写执行

    chmod 更改文件模式

    • 八进制更改

      img

      • chmod 755
    • 符号更改

      符号表示法分为三部分:影响谁,执行哪个操作,要设置哪种权限
      影响谁

      u 所有者
      g 用户组
      o 其他人
      a 所有

      哪个操作

      \+ 加权限
      \- 删除权限
      = 指定可用权限

      举例

      u+x 为所有者添加执行权限。
      u-x 删除所有者可执行权限。
      +x 为文件所有者,用户组,和其他所有人添加可执行权限。等
      价于a+x。
      o-rw 除了所有者和用户组,删除其他人的读权限和写权限。
      go=rw 给群组的主人和任意文件拥有者的人读写权限。如果群组的主人或全局之前已经有了执行的权限,他们将被移除。
      u+x,go=rw 给文件拥有者执行权限并给组和其他人读和执行的权限。多种设定可以用逗号分开。
  • 更改身份

    su 以其他用户身份和组ID 运行一个shell
    sudo

    • sudo 命令不要求root密码
    • 允许一个普通用户以不同的身份(通常是超级用户),通过一种非常可控的方式来执行命令
    • sudo 不会重新启动一个shell,也不会加载另一个用户的shell 运行环境
  • chown 更改文件所有者和用户组

    chown [owner][:[group]] file...

  • chgrp 更改用户组所有权

  • passwd 更改用户密码

  • 创建和维护用户和用户组

    adduser
    useradd
    groupadd

进程

  • Linux 内核通过使用进程,来管理多任务。

  • 系统启动的时候,内核先把一些它自己的程序初始化为进程,然后运行一个叫做init 的程序。

  • init再运行一系列的称为init 脚本的shell 脚本(位于/etc),它们可以启动所有的系统服务。

  • 许多系统服务以守护(daemon)程序的形式实现,守护程序仅在后台运行,没有任何用户接口。

  • 一个程序可以发动另一个程序,这个事实在进程方案中,表述为一个父进程创建了一个子进程。

  • 系统分配给每个进程一个数字,这个数字叫做进程ID 或PID

  • 查看进程

    ps x

    R 运行。这意味着,进程正在运行或准备运行。
    S 正在睡眠。进程没有运行,而是,正在等待一个事件,比如说,一个按键或者网络数据包。
    D 不可中断睡眠。进程正在等待I/O,比方说,一个磁盘驱动器的I/O。
    T 已停止. 已经指示进程停止运行。稍后介绍更多。
    Z 一个死进程或“僵尸”进程。这是一个已经终止的子进程,但是它的父进程还没有清空它。(父进程没有把子进程从进程表中删除)
    < 一个高优先级进程。这可能会授予一个进程更多重要的资源,给它更多的CPU 时间。进程的这种属性叫做niceness。具有高优先级的进程据说是不好的(less nice),因为它占用了比较多的CPU 时间,这样就给其它进程留下很少时间。
    N 低优先级进程。一个低优先级进程(一个“好”进程)只有当其它高优先级进程执行之后,才会得到处理器时间。

    ps aux

    USER 用户ID. 进程的所有者。
    %CPU 以百分比表示的CPU 使用率
    %MEM 以百分比表示的内存使用率
    VSZ 虚拟内存大小
    RSS 进程占用的物理内存的大小,以千字节为单位。
    START 进程运行的起始时间。若超过24 小时,则用天表示。

    top 动态显示

    • 显示内容 最上面是系统概要,下面是进程列表,以CPU 的使用率排序

    • 系统概要解读

      img

  • 中断进程

    ctrl-c 注意并非所有程序都可以如此中断

  • 程序后台运行

    command & 返回工作号和PID

    jobs 查看后台运行程序

    后台运行的进程对一切来自键盘的输入都免疫,也不能用Ctrl-c 来中断它

    使用 fg %1,让工作号是1的进程返回前台执

  • 停止进程(不终止)

    ctrl-z , 使用fg 命令,可以恢复程序到前台运行,或者用bg 命令把程序移到后台。\

  • 向进程发送信号

    kill [-signal] PID

    常用信号

    img

  • 向多个进程发送信号

    killall

  • 树型结构的进程列表

    • pstree 输出一个树型结构的进程列表,这个列表展示了进程间父/子关系。
    • ps auxf
    • ps uf
  • 系统资源使用快照

    • vmstat 输出一个系统资源使用快照,包括内存,交换分区和磁盘I/O。
    • 为了看到连续的显示结果,则在命令名后加上延时的时间(以秒为单位)。例如vmstat 5
    • 终止输出,按下Ctrl-c 组合键。

本文作者:思考问题的熊

版权声明:本博客所有文章除特别声明外,均采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 (CC BY-NC-ND 4.0) 进行许可。

# linux
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×