SHELL命令详解

shell分类

shell 分为内部命令 和外部命令,一般先执行内部命令,再执行外部命令。

内部命令外部命令
集成于Shell解释器程序内部的一些特殊指令,也称为内建(Built-in)指令Linux系统中能够完成特定功能的脚本文件或二进制程序
属于Shell的一部分属于Shell解释器程序之外的命令
没有单独对应的系统文件每个外部命令对应了一个系统文件
自动载入内存,可以直接使用必须知道其位置,必须有shell加载才能执行

编辑shell命令的辅助操作

快捷键功能
Tab 键自动补齐(两次可以显示所有选项)
反斜杠“\”强制换行或转义
Ctrl+a光标移到最前
Ctrl+e光标移到最后
Ctrl+U清空至行首不包括当前光标处的 字符
Ctrl+K清空至行尾包括当前光标处的字符
Ctrl+w从当前光标删除开头
ALT+d从当前光标删除末尾
Ctrl+l清屏  或者clear
Ctrl+c取消本次命令编辑
Ctrl+s/Ctrl+q锁屏/解锁
向上下箭头回看执行过的命令

命令详解

一:获得帮助的命令

1) help  命令         查看内部命令

2)命令 --help        查看外部命令

3)man 命令       帮助手册

4) info 命令      也可以查看

二:查看,切换,显示,统计 目录或文件

2.1 pwd(print work directory) 打印当前目录

2.2 cd(change directory)切换目录

命令格式: cd 目标位置

cd 或 cd ~若不指定目标位置,切换到当前用户的宿主目录(家目录)
cd -到前一次目录
一个点号“.”开头表示以当前的工作目录作为起点
两个点号“..”开头表示以当前目录的上一级目录(父目录)作为起点
“~用户名”形式开头表示以指定用户的宿主目录(家目录)作为起点
"."开头文件表示隐藏文件

2.3 ls (list) 列出目录/文件的详细属性信息

命令格式:

ls [选项] [文件或目录… ]

选项                       说明                                                             
-l以长格式显示文件和目录列表 ll=ls -l
-a显示全部包括隐藏文件
-A显示全部文件或隐藏文件,但不包括 . 和..
-d只显示当前目录
-h友好显示文件大小
-R递归显示该目录及该目录的子目录下的所有内容s+------0
--color显示颜色
-S按从大到小排序
-i显示inode号
-t根据文件创建时间进行排序,由新到旧,新建的排在前面
-tr根据文件创建时间进行排序,由旧到新

2.32通配符    (去匹配文件名)

匹配任意一个字符
*匹配所有非隐藏的字符无论多长多短,但不匹配 "." 开头的文件,即隐藏文件
{1..10}1到10
{a..z}a b c ...z
{A..Z}A B C .....Z
[123]包含其中之一就显示,没有也无所谓(此处括号里只表示单个字符)
[0-9]匹配数字范围(0123456789),表示单个数字
[a-z]范围需要注意 (表示从aA、bB到z,不含Z),表示单个字母
[A-Z]从A到Z(只含大写)中的任意一个字母
\转义符,表示原来的意思
[[:lower:]]小写字母表示 a-z
[[:upper:]]大写字母表示 A-Z
[^zhang]匹配列表中的所有字符以外的字符
[[:digit:]]任意数字,相当于0-9

 2.4 alias 别名命令

    临时修改(关机或退出终端会自动消失)

命令格式

alias 命令别名 = '命令'    (等号前后不能有空格)
unalias 别名命令        删除别名
\加别名命令     (显示原始命令,当命令别名和系统命令冲突时,要调用原始命令)

2.5  du (disk usage) 统计目录或文件所占磁盘空间大小的命令

命令格式:      du [选项] [文件或目录… ]

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

2.6  查看硬件信息及其他系统信息

查看cpu

lscpu             cat /proc/cpuinfo

查看内存大小

使用free 或 cat /proc/meminfo

查看硬盘和分区情况

使用lsblk 或 cat /proc/partitions

 查看机器架构 architecture

arch

查看系统内核版本号、发行版本号

uname -r        cat /etc/*release

系统时间

date   d 你描述的日期     

+%F 完整日期格式

-%T 时间(24小时制)(hh:mm:ss)

三:Linux目录和文件管理:mkdir、touch、cp、mv、rm

3.1创建  

3.11 mkdir 创建文件夹

mkdir [选项] 目录位置及名称…

-p 递归创建多层目录,当上级目录不存在时,会按目录层级自动创建目录

[root@localhost opt]# mkdir a b 1 2     //创建多个目录
[root@localhost opt]# ls
a  b  1  2
[root@localhost opt]# mkdir -p aaa/bbb/cccc   //递归创建目录
[root@localhost opt]# ls
a  aaa  b  1  2

3.12 创建文件 touch

touch命令格式:

touch 文件名称
touch 文件若已存在,不会破坏已有文件,会更新时间

每个文件有三个时间戳:

access time 访问时间,atime,读取文件内容
modify time 修改时间,mtime,改变文件内容(数据)
change time 改变时间,ctime,元数据发生改变(文件大小、权限等属性)

 3.13创建链接文件 ln

   1) 硬链接

 硬链接(hard link, 也称链接 )就是一个文件的一个或多个文件名, 把文件名和计算机文件系统使用的节点号链接起来。inode号相同

注意点

硬链接只能对已存在的文件进行创建 。
不支持给目录创建硬链接;
不支持跨分区创建硬链接。
硬链接文件不占用存储空间。
修改源文件或者目标文件,对应另外一个文件也会发生相应修改。
删除源文件或者目标文件,对另外一个文件没有影响。

硬链接是通过索引节点进行的链接。在Linux中,多个文件指向同一个索引节点是允许的,像这样的链接就是硬链接。硬链接只能在同一文件系统中的文件之间进行链接,不能对目录进行创建。如果删除硬链接对应的源文件,则硬链接文件仍然存在,而且保存了原有的内容,这样可以起到防止因为误操作而错误删除文件的作用。由于硬链接是有着相同 inode 号仅文件名不同的文件,因此,删除一个硬链接文件并不影响其他有相同 inode 号的文件。

2) 软链接
软链接又叫符号链接,这个文件包含了另一个文件的路径名。 可以是任意文件或目录,可以链接不同文件系统的文件。inode号不同

注意点

可对不存在的文件或目录创建软链接,可交叉文件系统。
删除源文件无法访问,再新建同名文件后依然可以访问

软链接(也叫符号链接)与硬链接不同,文件用户数据块中存放的内容是另一文件的路径名的指向。软链接就是一个普通文件,只是数据块内容有点特殊。软链接可对文件或目录创建。

软链接主要应用于以下两个方面:一是方便管理,例如可以把一个复杂路径下的文件链接到一个简单路径下方便用户访问;另一方面就是解决文件系统磁盘空间不足的情况。例如某个文件文件系统空间已经用完了,但是现在必须在该文件系统下创建一个新的目录并存储大量的文件,那么可以把另一个剩余空间较多的文件系统中的目录链接到该文件系统中,这样就可以很好的解决空间不足问题。删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接就变成了死链接。

ln命令格式:

ln 源文件 目标文件:创建硬链接文件
ln -s 源文件 目标文件:创建软连接文件

 

3.2 复制文件或文件夹

cp命令格式

  • cp [选项]… 源文件 目标 相当改名复制
  • cp [选项]... 源文件... 目录 多个源文件只能复制到文件夹

[root@localhost ky27]# cp 0.tex /opt/abc.tex    

#复制当前目录中的0.tex文件到opt文件下,并改名为abc.tex
[root@localhost ky27]# cd ..
[root@localhost opt]# ls
aaa.tex  abc.tex  httpd-2.4.29.tar.bz2    ky27  ky28  ky2828.tar.gzip  ky29
[root@localhost opt]# 

[root@localhost ky27]# cp 0.tex /opt/    #复制当前目录中的0.tex文件到opt文件下  名字不

[root@localhost ky27]# cp 0.tex 1.tex /opt/        #复制当前目录下面的两个文件到opt目录下
[root@localhost ky27]# cd ..
[root@localhost opt]# ls
0.tex  1.tex  aaa.tex  abc.tex    httpd-2.4.29.tar.bz2  ky27  ky28  ky2828.tar.gzip  ky29
[root@localhost opt]# 

 

选项说明

-f覆盖目标同名文件或目录时不进行提醒,直接强制复制
-i覆盖目标同名文件或目录时提醒用户确认
-p复制时保持源文件的权限、属主及时间标记等属性不变(但不保留软链接文件)
-r复制目录时必须使用此选项,表示递归复制所有文件及子目录
-a完整保留所有的信息(保留软链接属性)
-v可视化
-u相当于增备,差异备份(只针对文件夹
-b当目标文件存在时,先进行备份再覆盖(只保留最近)
-s复制成为符号连结文件 (symbolic link),亦即”快捷方式“档案; 作用为创建新的符号链接文件,指向原符号链接文件,能保证链接文件可以使用

3.3 移动mv

mv命令格式:

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

选项说明
-f强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖;
-i交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项)
-n如果目标文件已经存在,则不会覆盖移动,而且不询问用户
-v显示文件或目录的移动过程  可视化

[root@localhost opt]# mv bbb aaa      //将目录bbb改名为aaa
[root@localhost opt]# mv aaa /opt/ky27     //将目录aaa移动到/opt/ky27目录下

3.4 删除rm

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

选项说明
-f删除前不作询问,直接强制删除
-i删除前逐一询问确认
-r递归删除,将指定目录下的所有文件和子目录一并删除

四:Linux查找和压缩文件:find、which、whereis、tar

4.1 find

命令的特点:

1精确查找
2实时查找
3支持查找条件很多
4各表达式之间使用逻辑运算符, “-a”表示而且(and),“-o”表示 或者(or)

格式

find [查找路径] [OPTION1] [查找条件1] [OPTION2] [查找条件2]...... [处理动作]

-name根据目标文件的名称进行查找,允许使用“*”及“?”通配符; 如果名字使用通配符,需要加” “来查询
-size根据目标文件的大小进行查找 一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件 常用的容量单位包括 kB(注意 k 是小写)、MB、GB

-user/-group

根据文件是否属于目标用户进行查找
-nouser/-nogroup查找无属主/属组的文件
-type根据文件的类型进行查找 文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等
-inum根据文件inode号查找

-perm

按文件权限查找
-三种时间-atime、-mtime、-ctime
  • -size 10k :表示9k到10k,包括10k、不包括9k,即(9,10]。
  • -size -10k :表示9k以内,包括9k,即 [0,9]。
  • -size +10k :表示10k以上,不包括10k,即(10,+∞)。
  • find -size 1G:查找的是从0G到1G,不包括0G,即(0,1]。
  • find -size 2G:查找的是从1G到2G,不包括1G,即(1,2]。
  • find -size 1024M:查找的是从1023M到1024M,不包括1023M,即(1023,1024]

找到文件并删除的三种方式

 find -name "*.img" -delete          

  find -name "*.img" -exec rm -rf {} \;  

find -name "*.img" | xargs rm -rf

Linux命令之查找文件locate

locate命令主要是用来查找文件的,但它的速度比find命令快很多。因为它不是按路径进行搜索的,而是去搜索一个数据库,即/var/lib/mlocate/mlocate.db。这个数据库中含有本地所有文件信息,Linux系统自动创建这个数据库,并且每天自动更新一次。

但注意,我们在使用locate命令搜索文件时可能搜索到已删除或者搜索不到新创建或上传的文件,这是因为数据库文件没有被更新。所以每次在执行locate命令之前,都需要先执行updatedb命令更新数据库文件,即使是在脚本中也需要先执行updatedb命令更新数据库文件再执行locate命令查找文件。

注意,locate命令并不是在系统中一定会有的,可能会需要安装,执行locate -V命令查看系统中是否安装有locate命令。
 

updatedb的配置文件/etc/updatedb.conf
/ect/updatedb.conf是updatedb命令的配置文件,配置了一些数据库更新信息,我们可以在该文件中配置需要排除检索的文件。

使用cat /etc/updatedb.conf命令查看配置文件内容如下:

关于/etc/updatedb.conf文件的说明如下:

选项                                     说明
PRUNE_BIND_MOUNTS   表示是否进行限制搜索
PRUNEFS                          指要排除的文件系统类型,即列出的文件类型不会被检索
PRUNENAMES                  指要对哪些后缀的文件排除检索,即列出的带有这些的文件不会被检索
PRUNEPATHS                指要排除检索的路径,即列出路径下的文件和子文件夹都不会被检索,即使是updatedb之后也无法找到
 

4.2 which

which 用来查看命令的位置。 在PATH变量指定的路径中,搜索某个系统命令的位置 

which 命令/程序名

4.3 whereis

whereis 用来查找命令的具体位置。可以查看到二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息

4.4 压缩文件  gzip和bzip2

相同点:
只能压缩文件 , 不能压缩目录
默认压缩后会删除源文件。(bzip2可以使用-k保留源文件)

区别:
gzip比bzip2的压缩速度快,而bzip2的压缩率高于gzip。

压缩:
gzip  [-9]  文件名…
bzip2 [-9]  文件名...
-1~9 指定压缩级别, 数字越大压缩级别越高 。-1最快压缩,-9最大压缩 。

解压缩:
gzip -d .gz格式的压缩文件;
bzip2 -d .bz2格式的压缩文件

4.5 归档tar 文件夹

命令格式:

tar [选项] ... 归档文件名(压缩包名字) 源文件或目录 tar [选项] ... 归档文件名 [-C 目标目录]

  • -c:创建(Create).tar 格式的包文件
  • -x:解开.tar 格式的包文件
  • -C:解压时指定释放的目标文件夹 指定目录
  • -f:表示使用归档文件(一般都要带上表示使用tar)
  • -v:输出详细信息(Verbose)
  • -t:列出归档内容
  • -j:调用 bzip2 程序进行压缩或解压
  • -z:调用 gzip 程序进行压缩或解压

[root@localhost opt]# tar -zcvf vm.tar.gz f1 f2 f3    

 //将三个文件归档后调用gzip程序压缩成vm.tar.gz

[root@localhost opt]# tar -zxvf vm.tar.gz -C /opt  

  //将vm.tar.gz文件解压缩到/opt目录下

五:查看文件内容命令:cat、more、less、head、tail、grep、wc

5.1 cat命令

cat( 英文全拼:concatenate )命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。

格式:  cat [选项] 文件名

选项效果
-n显示行号包括空行
-b跳过空白行编号
-s将所有的连续的多个空行替换为一个空行(压缩成一个空行
-A显示隐藏字符

[root@localhost ky27]# cat /etc/centos-release   //查看系统内核版本
[root@localhost ky27]# cat /proc/version        //查看系统内核版本

tar  倒叙显示

5.2 分页查看文件内容——more命令

more [选项] 文件名

5.3 分页查看文件内容——less命令

less [选项] 文件名

5.4 查看头部和尾部内容——head/tail命令

命令格式:

head -n <行数> 文件名 (不加行数默认开头十行)

tail -n<行数> 文件名 (不加行数默认结尾十行)

tail -f 文件名:实时跟踪最后十行

通过管道符,head和tail结合使用

[root@localhost ~]# ifconfig |head -2|tail -1   //只看第二行

 5.5  检索、过滤文件内容——grep命令

grep(global regular expression print,全局正则表达式输出),用于查找文件里符合条件的字符串。

grep [选项]… 查找条件 目标文件

选项作用
-i查找时忽略大小写
-v反向查找,输出与查找条件不相符的行
-o只显示匹配项
-w精确匹配。例如-w local,那么localhost不会被匹配,只精确匹配local
-f对比两个文件的相同行
-l列出文件内容符合指定样式的文件名称
-R在目录内递归查找
-n显示匹配行及行号
-e实现可多个查找条件的匹配,逻辑or(或)关系
-A 5显示匹配行和后5行的内容
-B 5显示匹配行和前5行的内容

基本格式

  • 要查找的字符串以双引号括起来,单引号也可以
  • “^……”表示以……开头,“……$”表示以……结尾
  • “^$”表示空行

5.6 统计文件WC

统计列数,wc本身就是参数

  • -l:统计行数
  • -w:统计单词个数
  • -c:统计字节数

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值