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

时间:2022-05-20 08:19:38

[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 C编程》1.3Linux系统的常用命令-笔记的更多相关文章

  1. Linux 系统巡检常用命令

    Linux系统巡检常用命令   # uname -a # 查看内核/操作系统# cat /etc/centos-release # 查看centos操作系统版本# cat /proc/cpuinfo ...

  2. Linux常用命令 笔记

     Linux常用命令  笔记 一.文件处理命令 1. ls命令:显示目录文件                          -a 显示所有文件,包括隐藏文件.(all)               ...

  3. linux基础学习之软件安装以及常用命令

    linux基础学习之软件安装以及常用命令 调用*仓库: yum install wget 然后下载nodejs: wget https://nodejs.org/dist/v10.14.2/node ...

  4. Linux 常用命令笔记

    Linux 常用命令笔记 1. locate locate:用来定位文件的位置,如:locate a.txt 但是这个命令有延迟,也就是新建的文件不一定能搜索到,如果非要找到新建的文件可以使用 upd ...

  5. linux系统的常用命令

    linux系统中常用的命令如下(以后经常补充): cd ..   返回上一级 cd use  进入use目录

  6. 用xshell操作linux系统的常用命令

    (1)命令ls——列出文件 ls -la 给出当前目录下所有文件的一个长列表,包括以句点开头的“隐藏”文件 ls a* 列出当前目录下以字母a开头的所有文件 ls -l *.doc 给出当前目录下以. ...

  7. linux系统学习&lpar;常用命令&rpar;

    今天调休,闲来无事,研究一下linux系统. Linux常用命令: 一:文件管理 ctrl+alt:在虚拟机与windows之间切换ctrl+g:进入linux输入模式 pwd:查看当前目录 ls:列 ...

  8. linux进程管理和系统状态常用命令简介

    1 进程管理简介 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础 2 常用命令 2.1 pstree 2.1.1 功能描 ...

  9. LINUX系统一一常用命令

    前言 LINUX UNIX Centos RedHat Ubuntu SHELL shell脚本 shell shell命令 类似windows系统的bat 批处理文件 里面都是脚本 CentOS6. ...

随机推荐

  1. Jackson ObjectMapper类使用解析

    /** * Jackson ObjectMapper类 */ //ObjectMapper类是Jackson库的主要类.它提供一些功能将转换成Java对象匹配JSON结构,反之亦然.它使用JsonPa ...

  2. UNIX网络编程-非阻塞connect和非阻塞accept

    1.非阻塞connect 在看了很多资料之后,我自己的理解是:在socket发起一次连接的时候,这个过程需要一段时间来将三次握手的过程走完,如果在网络状况不好或者是其他的一些情况下,这个过程需要比较长 ...

  3. Docker create image

    Dockerfile FROM java:8 MAINTAINER dudu ADD springts_1-0.0.1-SNAPSHOT.jar app.jar EXPOSE 8080 ENTRYPO ...

  4. POI 读取word &lpar;word 2003 和 word 2007&rpar; (转)

    最近在给客户做系统的时候,用户提出需求,要能够导入 word 文件,现在 microsoft word 有好几个版本 97.2003.2007的,这三个版本存储数据的格式上都有相当大的差别,而现在 9 ...

  5. usb驱动开发2之代码地图

    USB只是Linux庞大家族里的一个小部落,host controller是它们的族长,族里的每个USB设备都需要被系统识别.下图显示包含一个USB接口的USB鼠标导出的结果. USB系统中的第一个U ...

  6. 用来用去还是觉得SDCMS好用

    用来用去还是觉得SDCMS好用 现在可以算是精通了.呵呵,欢迎交流

  7. 关于SpringMVC项目报错&colon;java&period;io&period;FileNotFoundException&colon; Could not open ServletContext resource &lbrack;&sol;WEB-INF&sol;xxxx&period;xml&rsqb;

    关于SpringMVC项目报错:java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/xxxx ...

  8. Exception in thread "main" org&period;hibernate&period;TransientObjectException&colon; object references an unsaved tran

    今天在使用一对多,多对一保存数据的时候出现了这个错误 Hibernate错误: Exception in thread "main" org.hibernate.Transient ...

  9. 六、es6 map

    一.map的特点 JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键.这给它的使用带来了很大的限制. 为了解决这个问题,ES6 提供了 ...

  10. DATEADD 和 CAST 函数

    where cast(soh.orderdate as date)=cast(dateadd(day,-1,getdate()) as date) 这一代码在sql 2005 不适用,使用conver ...