快乐的命令行读书笔记

Part 1 - shell & 文件系统中跳转

  • 图形用户界面让简单的任务更容易完成,而命令行界面使完成复杂的任务成为可能。基本命令:exit,date,cal,df,free。设置聚焦策略为聚焦跟着鼠标实现
  • bash是shell的一种,我们通过teminal窗口(即终端仿真器)与shell交互。shell会把输入终端仿真器的命令传递给操作系统执行。即使终端仿真器没有运行,几个终端会话仍然在后台运行,它们被称为虚拟终端或虚拟控制台。
  • pwd 打印当前工作目录 ls 列出目录内容 ls -a 列出包括隐藏文件的所有文件(注意,以.字符为开头的文件名是隐藏文件) cd 更改目录 cd - 更改工作目录到先前的工作目录 cd ~username 更改工作目录到用户主目录
  • Linux文件名可以包括空格,标点符号(句点,中划线,下划线)。但最好不要使用空格,可以用中划线或下划线代替空格。虽然类UNIX系统不用文件扩展名来决定文件的内容或用途,但应用程序会。

Part 2 - 探究操作系统

  • file filename 确定文件类型 less filename 浏览文件内容(运行less程序时按h会显示帮助屏幕)

  • ls选项 长选项 描述
    -a --all 列出隐藏文件
    -d --directory 与-l选项配合使用,查看指定目录的信息
    -F   在所列名字后加一个指示符,比如若是一个目录,会在名字后加一个/字符
    -h   将文件大小用单位表示,如k
    -l   结果以长格式输出
    -r --reverse 以字母降序来列出结果
    -S   按文件大小排序
    -t   按修改时间排序
  • command -option arguments 命令名经常带有一个或多个用来更正命令行为的选项,选项后常带有一个或多个参数,这些参数是命令作用的对象。注意,文件名和命令名均对大小写敏感。

  • drwxr-xr-x 对于文件的访问权限,d表示一个目录,r表示read,w表示write,x表示execute(即执行)。

  • 符号链接与硬链接均允许文件有多个名字,或者说多个版本,但硬链接以不同的方式来创建多个文件名。

Part 3 - 操作文件和目录

  • mkdir directory... 创建目录(当有三个圆点跟在一个命令参数的后面,意味着这个参数可重复)
  • cp item... directory / cp item1 item2 复制文件和目录
  • cp命令的一些有用选项
    | | |
    | | |
  • mv item1 item2 / mv item... directory 移动和重命名文件
  • mv命令的一些有用选项
    | | |
    | | |
  • rm item... 移除文件和目录(小心使用rm,因为这个操作不可恢复。当使用rm命令通配符时,用ls命令检测通配符,你会看到要删除的文件列表)
  • ln item link 创建硬链接 ln -s item link 创建符号链接
  • 通配符 描述
    * 匹配任意多个字符(包括0个或一个)
    ? 匹配任意一个字符
    [characters] 匹配任意一个属于字符集的字符
    [!characters] 匹配任意一个不属于该字符集的字符
    [[:class]] 匹配任意一个属于指定字符类的字符
    接受文件名作为参数的任何命令,都可以使用通配符。
    通配符 描述
    * 匹配任意多个字符(包括0个或一个)
    ? 匹配任意一个字符
    [characters] 匹配任意一个属于字符集的字符
    [!characters] 匹配任意一个不属于该字符集的字符
    [[:class]] 匹配任意一个属于指定字符类的字符
  • 字符类 描述
    [:alnum:] 匹配任意一个字母或数字
    [:alpha:] 匹配任意一个字母
    [:digit:] 匹配任意一个数字
    [:lower:] 匹配任意一个小写字母
    [:upper:] 匹配任意一个大写字母
    常用的字符类
    字符类 描述
    [:alnum:] 匹配任意一个字母或数字
    [:alpha:] 匹配任意一个字母
    [:digit:] 匹配任意一个数字
    [:lower:] 匹配任意一个小写字母
    [:upper:] 匹配任意一个大写字母

Part 4 - 使用命令

  • 命令可以是以下四种形式之一:
  1. 是一个可执行程序
  2. 是一个內建于shell自身的命令
  3. 是一个shell函数
  4. 是一个命令别名
  • type command - 显示命令的类别(该命令属于shell内部命令,根据结果可判断command是以上四种形式的哪一种)
  • which command - 显示可执行程序的位置(注意,该命令只对可执行程序有效)
  • help command - 得到shell內部命令的帮助文档(help命令只适用于shell内部命令) command --help - 显示可执行程序所支持的选项和语法说明(适用于多数可执行程序)
  • man program - 显示程序手册页(适用于多数可执行程序) man section search-term - 查看参考手册的指定章节
  • apropos keyword- 显示与keyword匹配的参考手册(man加上k选项可实现相同功能) whatis keyword- 显示与keyword匹配的参考手册名字与一行命令说明
  • info command - 读取程序info文件,显示程序info条目(info相当于命令手册页的替代物) 许多程序有自己的文档文件,储存在/usr/share/doc目录下,一般为文本文件形式或HTML网页。
  • alias name='string',string可以是以' ; '分割的多条命令,但name必须是未使用的命令。type name可以查看别名,删除别名使用unalias name

Part 5 - 重定向

    • I/O重定向允许我们可以更改输出走向和输出来向。重定向标准输出到另一个文件除了屏幕,我们使用 > 重定向符,其后跟着文件名。使用>>操作符,将把输出结果添加到文件内容之后。重定向标准错误必须参考它的文件描述符,如ls -l /bin/usr 2> ls-error.txt。重定向标准输出和标准错误到同一个文件,如ls -l /bin/usr &> ls-output.txt。
    • 处理不需要的输出,如ls -l /bin/usr 2> /dev/null(重定向输出结果到位存储桶,它可以接受输入,并对输入不做任何处理) cat 命令读取一个或多个标准文件,然后复制它们到标准输出,如 cat [file]。cat > file表示将键盘输入的内容写入文件,按ctrl + d停止输入,相反,cat < file是将文件内容输出至屏幕。
    • 管道操作符 | ,如 command | command表示一个命令的标准输出可以管道到一个命令的标准输入,我们可以方便地检测会产生标准输出的任一命令的运行结果。把几个命令放在一起组成管道线,叫做过滤器。过滤器接受输入,并以某种方式改变它,然后输出。
    • uniq经常与sort合用,默认从数据列表中删除重复行。如果想看到重复的数据列表,使用 uniq -d。wc命令用来显示文件包含的行,字,字节数,-l选项限制命令只输出行数。grep pattern [file] 当grep遇见文件中的‘匹配模式’,会打印包含这个类型的行,同时-i选项表示搜索忽略大小写,-v选项表示只打印不匹配的行。head / tail 打印文件的开头和结尾(默认打印开头部分的10行及结尾部分的10行),-n选项可调整打印的行数,tail -f file允许实时浏览文件(当观察日志文件的进展时很有用),因为日志文件同时在写入,按ctrl + c停止监测。tee命令从标准输入读取数据,并同时复制数据到标准输出和一个或多个文件(若在管道线中应用,此时允许数据继续随着管道线流动)。

猜你喜欢

转载自www.cnblogs.com/panshijie205/p/9238603.html