linux命令知识大纲

作者: DayBreakL | 来源:发表于2019-07-21 00:49 被阅读37次

    操作系统的作用

    • 是现代计算机系统中最基本和最重要的系统软件
    • 是配置在计算机硬件上的第一层软件,是对硬件系统的首次拓展
    • 主要作用是管理好硬件设备,并为用户和应用系统提供一个简单的接口,便于使用
    • 而其他的如编译程序、数据库管理系统、以及大量的应用软件,都直接以来于操作系统的支持


    不同应用领域的主流操作系统

    1.桌面操作系统

    • Windows
      用户群体大
    • macOS
      适合开发人员
    • Linux
      应用程序少

    2.服务器操作系统

    • Linux
      安全、稳定、免费
      占有率高
      为什么安全?
      Linux开源,有漏洞容易被发现,用户量小,黑客不care,权限严格,一般以非root身份使用。Windows付费,只有微软团队,用户量大,黑客care,以管理员权限运行。
    • Windows Server
      付费
      占有率

    3.嵌入式操作系统
    - Linux

    4.移动设备操作系统
    - iOS
    - Andriod(基于Linux)

    虚拟机

    虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。

    • 虚拟系统通过生成现有操作系统的全新虚拟景象,具有真实操作系统完全一样的功能
    • 进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统中进行的,可以独立安装软件,保存数据,对真正的操作系统不会产生任何影响
    • 能够在现有系统和虚拟景象之间灵活切换的一类操作系统

    操作系统的发展历史

    1.Unix
    2.Minix
    3.Linux

    Linux内核及发行版

    1.Linux内核版本

    • 内核(kernel)是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层
    • Linux内核版本又分为稳定版和开发版,两种版本是互相关联、互相循环
      • 稳定版:具有工业级强度,可以广泛地应用和部署,新的稳定版相对于旧的稳定版只是修正一些bug或加入新的驱动程序
      • 开发版:由于要试验各种解决方案,所以变化很快
    • 内核源码网址:https://www.kernel.org

    所有来自全世界的对linux源码的修改最终都会汇总到这个往后在哪,由Linuxd领导的开源社区对其进行甄别和修改最终决定是否进入到Linux主线内核源码中

    2.Linux发行版本

    • Linux发行版(也叫GNU/Linux发行版)通常包含了包括桌面环境、办公套件、媒体播放器、数据库等应用软件
    • 常见的发行版本如下:
      • Ubunntu
      • Redhat
      • Fedora
      • openSUEE
      • Linux Mint
      • Debian
      • Manjaro
      • Mageia
      • CentOS //用的比较多
      • Arch

    Linux的应用领域

    1.服务器领域

    • Linux在服务器领域的应用是其重要分支
    • Linux免费、稳定、高效等特点在这里得到很好的体现

    2.嵌入式领域

    • 近年来,Linux在嵌入式领域的应用得到飞速的提高
    • 运行稳定,对网络的良好支持性、低成本、且可以根据需要进行软件裁剪,内核最小可以达到几百KB
    • 主要应用:机顶盒、数字电视、网络电视、手机、PDA等

    3.个人桌面领域

    • 传统Linux最薄弱的环节
    • 由于传统Linux界面简单、操作复杂、应用软件少,一直被Windows压制
    • 近年来随着Ubuntu、Fedora等优秀桌面环境的兴起,各大硬件厂商对其支持的加大,Linux在个人桌面领域的占有率在逐渐的提高

    Linux文件和目录

    1.Windows和Linux文件系统区别

    • Windows下有多个驱动器盘符,每个驱动器都有自己的根目录结构,这样就形成了多个树并列的情形


    • Linux下只有一个根目录/:,在Linux操作系统下插入U盘,也只会显示到某个目录下

    常用Linux命令的基本使用

    职场中,大量的服务器维护工作都是在远程通过SSH客户端来完成的,并没有图形界面,所有的维护工作都需要通过命令来完成。如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等

    序号 命令 对应英文 作用
    01 ls list 查看当前文件夹下的内容
    02 pwd print work directory 查看当前所在文件夹
    03 cd[目录名] change directory 切换文件夹
    04 touch[文件名] touch 如果文件不存在,新建文件
    05 mkdir[目录名] make directory 创建目录
    06 rm[文件名] remove 删除指定的文件名
    07 clear clear 清屏

    终端命令格式

    command [options] [parameter]

    • command 命令名 相应功能的英文单词或缩写
    • option 选项,可以用来对命令进行控制,也可以省略
    • parameter 传给命令的参数,可以是0个,一个会多个
    • [ ] 代表可选

    查阅命令帮助信息

    • -- help

    • man command man是manual的缩写,是Linux提供的一个手册,包含了绝大部分的命令、函数的详细使用说明

      • 使用man命令时的操作
      操作键 功能
      空格键 显示手册页的下一屏
      Enter键 一次滚动手册页的一行
      b 回滚一屏
      f 前滚一屏
      q 退出
      /word 搜索word字符串

    熟练使用以下命令

    • 快捷键
      上下键--上一个/下一个命令
      ctrl+c 退出命令

    • ls

    >ls -l
    drwxr-xr-x  5 leitianxiao  staff  160  6 14 21:42 GitHub
    文件类型 - 权限  - 硬连接数-  用户名 -  用户名组  - 大小 -  文件修改时间 -  文件夹名
    - 文件类型
    d代表文件夹,-代表文件
    - 权限 : 
    rwx r-x r-x  分为三组权限,第一组指文件拥有者的权限,第二组指用户拥有组的权限,第三组指其他人的权限
    r代表可读,w代表可写, x代表可执行, -代表非   
    
    >ls 任意路径 查看任意路径下的文件和目录
    
    >ls a*
    展示以a开头的文件、目录 ,*代表任意个任意字符
    
    >ls a?
    展示以ax的文件、目录 ,?代表1个任意字符
    
    >ls [abc]b
    匹配[ ]中任意字符
    
    • clear
      清屏,其实就是把滚动条往下拉。

    • cd
      cd .. 返回上级目录
      cd ~ 返回home目录
      cd / 返回根目录

    • ls
      ls -a 显示所有文件 .xxx .开头的都是隐藏文件
      ls -l 显示文件夹的详细信息,权限、大小
      ls-lh h-human,以人性化的方式显示详细信息,显示文件大小的单位

    • pwd
      当前路径

    • mkdir
      创建的路径一定是要有权限的
      mkdir /home/admin/不存在的父级目录/不存在的文件夹 会报错没有这个文件或目录
      mkdir /home/admin/不存在的父级目录/不存在的文件夹 -p 就会按层级创建文件夹
      mkdir red blue 在当前目录下创建redblue文件夹
      mkdir color1/red color2/blue 在当前目录下创建color1/redcolor2/blue文件夹
      mkdir color {red blue} 在当前目录下创建color/redcolor/blue
      mkdir .abc 创建隐藏文件夹
      只要创建的文件夹,必然会有隐藏的...,代表当前目录和上级目录,无法删除。所以可以进行 cd ..cd.

    • touch
      touch a.txt 在当前目录下创建.txt文件a
      touch命令只能在存在的目录下创建文件
      touch .abc创建一个隐藏文件
      gedit hello.txt 用记事本打开文件,有hello.txt就打开文件,没有就创建并打开

    • rm
      rm hello.txt 删除文件
      rm a 删除文件夹,会报错,无法删除一个目录
      rm a -r 删除目录
      rm * 删除当前目录下所有文件、无法删掉隐藏文件
      rm * -r 删除当前目录下所有目录、无法删掉隐藏文件
      rm .abc 隐藏文件只能一个一个的删除

    • cp
      将给出的文件或目录复制到另一个文件或目录中,相当于DOS的copy命令

      • 常用选项说明
      选项 含义
      -a 通常在复制目录时使用,它保留链接、文件属性、并递归地复制目录,简单而言,保持文件原有属性
      -f 覆盖已存在的目标文件而不提示
      -i 交互式复制,在覆盖目标文件之前将给出提示要求用户确认
      -r 若给出的源文件是目录文件,则cp将递归复制该目录下的所有子目录和文件,目标文件必须一个目录名
      -v 显示拷贝进度
    • mv 移动命名、重名名
      mv 123.txt hello.txt 相当于把123重命名为hello

    • 软链接(常用)
      软链接:不占磁盘空间,源文件删除则软链接失效
      软链接格式: ln -s 源文件 链接文件

      > ln -s hello.json link
      lrwxr-xr-x  1 leitianxiao  staff    10  7 17 21:51       link -> hello.json
      

      link 指向了hello.json
      链接文件的文件大小很小,只记录源文件的名称,如果删除源文件,新建同名文件,链接仍然生效。同样也因此原因,如果要将软链接和源文件放在不同文件目录下,需要使用绝对路径
      ln -s ~/admin/hello.json ~/link
      能链接文件,也能链接目录

    • 硬链接
      硬链接:只能链接普通文件,不能链接目录
      硬链接格式:ln 源文件 链接文件

      >ln hello.json link
      -rw-r--r--  2 leitianxiao  staff  1085  7 17 21:42 hello.json
      -rw-r--r--  2 leitianxiao  staff  1085  7 17 21:42 link
      

      硬链接是记录所有的内容,文件大小也一样,可以删除源文件,不影响硬链接文件,ls -l权限后面的数字是硬链接数,表示改这个文件有几个文件会产生同步变化,硬链接不能链接目录

    • chmod 修改文件权限
      chmod修改权限有两种使用格式:字母法和数字法
      字母法 :chmod u/g/o/a +/-/= rwx 文件

      【u/g/o/a】 含义
      u user 表示该文件的所有者
      g group 表示与该文件所有者所属的同一组,即用户组
      o other 表示其他以外的人
      a all 表示这三者皆是
      【+/-/=】 含义
      + 增加权限
      - 撤销权限
      = 设定权限
      【rwx】 含义
      r read可读,可以通过ls查看该目录的内容
      w write可写,可以在该目录下创建新文件
      x excute可执行,可以通过cd进入这个目录
      - 没有任何权限
      //给所有者u 增加+ 可执行权限x
      chmod u+x 1.txt 
      //给所有者u 设置= 可执行权限x,此时所有权限只有x
      chmod u=x 1.txt 
      //撤销所有者所有权限
      chmod u=- 1.txt
      //给三种角色不同的权限
      chomod u+w,g-r,o=xr 1.txt
      //三个角色同样的权限
      chmod a+rwx 1.txt
      

      数字法:

      字母 说明
      r read可读,数字代号4
      w write可写,数字带号2
      x excute可执行,数字带号1
      - 没有任何权限,数字带号0

      格式:chmod abc 文件名 ,abc各为一个数字,为权限代号之和,a代表所所有者的权限,b代表用户组的权限,c代表其他人的权限。

      //给三个角色所有权限,4+2+1=7
      chmod 777 1.txt
      //不给三个角色任何权限
      chmod 000 1.txt 
      //给用户可读,给用户组可写,给其他人可执行
      chmod 421 1.txt 
      
    • find
      特定目录下搜索符合条件的文件,也可以用来搜索特定属主的文件
      常用用法:

      命令 含义
      find . -name test.sh 查找当前目录下所有名为test.sh的文件,.代表当前目录
      find . -name *.sh 查找当前目录下所有后缀稳为.sh的文件
      find ~ -name *.txt 查找家目录下以.txt结尾的文件
    • tar 归档管理
      计算机中的数据经常需要备份,tar是Unix/Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。
      使用格式:tar [参数] 打包文件夹 文件

      打包
      tar cvf a.tar *.txt
      
      解包
      tar xvf a.tar -C atar
      

      tar命令很特殊,其参数前面可以使用“-”,也可以不使用。
      常用参数:

      参数 含义
      -c 生成档案文件,创建打包文件
      -v 列出归档解档的详细过程,显示进度
      -f 指定档案文件名称
      -t 列出档案中包含的文件
      -x 解开档案文件

      tar -cf dabao.tar 1.txt hello.txt 把1.txt、 hello.txt打包(-c)为文件(-f)dabao.tar,但是此时没有压缩。
      每个命令都要加f,加在参数最后cvf xvf xf cf ……
      解包到其他目录,在目录前要加-C

    • gzip 压缩
      tar和gzip的结合实现文件的打包、压缩。tar只负责打包,gzip压缩tar打包后文件,其拓展名一般为.tar.gz
      gzip使用格式:gzip [选项] 被压缩文件
      常用选项: -d --> 解压 -r --> 压缩所有子目录
      压缩解压步骤总结:

      • 压缩
        1.打包
        tar cf a.tar 1.txt 生成a.tar文件
        2.压缩
        gzip -r a.tar 生成a.tar.gz文件
      • 解压
        1.解压
        gzip -d a.tar.gz 生成a.tar文件
        2.解包
        tar xf a.tar -C ~/atar 解包到指定文件夹

      一步到位的压缩和解压:-z
      tar zcf b.tar.gz 1.txt 以gzip的方式打包并且压缩
      `tar zxf b.tar.gz -C ~/btar 以gzip的方式解压并且解包

      image
    • bzip2
      跟gzip命令一样使用。其拓展名为xxx.tar.bz2。
      tar命令中增加一个选项(-j)可以调用bzip2实现了一个压缩功能,实行一个先打包后压缩的过程。
      压缩用法:tar -cjf a.tar.bz2 1.txt
      解压用法:tar -xjf a.tar.bz2 -C ~/btar

    • zip、unzip
      通过zip压缩文件的目标文件不需要指定扩展名,默认拓展名为zip。
      压缩文件:zip [-r] 目标文件(没有拓展名) 源文件
      解压文件:unzip -d 解压后目录文件 压缩文件 解压时,如目录不存在,会自动创建目录。

    实际使用时,考虑压缩率和通用性,一般使用 gzip
    压缩率:zip<gzip<bzip2
    通用性:zip>gzip>bzip2

    • shutdown、reboot 关机重启

      命令 含义
      reboot 重新启动操作系统
      shutdown -r now 重新启动操作系统,shutdown会给别的用户提示
      shutdown -h now 立刻关机,其中now相当于时间为0的状态
      shutdown -h 20:25 系统会在今天20:25关机
      shutdown -h +10 系统会在10小时后关机
    • which
      查看命令在哪里
      语法:which 任意命令

      > which zip
      /usr/bin/zip
      

      命令是一个可执行文件,win中要双击才能启动可执行文件,linux中使用命令就可以

    • who 查看登陆用户
      查看当前所有登陆用户的信息

    • exit 退出当前账户
      如果是图像界面,退出当前终端
      如果是使用ssh远程登录,退出登陆账户
      如果切换后登陆用户,退出则返回上一个登陆账号

    • passwd 设置用户密码

    • su 切换到管理员账号
      切换到root用户,使用su命令

    linux命令加强

    • grep 文本搜索
      Linux系统中grep命令是一种强大的文本搜索工具,允许对文本进行模式查找,如果找到匹配模式,grep打印包含模式的所有行
      一般格式为: grep [-选项] ‘搜索内容串’ 文件名
      选项 含义
      -n 显示匹配行及行号
      -v 显示不包含匹配文本的所有行
      -i 忽略大小写
      grep -n 'hello' hello.txt
      grep -i 'hello' hello.txt
      grep -v 'hello' hello.txt
      grep -in 'hello' hello.txt
      在当前目录下搜索:grep -n 'hello' . -r
      grep的搜索字符串可以是正则表达式,常用正则表达式:
      参数 含义
      ^a 行首,寻找以a开头的行
      ke$ 行尾,寻找以ke结尾的行
      [sS]sign[aA] 匹配[ ]中一系列字符中的一个,可以是ssigna,ssignA……
      . 匹配一个非换行字符,匹配e.e之间任意一个字符,可以是eve,eae,eee……
    • 重定向 > 将命令执行的结果重定向到一个文件,本应显示在终端的内容保存在一个文件中
      ls > text.txt (text.txt不存在就创建,存在就覆盖)
      >输出重定向会覆盖原来的内容,>>输出重定向会追加到文件内容的尾部
    • cat
      cat text.json查看文件内容,展示在终端上
      cat text1.json text2.json 查看多个文件内容
      cat text1.json text2.json > text3.json 合并多个文件的内容
    • more
      文件内容过长时,打开文件会显示到内容末尾。使用more可以从第一行开始显示,可用来查看比较大的文件
      more hello.json b往回翻页,enter键向下翻页
    • 管道 一个命令的输出可以作为另一个命令的输入,左端写东西,右端取东西
      ls ~ | more 展示ls ~的结果,按more命令的方式,从第一行开始展示
      cat hello.json | more

    编辑器vim

    "vi"是visual interface的简称,它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,vi不是一个排版程序,它不像word或者wps那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序,vi没有菜单,只有命令,而且命令繁多。

    vi的三种基本工作模式
    插入模式
    命令模式
    末行模式

    1.vim基础操作
    "vim"是从vi发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能丰富。

    在shell环境输入vi命令打开文件时,属于命令模式

    • 进入插入模式:
    i 插入光标前一个字符
    I 插入首行
    a 插入光标后一个字符
    A 插入行未
    o 向下新开一行,插入行首
    O 向上新开一行,插入行首
    
    • 插入模式时,按ESC进入命令模式
    移动光标:
    j 向下每行行尾
    k 向上每行行尾
    l 向右
    h 向左
    M 光标移到中间行
    L 光标移到屏幕最后一行行首
    数字行号+shift +G 移动到指定
    (末行模式:set nu 显示行号)
    w 向后一次移动一个字
    b 向前一次移动一个字
    { 按段移动,上移
    } 按段移动,下移
    ctrl+d 向下翻半屏
    ctrl+u 向上翻半屏
    ctrl+f 向下翻一屏
    ctrl+b 向上翻一屏
    gg 光标移到文件开头
    G 光标移到文件末尾
    
    删除命令:
    x 删除光标后一个字符
    X 删除光标前一个字符
    dd 删除光标所在行
    d0 删除光标前本行所有内容
    dw 删除光标开始位置的字
    
    撤销命令:
    u 一步一步撤销
    ctrl+r 反撤销
    
    重复命令:
    . 重复上一次操作的命令
    
    文本行移动
    >> 文本行右移
    << 文本行左移
    复制粘贴:
    yy 复制当前行, n yy 复制n行
    p 在光标所在位置向下新开辟一行,粘贴
    
    可视模式:
    v 按字符移动,选中文本
    V 按行移动,选中文本可视模式可以配合 d,y >>
    
    替换操作:
    r 替换当前字符
    R 替换当前行光标后的字符,直到按esc
    
    查找命令:
     / str查找
    n 下一个
    N 上一个
    
    
    • 命令模式时,按:进入末行模式
    w 存盘
    wq 保存并退出
    q! 不存盘,强制退出
    

    相关文章

      网友评论

        本文标题:linux命令知识大纲

        本文链接:https://www.haomeiwen.com/subject/gqopkctx.html