《Linux从入门到精通》学习笔记(一)

shell的基本命令

Shell简介

命令行指的是供用户输入命令的界面,其本身只是接受输入,然后把命令传给命令解释器。而命令解释器就是shell。通俗来讲Shell是一个程序,它在用户和操作系统之间提供了一个面向行的可交互接口。用户在命令行中输入命令,运行在后台的Shell把命令转换成指令代码发送给操作系统

命令行补全和通配符

  • 在输入文件名时,只需要输入前面几个字符,然后按下Tab,Shell就会自动把文件名补全;如果已键入的的字符开头文件不止一个,可以连续Tab,Shell会以列表的形式给出所有以键入字符开头的文件

  • 通配符专用符号:“*”,“?”,“[]”

    • ” * “ 用于匹配文件名中任意长度的字符,例如需要列出目录中所有的C++文件(通常以.cpp结尾)

      ls *.cpp

    • “ ? ” :和“*”匹配任意长度的字符串不同,“?”只匹配一个字符

    • “[]” :用于匹配出现在方括号内的字符

      1
      2
      3
      4
      $ls
      text1 text2 text3 text4 textA
      $ls text[1A]
      text1 textA

      也开始使用-来表示范围,例如text[1-3]

查看目录和文件

  • 显示当前目录:pwd

  • 改变目录:cd

    • $cd ..返回上一级目录
    • $cd ../..直接进入根目录
    • $cd或者$cd ~回到自己的用户主目录
    • ..代表当前目录的上一级目录,.代表当前目录,~代表用户主目录
  • 列出目录内容

    • ls用于列出当前目录下的所有文件和子目录

    • ls -F在每个列出的目录后面加上/,在可执行文件后面加上*,在链接文件后面加上@,有助于用户在无法显示颜色的终端上使用

    • ls -a用于显示所有文件

    • ls -l用来查看文件的各项属性,例如

      drwxr-xr-x 2 root root 4096 2018-11-07 21:35 conf.avail

      从左到右依次为:

      1. 文件的权限标志
      2. 文件的链接个数
      3. 文件所有者的用户名
      4. 该用户所在的用户组组名
      5. 文件的大小
      6. 最后一次修改时的日期
      7. 在最后一次修改的时间
      8. 文件名
    • ls /etc/init.d ls后跟上路径可以查看该子目录的内容

    • 命令的选项可以用组合使用,指定多个选项使用-;例如ls -aF

  • 列出目录内容

    • dirls功能少,其余一样
    • vdir相当于ls -l指令,默认情况下列出目录和文件的完整信息
  • 查看文本文件

    • cat用于查看文件内容(通常是文本文件),后跟文件名作为参数,可以跟多个文件名
    • cat -n [文件名]可显示行号
    • more用于显示内容较多的文件,可将文件内容一页一页显示,空格向下翻动一页,Enter向下滚动一行,Q退出
  • 阅读文件的开头和结尾

    • head -n 2 day显示day文件的的前两行
    • tail的作用跟head相同
  • 更好的文本阅读工具

    • lessmore更强大一些,在显示文本后,会在底部有一个“:“等待用户输入命令,空格向下翻页,b向上翻页

      搜索使用/加要搜索的内容,要继续查找相同的内容,只需要再次键入/即可

      参数-M可以显示更多文件信息

  • 查找文件内容

    • grep un day在day文件中查找含有un的行,可以指定多个文件来搜索

    • 如果要查找Red Hat这样带有空格的关键字,必须使用单引号来把空格包含进去

      $grep 'struct list' stack.h

find 命令

用于在指定范围内查找到文件

  • find /usr/bin/ -name zip -print

    find后面接路径,-name指定查找的文件名,这里是zip,可以使用通配符;-print表示将结果输出到标准输出

  • -type参数定位特殊文件类型,type可使用的类型如下

    | 参数 | 含义 | 参数 | 含义 |
    | :–: | :———-: | :–: | :——: |
    | b | 块设备文件 | f | 普通文件 |
    | c | 字符设备文件 | p | 命令管道 |
    | d | 目录文件 | l | 符号链接 |

  • -atime n用来查找最后一次使用在n天前的文件

  • -mtime n用来查找最后一次修改在n天前的文件

  • +n表示大于n,-n表示小于n

    在/uer/bin/中查找最近100天内没有使用过的命令(也就是最后一次使用在100天或100天以前的命令

    $ find /usr/bin/ -type f -atime +100 -print

更快地定位文件

大批量搜索可以使用locate语法

$ lacate *.doc

locate指令自动建立整个文件名数据库,如果要立刻生成该数据库文件的最新版本,那么可以使用updatedb命令,运行需要root权限

从终端运行程序

直接键入程序名称即可

加入&后,指导程序在后台运行

1
2
$ firefox &
[1] 8449

此时firefox将运行在后台,8449表示这个程序的进程号

查找特定程序

whereis命令主要用于查找程序文件,并提供这个文件的二进制可执行文件、源代码文件和使用手册页存放的位置;-b参数可以让whereis命令只查找这个程序的二进制可执行文件。

用户及版本信息查看

  • who命令用于查看当前系统有哪些人登录,以及工作在哪个控制台上
  • whoami
  • uname -a用于显示当前系统的版本信息,带-a会显示当前操作系统的所有的有用信息
  • uname -r只显示内核版本信息

寻求帮助

man+指令用于寻求帮助

获取命令简介

  • whatis后面加指令,可以从程序的使用手册中抽出一行简单的介绍性文字,帮助用户了解这个程序的大致用途。
  • 与之相反的一个命令是apropos反查命令

未完待续