《精通Linux C编程》1.3Linux系统的常用命令-笔记

[toc]

1.3.1了解Shell

  1. Linux常用命令的运行环境就是Shell,它是一种命令解析器,在用户和操作系统之间提供了一个交互接口。
  2. 用户在命令行输入命令,然后Shell对该命令进行解析并将它作为指令代码发送给操作系统。
  3. Linux操作系统中有许多可选的Shell,每种Shell提供不同的特性和功能,大多数Shell有自己的脚本语言。一般Linux默认Shell是Bash。

1.3.2进入Shell命令行界面

  1. Shell是终端下的用户操作界面。Linux终端也称为虚拟控制台。
  2. 显示器和键盘合称为终端,它们可以对系统进行控制,所以又称为控制台,一台计算机的输入输出设备就是一个物理控制台。
  3. 登录的用户民@登录的计算机名:~$,例如:littlesec@xiaobiaozadeMacBook-Pro:~$;$是普通用户的提示符,#是超级用户的提示符。

1.3.3文件操作命令

1.3.3.1 文件显示命令:ls [选项] [文件目录列表]

  1. 选项:
    • -a 列出目录下的所有文件,包括以“.”开头的隐含文件。
    • -l 列出文件的详细信息。
    • -m 横向输出文件名,并以“,”作为分隔符号。
    • -r 对目录反向排序。
    • -s 在每个文件名后输出该文件的大小(文件夹为0),单位为Byte。
    • -t 以修改时间由近到远排序。
    • -u 以文件上次被访问的时间排序。
  2. 文件类型:
    • - 常规文件
    • d 目录,即文件夹
    • m 共享存储器
  3. 例子:《精通Linux C编程》1.3Linux系统的常用命令-笔记
    • d表示文件,-表示文件夹
    • 后面表示权限,共3个字符串,依次为文件所有者、组中其他人、系统中其他人的权限。
    • 字符串内r表示读,w表示写,x表示执行,-表示无该权限。

1.3.3.2 查找文件:find [目录列表] [匹配标准]

1.3.3.3 显示文本文件内容:cat [选项] 文件列表

  1. 选项:
    • -n 在文件的每行前面显示行号。
    • -u 输出不经过缓冲区。
  2. 例子:《精通Linux C编程》1.3Linux系统的常用命令-笔记

1.3.3.4 查找文件内容:grep [选项] [查找模式] [文件名1, 文件名2, ...]

  1. 选项:
    • -E 每个模式作为一个扩展的正则表达式对待
    • -F 每个模式作为一组固定字符串对待(以新行分隔),而不作为正则表达式(默认)
    • -b 在输出的每一行前显示包含匹配字符串的行在文件中的字节偏移量。
    • -c 只显示匹配行的数量。
    • -i 比较时不区分大小写。
    • -n 在输出前加上匹配串所在的行号(首行行号为1)
    • -v 只显示不包含匹配串的行
    • -x 只显示整行严格匹配的行
  2. 例子:《精通Linux C编程》1.3Linux系统的常用命令-笔记

1.3.3.5 排序命令:sort [选项] 文件

  1. sort命令的功能是对文件中的各行进行排序。可以被认为是一个强大的数据管理工具,用来管理内容类似的数据库记录的文件。
  2. sort命令逐行对文件中的内容进行排序,按照字符顺序排序,和英文字典同理。
  3. 选项:
    • -m 若给定文件已排序,合并文件;没排好序则原封不动输出。
    • -c 检查给定文件是否已经排好序,若没排好则打印一个错误信息并以状态值1退出。
    • -u 对排序后认为的相同的行只留其中一行。
    • -d 按字典顺序排序,比较时仅字母、数字、空格和制表符有意义(默认)
    • -f 将大小写字母同等对待。
    • -I 忽略非打印字符。
    • -M 作为月份比较:JAN < FEB < ... < DEC
    • -r 逆序输出结果。
    • -b 在每行中寻找排序关键字是忽略前导的空白(空格和制表符)
  4. 例子:《精通Linux C编程》1.3Linux系统的常用命令-笔记

1.3.3.6 比较文件内容的命令

  1. comm [-123] file1 file2
    • 比较的是已有序的两个文件。
    • 读取两个文件后生成三列输出:仅在file1中出现的行、仅在file2中出现的行、在两个文件中都存在的行。
    • 选项的123是抑制相应的列输出,例如:
    • comm -12 只显示在两个文件中都存在的行;
    • comm -23 只显示在第一个文件中出现而未在第二个文件中出现的行;
    • comm -123 什么也不显示。
  2. diff [选项] file1 file2
    • 不要求文件内容有序。
    • 若比较的是个目录,则比较该目录中的同名文件。

1.3.3.7 文件复制命令: cp [选项] 源 目标

  1. 可用于复制文件和目录(文件夹)。
  2. 选项:
    • -a 该选项通常在复制目录时使用。它保留链接、文件属性,并递归复制目录。
    • -d 复制时保留链接。
    • -f 删除已经存在的目标文件(覆盖)和不提示。
    • -i 与f选项相反,在覆盖目标文件之前会提示要求用户确认。属于交互式复制。
    • -p 除了复制文件内容外,把修改时间和访问权限也复制到新文件中。
    • -l 不作复制,只是链接文件。
  3. 例子:《精通Linux C编程》1.3Linux系统的常用命令-笔记

1.3.3.8 移动文件:mv [选项] 源 目标

  1. 选项:
    • -b 当遇到要覆盖其他文件或目录时,自动备份,备份文件名为原文件名加上-S参数指定的字符串,若未设置则加上“~”。
    • -i 交互模式,同cp
    • -f 用户对目标文件没有写权限时,mv会给出提示。本选项会使mv命令执行移动而不给出提示。
    • -u 当要覆盖的文件或目录比源文件要新,则不覆盖目标文件。
    • -S<字符串> 指定备份文件名后要加上的字符串。

1.3.3.9 文件内容统计命令:wc [选项] 文件列表

  1. 选项:
    • -c 统计字节数
    • -l 统计行数(有回车换行符号才算一行)
    • -w 统计字数(字是以空格字符区分开的最大字符串)
  2. 例子:《精通Linux C编程》1.3Linux系统的常用命令-笔记

1.3.4目录及其操作命令

1.3.4.1 树形目录

  1. Linux系统以文件目录的方式来组织和管理系统中的所有文件。所谓文件目录就是将所有文件的说明信息采用树形结构组织起来,即常说的目录。
  2. 整个文件系统有一个“根”(/)和很多“杈”(directory),二者在Linux中被称为“目录”或“文件夹”。

1.3.4.2 工作目录、用户主目录与路径

  1. 逻辑上来说,用户登录到Linux后每时每刻都“处在”某个目录之中,此目录被称为工作目录或当前目录(Working Directory)。
  2. 工作目录用“.”表示,其父目录用“..”表示。
  3. 路径是指从树形目录中的某个目录层次到某个文件的一条道路。路径的主要构成是目录名称,中间用“/”分开。
  4. 路径分为相对路径和绝对路径。绝对路径从根开始,相对路径从工作目录开始。

1.3.4.3 Linux系统主要目录说明

  1. /bin:该目录存放Linux的常用命令。
  2. /boot:在这个目录下存放的是系统启动时要用到的程序。
  3. /dev:该目录包含了Linux系统中使用的的所有外部设备,它实际上是访问这些外部设备的端口,可以访问这些外部设备与访问一个文件或一个目录没什么差别。
  4. /etc:这个目录是Linux中最重要的目录之一。存放了系统管理时要用到的各种配置文件和子目录。例如网络配置文件、文件系统、X系统配置文件、设备配置信息、设置用户信息等。
  5. /sbin:存放系统管理员的系统管理程序,是超级权限用户root的可执行命令存放地,普通用户无权限执行该目录下的命令。凡是目录sbin中包含的都是root权限才能执行的命令。
  6. /home:存放用户的主目录。如建立一个用户名为littlesec的用户,则该目录下就有对应的/home/littlesec路径。
  7. /lib:lib是库(library)英文缩写。这个目录是用来存放系统动态链接共享库的。几乎所有应用程序都会用到这个目录下的共享库。
  8. /lost+found:该目录下在大多数情况都是空的。但当突然停电或者非正常关机后,在重启时有的文件就会找不到该存的地方,对于这些文件则存放在这个目录下。
  9. /media:即插即用型存储设备的挂载点自动在这个目录下创建。
  10. /proc:操作系统运行时,进程信息以及内核信息(如CPU、硬盘分区、内存信息等)存放在这里。可以在这个目录下获取系统信息,这些信息是在内存中由系统自己产生的。
  11. /tmp:临时文件目录,有时用户运行程序的时候,会产生临时的文件,tmp目录存放这些文件。
  12. /usr:是系统存放程序的目录,比如命令、帮助文件等,这是Linux系统中占用硬盘空间最大的目录。这个目录下有很多的文件和目录。当安装有一个Linux发行版官方提供的软件包时,大多安装在这里。如果有涉及服务器配置文件的,会把配置文件安装在/etc目录中。/usr目录下包括涉及字体目录/usr/share/fonts,帮助目录/usr/share/man/usr/share/doc,普通用户可执行文件目录/usr/bin/usr/local/bin等;程序头文件存放在目录/usr/include
  13. /var:该目录经常变动,其下有/var/log,这是用来存放系统日志的目录。/var/lib用来存放一些库文件,比如MySQL的库文件。

1.3.4.4 目录操作命令

  1. 创建目录mkdir [选项] 目录
    • -m 在建立目录时按照模式指定设置目录权限。该目录权限分为:目录所有者的权限、组中其他人对目录的权限和系统中其他人对目录的权限。这个三个权限分别用三个数字之和表示:对目录的读权限是4、写权限是2、执行权限是1。例如700表示目录所有者有三个权限,其他人均无任何权限。
    • -p 可以是一个路径名称。若路径中的某些目录尚不存在,加上此选项后系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。
  2. 删除目录rmdir [选项] 目录列表
    • 一般来说要删除的目录必须为空目录,如果所给目录不空,系统会报告错误。
    • -p 在删除目录表指定的目录后,若父目录为空,则rmdir也删除父目录。状态信息显示什么被删除什么没被删除。
  3. 显示当前目录pwd
  4. 改变当前工作目录cd [directory]
  5. 链接文件的命令ln [选项] 源文件或目录 [链接名]
  6. 改变文件或目录权限chmod [who] [+|-|=] [mode] 文件名
    1. 操作对象who选项说明:
      • u表示“用户(usser)”,即文件或目录的所有者
      • g表示“同组(group)用户”,即与文件属主有相同组ID的所有用户
      • o表示“其他(other)用户”
      • a表示“所有(所有)用户”,系统默认值
    2. 操作符号说明:
      • +添加权限
      • -取消权限
      • =赋予给定权限并取消其他权限
    3. mode选项说明:
      • r可读
      • w可写
      • x可执行
      • u与文件属主拥有一样的权限
      • g与文件属主同组用户拥有一样的权限
      • o与其他用户拥有一样的权限
    4. 例子:chmod g+r, o+r example,使同组和其他用户对文件example有读权限。
    5. 数字设定法:chmod [mod] 文件名:
      • 权限用八进制数字模式表示。
      • 0表示没有权限,1表示可执行,2表示可写权限,4表示可读权限(实际即使3个二进制位从高位到低位分别是wrx的有效位)。
      • 因此相加即看对应位是否有效,如5用二进制表示为101,所以表示权限w+x。
      • 操作对象的顺序为(u)(g)(o),即所有者、同组用户、其他用户
    6. 例子:chmod 756 text.txt,执行后用ls -l text.txt查看权限为:-rwxr-xrw-(111'101'110)。
    7. 例子:chmod ug+w, o-x text属主和同组用户加写权限,其他用户删除执行权限。
  7. 改变文件或目录的属主和属组chown [选项] 用户或组 文件

1.3.5文件压缩命令

压缩文件的好处:1.减少存储空间。2.减少通过网络传输文件时的传输时间。

1.3.5.1 文件压缩gzip [选项] 压缩(解压缩)的文件名

  1. 选项:
    • -c将输出写到标准输出上,并保留源文件。
    • -d将压缩文件解压。
    • -l对每个压缩文件显示下列字段:压缩文件大小、未压缩文件大小、压缩比、未压缩文件名字。
    • -r递归式地查找指定目录并压缩其中的所有文件或者是解压缩。
    • -t测试、检查压缩文件是否完整。
    • -v对每一个压缩和解压的文件,显示文件名和压缩比
    • -num用指定数字调整压缩速度。-1--fast表示最快压缩方法(最低压缩比)。-9--best表示最慢压缩方法(最高压缩比)。系统默认值为6.

      1.3.5.2 文件打包(多用于备份)tar [主选项+辅选项] 文件或目录


1.3.6联机帮助命令

1.3.6.1 显示帮助手册man [选项] 命令名称

  1. 选项:
    • -a显示所有的手册页,而不是只显示第一个。
    • -f只显示出命令的功能而不显示其中详细的说明文件。
    • -w不显示手册页,只显示将被格式化和显示文件所在位置

1.3.6.2 查看命令帮助命令名称 -helpinfo 命令名称

1.3.6.3 查看文件在文件系统中的位置whereis [选项] 命令名(和man -w 命令名类似)


1.3.7用户操作命令

1.3.7.1 切换用户命令su [选项] user

1.3.7.2 以系统管理员的身份执行命令sudo [选项] 命令


1.3.8关机和重启计算机命令

1.3.8.1 shutdown命令shutdown [选项] [时间] [警告信息]

  1. shutdown命令可以安全地关闭和重启Linux系统,它在关机前给系统上所有登录用户提示一条警告信息。该命令只能超级用户使用
  2. 选项:
    • -k不是真正关机,而只是发出警告信息给所有用户。
    • -r关机后立即重启。
    • -h关机后不重启。
    • -c取消一个已经运行的shutdown
  3. 时间:
    • 可以是一个精确时间,格式为hh:mm
    • 也可以是从现在开始的一个时间段,格式为+minutes

      1.3.8.2 最简单的关机命令halt [选项]

  4. 实际上是调用shutdown -h命令。

    1.3.8.3 重启命令reboot [选项]

上一篇:Linux上,最常用的一批命令解析(10年精选)


下一篇:Ubuntu-18.04.2-几个启动错误解决办法