Linux基本命令

Posted 我出必行

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux基本命令相关的知识,希望对你有一定的参考价值。

一:LINUX系统基础

1,什么是系统

  简单理解就是管理计算机硬件与软件资源的计算机程序

 

2,linux系统版本和主要使用范围

  Linux系统主要作为服务器操作系统和嵌入式操作系统。分为内核版本和发行版本。发行版本(也被叫做GNU/Linux发行版)通常包含桌面环境,办公软件,媒体播放器,数据库等应用软件。

  常见的发行版本:Ubuntu , Redhat , Fedora , openSUSE ,Linux Mint , Debian , Manjaro , Mageia , CentOS , Arch

 

3,解释器

  Linux系统中的特殊程序,一种被称为解释性语言或者脚本语言的计算机语言。

  在用户和内核之间充当“翻译官”,接收用户命令,调用相应程序

  用户登录Linux系统时,自动加载一个Shell程序

  Linux上常见的Shell脚本解释器有bash,sh,csh,ksh等。

二、Linux命令的分类

   Linux命令的执行必须依赖于Shell命令解释器。Shell实际上是在Linux系统中运行的一种特殊程序,它位于操作系统内核与用户之间,负责接受用户输入的命令并进行解释,将需要执行的操作传递给             系统内核执行,Shell在用户和内核之间充当了一个“翻译官”的角色。当用户登陆到Linun系统时,会自动加载一个Shell程序,以便给用户提供可以输入命令的操作环境。

    Bash是Linux系统中默认使用的Shell程序,文件位于/bin/bash。根据Linux命令与Shell程序的关系,一般分为以下两种类型:

内部命令:

          指的是集成于Shell解释器程序(如Bash)内部的一些特殊指令,也成为内建(Built-IN)指令。内部命令属于Shell的一部分,所以并没有单独对应的系统文件,只要Shell解释器被运行,内部指             令也就自动载入内存了,用户可以直接使用。内部命令无需从硬盘中重新读取文件,因此执行效率更高。

  外部命令:

    指的是Linux系统中能够完成特定功能的脚本文件或二进制程序,每个外部命令对应了系统中的一个文件,是属于Shell解释器程序之外的命令,所以称为外部命令。Linux系统必须知道外部命令对                应的文件位置,才能够由Shell加载并执行。

              Linux系统默认会将存放外部命令、程序的目录(如/bin、/usr/bin、/usr/local/bin等)添加到用户的“搜索路径”中,当使用位于这些目录中的外部命令时,用户不需要指定具体的位置。因此在大多                  数情况下,不用刻意去分辨内部、外部命令,其使用方法是基本类似的。

 查看内部命令:

    help  可以查看命令的使用方法

    enable  可以控制命令是否为内部命令

    type 命令  需要指定,可以判断命令是否为内部命令或者外部命令

 禁用内部命令:

    enable -n 命令

三、Linux命令行的格式

  3.1 通用的命令行使用格式  命令字 [选项] [参数]  (英文字符区分大小写)

  • 命令字:是整条命令中最关键的一部分;唯一确定的一条命令;执行相对应的操作
  • 选项:不同的选项有不同的功能;短格式选项:使用“-”符号引导,多个单字符选项可以组合在一起使用;长格式选项:使用“--”符号引导;
  • 参数:命令字的处理对象;可以是文件名、目录(路径)名或用户名等内容;个数可以是零到多个

四、编辑Linux命令行的辅助操作

  • Tab键:自动补齐;按两下Tab还可以出现提示信息
  • 反斜杠“\\”:强制换行(看起来是换行了,其实还在同一行)
  • Ctrl+U组合键:清空至行首(清空光标之前的输入)
  • Ctrl+K组合键:清空至行尾(清空光标包括光标之后的输入)
  • Ctrl+L组合键:清屏(滚轮上滚还能看到)
  • Ctrl+C组合键:取消本次命令编辑
  • Ctrl+a组合键:切换到行首
  • Ctrl+e组合键:切换到行尾

五、获得命令帮助的方法

  • 内部命令 help
    • 查看Shell内部命令的帮助信息
  • 命令的“--help”选项
    • 适用于大多数Linux外部命令
  • 使用man命令阅读手册页(man 命令)
    • 使用“↑”、“↓”方向键滚动一行文本
    • 使用Page Up和Page Down(空格)键翻页
    • 按Q或q键退出阅读环境(Ctrl+C也可以退出阅读环境)
    • 按“/”键查找内容,n键向下查找,N键向上查找

六、查看当前的工作目录 -pwd 

  • 显示用户当前所在的工作目录位置
    • pwd
  • 示例
    •  

       

 七、切换工作目录 -cd

  • 将用户的工作目录更改到其他位置

 

  • 绝对路径:绝对路径的起点都是从根目录(/)开始,以(/)开始的基本都是绝对路径
  • 相对路径

 

 

八、列表显示目录内容 -ls

  • 显示目录中内容,包括子目录和文件相关属性信息
    • ls [选项] [文件或目录...]
  • 常用选项
    • -l、-a、-A、-d、-h、-R、--color
      • -l:以长格式(Long)显示文件和目标的列表,包括权限、大小、最后更新时间等详细信息。ll命令与ls -l功能相同
      • -a:显示所有(All)子目录和文件的信息,包括名称以点号“.”开头的隐藏目录和隐藏文件
      • -A:与-a选项的的作用基本类似,但有两个特殊隐藏目录不会显示,即表示当前目录的“."和表示父目录的”..“
      • -d:显示目录(Directory)本身的属性,而不是显示目录中的内容
      • -h:以更人性化(Human)的方式显示目录或文件的大小,默认的大小单位为字节(B),使用-h选项后将显示为KB、MB等单位。此选项需要结合-l 选项一起使用
      • -R:以递归(Recursive)的方式显示指定目录及其子目录中的所有内容
      • --color:在字符模式中以颜色区分不同的文件。默认已开启。通常情况下,深蓝色表示目录,白色表示一般文件,绿色表示可执行文件,黄色表示设备文件,红色表示压缩文件
      • -i:显示文件和目录的inode号 (indoe号是唯一的)
  • 结合通配符
    • “?”:代表任意一个字符,有且只有一个字符
    • “*”:代表任意数个字符,可以是0个或者1个或者多个
    • “[]”:表示可以匹配字符组中的任意一个字符   [abc]  [a-z]

  ls 以列表的形式,查看目录中的文件,也可以查看指定目录当中的文件

 

 

  • 用ls -l命令查看某一个目录会得到一个7个字段的列表

 

 

 

 

 

  • 第1字段:文件属性字
    • 第一个字符代表文件的类型:
      • “-”表示该文件是一个普通文件;
      • “d”表示该文件是一个目录;
      • “l”表示该文件是一个软连接文件。类似于Windows下的快捷方式

      后面9个字母表示该文件或目录的权限位:

      • r表示读(查看、下载);
      • w表示写(添加、更改、删除、上传);
      • x表示执行(运行文件、切换目录);
      • 前三个表示文件拥有者(属主)的权限,中间三个表示文件所属组拥有的权限,最后三个表示其他用户拥有的权
  • 第2字段:文件硬连接数
      • 如果一个文件不是目录,此时这一字段表示这个文件所具有的硬连接数
      • 如果是一个目录,则第2字段表示该目录所含子目录的个数
      • 如果新建一个空目录,这个目录的第2字段就是2,表示该目录下有两个子目录
  • 第3字段:文件\\目录拥有者所在的组
  • 第4字段:文件\\目录拥有者所在的组
  • 第5字段:文件所占用的空间(默认以字节为单位)
    • 如果是一个目录,则表示该目录的大小,而不是目录以及它下面的文件的总大小
    • Linux系统中一切皆文件,因此目录也是一种文件
    • 目录中包含的文件名
  • 第6字段:文件\\目录最近访问或着修改时间
  • 第7字段:文件名
    • 如果是一个符号链接(软链接文件),那么会有一个“->”箭头,后面跟一个它指向的文件名

九、设置别名 -alias

  1、通过别名机制简化常用的、比较长的命令

  • alias 命令别名="命令"  “=”两边不能有空格

  2、别名

  • 设置myens33为修改/etc/sysconfig/network-scripts/ifcfg-ens33命令的别名

   3、取消别名

  • unalias 命令别名

 

十、统计目录及文件空间占用情况 -du

  1、统计指定目录(或文件)所占用磁盘空间的大小

  • du [选项] [文件或目录...]

  2、常用选项

  • -a:统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录
  • -h:以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果
  • -s:只统计所占用空间总的大小,而不是统计每个子目录、文件的大小
  • --max-depth=n:统计所有小于等于第n层的目录的总大小

  注:选项-a和-s不可同时使用

  du和du -a的区别:用du查看的时候他只统计目录,du -a文件也会统计下来

  3、统计出/var/log目录中第一层子目录的大小

十一、创建新目录 -mkdir

  1、创建新的空目录

  • mkdir [选项] 目录位置及名称...
  • -p:一次性创建嵌套的多层目录

  2、示例

  • 在当前目录下创建名为pubic_html的子目录

 

 

 

  • 创建目录/aa,在/aa目录下创建子目录b,在/aa/b目录下创建子目录cc

 

 

 

 

十二、创建空文件 -touch命令

  1、更新文件的时间标记

  2、经常用于创建多个新的空文件

  • touch 文件...

  3、示例

  • 创建两个空文件,文件名分别为aa.txt和bb.txt

 

 

 

 

十三、创建链接文件 -ln

  1、为文件或目录建立链接文件,类似于Windows系统的快捷方式

  2、链接文件类型

  • 软链接(又称为符号链接)
  • 硬链接
  • ln [-s] 源文件或目录... 链接文件或目标位置
  • -s创建软链接,不见-s创建硬链接

 

 

   当一个文件拥有多个硬链接时,对文件内容修改,会影响到所有文件名;但是删除一个文件名,不影响别的文件名访问。删除一个文件名,只会使得“硬链接数”减1。

  需要注意的是不能对目录做硬链接。在日常工作中几乎不会建立文件的硬链接。

十四、复制文件或目录 -cp

  1、将需要复制的文件或目录(源)重建一份,并保持为新的文件或目录

  • cp [选项]... 源文件或目录... 目标文件或目录...

  2、常用选项

  • -f:覆盖目标同名文件或目录时不进行提醒,而直接强制复制
  • -i:覆盖目标同名文件或目录时提醒用户确认
  • -p:复制时保持源文件的权限、属主及时间标记等属性不变
  • -r:复制目录时必须使用此选项,表示递归复制所有文件及子目录
  • 注:复制多个文件或目录时,目标位置必须是目录,且目标目录必须已存在

十五、删除文件或目录 -rm

  1、删除指定的文件或目录

  • rm [选项] 要删除的文件或目录

  2、常用选项

  • -f:删除文件或目录时不进行提醒,而直接强制删除
  • -i:删除文件或目录时提醒用户确认(y表示删除,n表示不删除)
  • -r:删除目录时必须使用此选项,表示递归删除整个目录树(应谨慎使用)
  • 注:不要直接删除系统中已有的目录或配置文件,以避免出现意外故障
  • 注:删除目录下文件时,建议最好先切换到目录下再执行rm -rf命令

 

 

十六、移动文件或目录 -mv

  1、将指定的文件和目录转移位置

  2、如果目标位置与源位置相同,则相当于执行重命名操作

  • mv [选项] 源文件或目录... 目标文件或目录

  3、示例

 

 

  4、mv命令只能对单个文件重命名,可使用rename命令批量修改文件名

  • rename 旧字符 新字符 目标文件

十七、查找命令文件存放目录 -which

  1、搜索范围由环境变量PATH决定(echo$PATH)

  • which 命令|程序名        //默认当找到第一个目标后不再继续查找
  • which -a 命令|程序名        //在所有搜索路径中查找

  2、示例

 

  注:使用which查找内部命令时,将找不到对应的程序

 

十八、查找文件或目录 -find

  1、采用递归方式,根据目标的名称、类型、大小等不同属性进行精细查找

  • find [查找范围] [查找条件表达式]

  2、常用查找条件类型

 

  3、各表达式之间使用逻辑运算符

  • “-a”表示 而且(and)
  • “-o”表示 或者 (or)

  4、示例

  

 

  5、exec用法

  • -exec参数后面跟的是Linux命令、它是以分号“;”为结束标志,由于各个系统中分号会有不同的意义,因此在分号前面加上反斜杠转义符“\\”。
  • {}代表前面find查找出来的文件名
  • find命令匹配到了当前目录下的所有普通文件,并在-exec选项中使用ls -l命令将他们列出
    •   find ./-type f -exec ls -l {}\\;  

十九、命令执行的优先级

  • 第一优先级:指定路径的命令。绝对路径/usr/bin/ls或者相对路径 cd /usr/bin     ./ls
  • 第二优先级:别名指定的命令。alias myls="/usr/bin/ls -alh"
  • 第三优先级:内部命令
  • 第四优先级:hash命令。Linux系统下会有一个hash表,当你刚开机时这个hash表为空,每当你执行过一条命令时,hash表会记录下这条命令的路径,就相当于缓存一样。第一次执行命令shell解释器默认的会从PATH路径下寻找该命令的路径,当你第二次使用该命令时,shell解释器首先会查看hash表,没有该命令才会去PATH路径下寻找。hash表能提高命令的调用速率。
  • 第五优先级:通过PATH定义的查找顺序查找

 

以上是关于Linux基本命令的主要内容,如果未能解决你的问题,请参考以下文章

Linux学习之路命令基本格式

linux 详解useradd 命令基本用法

Linux常用基本命令(六)

Linux常用基本命令大全介绍

linux基本命令

Linux命令-命令的基本格式