Linux常用命令

一、概念

Linux命令分为内部命令外部命令两种。两个命令功能基本相同,但其在linux系统中的被调用方式略有差别。所谓的内部与外部之分是相对于Shell本身来区分的,内部命令集成与Shell解释器程序内部的一些特殊指令也称为内建(Built-in)指令,属于Shell的一部分,没有单独对应的系统文件,自动加载入内存,可以之间使用;外部命令是Linux系统中能够完成特定功能的脚本文件或二进制程序,外部命令是属于Shell解释器程序之外的命令,每个外部命令对应系统中的一个文件,需要知道对应的文件位置,由Shell加载后才能执行。

内部命令外部命令

集成于Shell解释器程序内部的一些特殊指令,也称为内建(Built-in)指令

Linux系统中能够完成特定功能的脚本文件或二进制程序
属于Shell的一部分属于Shell解释器程序之外的命令
没有单独对应的系统文件每个外部命令对应了系统中的一个文件
自动载入内存,可以直接使用必须知道其对应的文件位置,由Shell加载后才能执行/bin,/usr/bin,/usr/local/bin等

那什么是Shell呢?

Shell是在Linux系统中运行的一种特殊程序,位于用户层与内核之间,主要功能是翻译用户指令,并将命令翻译成计算机语言,传递给内核执行调用相关资源,也可以说充当“翻译官”的作者。用户登陆Linux系统的时候会自动加载某个Shell程序,其中bash是默认的Shell程序,文件位于“/bin/bash”。

以虚拟机登陆Linux系统为例子,登陆时自动加载的Shell程序,显示为以下

如何分辨内部命令与外部命令?

查看内部命令的两个命令:enablehelp。

[root@192 ~]# enable
enable .
enable :
enable [
enable alias
enable bg
enable bind
enable break
enable builtin
enable caller
enable cd
enable command
enable compgen
enable complete
enable compopt
enable continue
enable declare
enable dirs
enable disown
enable echo
enable enable
enable eval
enable exec
enable exit
enable export
enable false
enable fc
enable fg
enable getopts
enable hash
enable help
enable history
enable jobs
enable kill
enable let
enable local
enable logout
enable mapfile
enable popd
enable printf
enable pushd
enable pwd
enable read
enable readarray
enable readonly
enable return
enable set
enable shift
enable shopt
enable source
enable suspend
enable test
enable times
enable trap
enable true
enable type
enable typeset
enable ulimit
enable umask
enable unalias
enable unset
enable wait

而想要知道一个命令属于内部命令还是外部命令就需要引入另一个命令:type

格式为:type 命令字

结果显示在下方,如果显示的为“  ***是shell的内嵌  ”,则该命令为内部命令。如type本身就属于一个内部命令。同样的,enablehelp这两个命令也是属于内部命令。

结果显示在下方,如果显示的为“  ***是/*/*/*....  ”,则该命令为外部命令。如mkdirtouch这两个命令属于外部命令。(mkdir为创建空目录命令;touch为创建空文件指令)

P.S.:cd命令既属于内部命令也属于外部命令,直接使用type命令查看时,会显示为内嵌;而当使用“enable -n cd”命令禁用内部命令后,再用“type cd”查看的时候下方会显示命令的具体路径。而有的外部命令存在但在使用时却显示未查找到,则需要检查该外部命令是否存在于环境变量PATH所包含的目录路径中,环境变量PATH是控制系统加载命令的路径,详细内容在后续章节“Shell”中阐述。

路径的分类

分为绝对路径和相对路径

分类表现形式说明示例
绝对路径写全路径表示以根目录为起点的路径/usr/local/bin/cfssl
相对路径直接使用目录名或文件名表示当前工作目录中的子目录、文件的位置xxx

       

 以一个点号“.”开头

       

表示以当前目录的上一级目录(父目录)作为起点./xxx
以两个点号“..”开头表示以当前目录的上一级目录(父目录)作为起点../xxx
以“~”形式开头表示以指定用户的宿主目录作为起点~/xxx
以“~用户名”形式开头表示以当前用户的宿主目录作为起点~用户名/xxx

文件的分类

硬链接文件和软连接文件

文件类型软链接文件硬链接文件
删除源文件后失效    仍然可用(文件占用空间与源文件相同)
使用范围适用于文件或目录仅适用于文件
保存位置与源文件可在不同的文件系统中必须与源文件在同一个文件系统(即同一个分区)中
 
与源文件的关系相当于快捷方式相当于给文件起个别名
 
inode号码inode号码不同inode号码相同

二、常用命令

1    pwd命令

[root@用户名 ~]pwd

用于显示用户当前所在的工作目录路径。在工作中我们经常不断进入到深层目录中去进行操作,而我们输入的命令行前的括号内只显示当前目录,为了不与其他文件或目录中的同名文件搞混,使用pwd命令可以直接查找到我们当前所在具体路径。

2    cd命令

[root@用户名 ~]cd 目标位置       #切换到目标位置

[root@用户名 ~]cd ~             #
[root@用户名 ~]cd               #切换到当前家目录

[root@用户名 ~]cd -             #切换到上一次cd之前的目录

用于切换目录,还是以pwd中的目录为例

切换到目标位置

切换到当前家目录

切换上一次cd之前的目录

3    ls命令

[root@192 ~]# ls 选项 目录或文件

用于显示目录中内容,包括子目录和文件相关属性信息

我们先来分析ls以长格式查看命令显示的字段表示的含义

ls -l显示文件属性一共有 7 个字段

文件类型+权限位文件硬链接数/目录的子目录数属主属组文件大小文件修改时间文件名
-rw-r--r--1rootroot04月10日14:.00txt1

其中文件类型字段开头为“-”为普通文件,开头为“d”为目录,开头为“l”为软连接文件,rwx代表权限位:r为只读(值为4),w为只写(值为2),x为可执行(值为1),通常深蓝色表示目录,白色表示不同文件,绿色表示可执行文件,黄色代表设备文件,红色代表压缩文件

ls常用选项

-l以长格式的形式显示文件/子目录的属性
-a/-A显示目录中所有的隐藏文件,-A不显示 . 和 ..
-h以人性化的方式显示文件/子目录大小(默认单位为字节)
-d查看目录本身
-R以递归的方式显示目录中所有子目录的内容
-t以时间排序显示,默认从最新到最老的方式
-r反向排序
-i显示文件/目录的 inode 号

结合通配符
“?”代表任意一个字符,有且一个字符

“*”代表任意数个字符,可以是0个或者1个或者多个

“[]”:表示可以匹配字符组中的任意一个字符[abc]、[a-f]

4    alias命令

查看别名命令

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

[root@192 ~]# alias 命令别名='命令'             #=两边不能有空格
[root@192 ~]# unalias 命令别名                  #取消别名

5    du命令

用来统计指定目录或文件所占磁盘空间大小

[root@192 ~]# du 选项 文件或目录

常用选项

选项说明
-a统计目录及其所有子目录和文件的占用大小

-h

仅统计目录本身的占用大小,不能和 -a 选项同时使用
-s以人性化的方式显示占用大小(默认单位为KB)
--max-detph=n仅统计目录中的第n层子目录的占用大小

例如查看统计目录中第1层目录占用大小

[root@192 ~]# du -h --max-detph=1 文件路径     #查看该文件路径下的第一层目录

或

[root@192 ~]# du -d 1 文件路径 | sort -n 

6    mkdir 与  touch命令

mkdir用于创建空白目录

[root@192 ~]# mkdir 选项 目录位置及名称       #创建空目录

[root@192 ~]# mkdir -p 选项 /*/*/*/*    #创建嵌套的多层目录
或
[root@192 ~]# mkdir -p 选项 * * * *     #创建多个目录
[root@192 ~]# mkdir -p 选项 {1..100}    #创建100个目录

touch用于创建空白文件或更新文件的时间标记

[root@192 ~]# touch 文件...


例:touch aa bb cc dd              #创建名为aa bb cc dd的文件
    touch {aa,bb,cc,dd}.txt     #创建txt文件
    touch {1..10}
    

7    ln命令

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

[root@192 ~]# ln -s 源文件或目录 链接文件或目标位置  #创建软链接文件

[root@192 ~]# ln 源文件或目录 链接文件或目标位置     #创建硬链接文件

8    cp命令

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

[root@192 ~]# cp 选项 源文件或目录 目标文件或目录

常用选项

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

复制多个文件或目录时,目标位置必须时目录,且目标目录必须存在

cp前加\表示使用原生cp命令

9    rm命令

删除指定的文件或目录

[root@192 ~]# rm 选项 要删除的文件或目录

常用选项

-f删除文件或目录时不进行提醒,而直接强制删除。
-i删除文件或目录时提醒用户确认。(y表示删除,n表示不删除)
-r删除目录时必须使用此选项,表示递归删除整个目录树(应谨慎使用)。

注:复制多个文件或目录时,目标位置必须是目录,且目标目录必须已存在。不要直接删除系统中已有的目录或配置文件,以避免出现意外故障。且禁止使用“  sudo rm -rf  /*  ”命令!!!!!

删除目录下文件时建议最好先切换到目录下再执行rm -rf命令

10    mv命令

将指定的文件或目录转移位置如果目标位置与源位置相同,则相当于执行重命名操作

[root@192 ~]# mv 选项 源文件或目录 目标文件或目录

rename批量修改文件名

[root@192 ~]# rename 旧字符 新字符 目标文件

例子:rename    jpg    gif   *.jpg

11    whcih

查找命令文件存放路径

12    find

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

[root@192 ~]# find 查找范围 查找条件表达式
查找类型关键字说明
按名称查找-name根据目标文件的名称进行查找,允许使用”*“及“?”通配符
按文件大小查找-size

根据目标文件的大小进行查找

一般使用“+"”-”号设置超过或小于指定的大小作为查找条件常用的容量单位包括kB(注意k是小写)、MB、GB

按文件属主查找-user根据文件是否属于目标用户进行查找
按文件类型查找-type

根据文件类型进行查找

文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等块设备文件(b):成块读取数据的设备(硬盘,内存,光驱)字符设备文件(c):按单个字符读取数据的设备(键盘,鼠标)

使用 find 命令可以实现多个查找条件      各表达式之间使用逻辑运算符
-a   表示 而且(and)
-o   表示 或者(or)

find之exec用法

-exec参数后面跟的是Linux命令,它是以分号“:”为结束标志,由于各个系统中分号会有不同的意义,因此在分号前面加上反斜杠转义符“、”{}代表前面find查找出来的文件名

find 命令匹配到了当前目录下的所有普通文件,并在-exec 选项中使用 ls-命令将它们列出

find ./ -type f -exec ls -l {} \;

find ./ -metime +/- 30  代表查找当前目录下30天之前/30天以内的文件

三、统计

查找文件的命令

在 linux 要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索:
which 查看可执行文件的位置
whereis 查看文件的位置
locate 配合数据库查看文件位置
find 实际搜寻硬盘查询文件名称

Shell是一种特殊程序

Linux命令的分类格式及使用方法

Linux常用命令

  • 查看及切换目录(pwd、cd、ls、du)
  • 创建目录和文件(mkdir、touch、In)
  • 复制、删除、移动目录和文件(cp、rm、mv)
  • 查找目录和文件(which、find)
  • 15
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值