[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. 例子:
    • d表示文件,-表示文件夹
    • 后面表示权限,共3个字符串,依次为文件所有者、组中其他人、系统中其他人的权限。
    • 字符串内r表示读,w表示写,x表示执行,-表示无该权限。

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

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

  1. 选项:

    • -n 在文件的每行前面显示行号。
    • -u 输出不经过缓冲区。
  2. 例子:

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

  1. 选项:

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

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

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

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. 例子:

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. 例子:

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系统学习(常用命令)

    今天调休,闲来无事,研究一下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. ABP 框架启程

    准备动手写一套电商的系统,辗转收集了不少相关的开源项目,最后决定使用ABP作为起点. 在园子里好多人都在推广ABP.有个园友做了一个集合贴,方便大家使用  ABP集合贴 建议大家优先看 HK Zhan ...

  2. python集合增删改查,深拷贝浅拷贝

    集合 集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的.以下是集合最重要的两点: 去重,把一个列表变成集合,就自动去重了. 关系 ...

  3. web前端学习就这9个阶段,你属于哪个阶段?

    第一阶段:HTML+CSS: HTML进阶.CSS进阶.div+css布局.HTML+css整站开发. JavaScript基础:Js基础教程.js内置对象常用方法.常见DOM树操作大全.ECMAsc ...

  4. Redis4.0.0 安装及配置 (Linux — Centos7)

    本文中的两个配置文件可在这里找到 操作系统:Linux Linux发行版:Centos7 安装 下载地址,点这里Redis4.0.0.tar.gz 或者使用命令: wget http://downlo ...

  5. Pycharm配置(一)

    Pycharm作为一款强力的Python IDE,在使用过程中感觉一直找不到全面完整的参考手册,因此决定对官网的Pycharm教程进行简要翻译,与大家分享. 1.准备工作 官网下载 2.如何选择Pyc ...

  6. ABP .Net Core Entity Framework迁移使用MySql数据库

    一.迁移说明 ABP模板项目Entity Framework Core默认使用的是Sql Server,也很容易将数据库迁移到MySQL,步骤如下. 二.迁移MySQL步骤 1. 下载项目 请到 ht ...

  7. linux权限设置(开放某个文件夹给指定用户)

    问题背景: 今天想把自己的数据集开放给同事a,只允许其读,不允许写. 操作: step1: 查看该文件夹属于哪一个用户,哪一个组 ls 文件夹 -lstep2: usermod -a -G 指定文件夹 ...

  8. Jmeter+Ant+Jenkins接口自动化测试(二)_测试方案设计及jmeter脚本开发

    前言 根据之前部署好的测试环境,进行接口自动化测试的方案设计及Jmeter脚本开发.测试方案设计过程中采用了数据分离和对象分离等思路,因此直接通过特定的测试用例文档来驱动整个自动化接口测试的执行,相关 ...

  9. springMVC(5)---导入excel文件数据到数据库

    springMVC(5)---导入excel文件数据到数据库 上一篇文章写了从数据库导出数据到excel文件,这篇文章悄悄相反,写的是导入excel文件数据到数据库.上一篇链接:springMVC(4 ...

  10. elastaticresearch 学习过程

    1.在Windows上安装了es 2.在chrome上装了sense 3.尝试创建 es 的模板