目录

一、前言

二、关机与重启命令

三、快捷键

四、目录树结构

颜色表示的文件类型

五、绝对路径与相对路径

5.1、绝对路径

5.2、相对路径

5.3、cd

六、Linux命令基本操作

6.1、增

6.2、删

6.3、改

6.4、查

七、文件查找与压缩

7.1、find 查找与搜索文件

7.2、tar打包和备份的归档工具

八、扩展补充

8.1Linux下获取帮助

8.2、echo输出字符串

8.3硬件信息及其他系统信息


一、前言

本章开始,我们就正式进入到Linux的学习当中,进入到云计算运维的学习重要阶段,思维导图如下所示:

二、关机与重启命令

命令行解释
shutdown -h默认一分钟后关闭虚拟机
shutdown -h 3030分钟后关闭虚拟机
shutdown -h now立刻关闭虚拟机
shutdown -c取消关机
shutdown -r默认一分钟后重启虚拟机
shutdown -r 3030分钟后重启虚拟机
shutdown -r now立即重启虚拟机

三、快捷键

快捷键解释
windows+A/S显示所有应用程序
Esc返回
快捷键解释
ctrl+L

四、目录树结构

颜色表示的文件类型

  • 黑色——TXT

  • 蓝色——文件夹

  • 天蓝色——连接文件(快捷方式)

  • 黄色——块设备文件

  • 绿色——可执行文件

  • 红色——压缩包

目录功能缩写备注
/bin ->/usr/bin普通用户使用的命令Binary(二进制)
/boot系统内核,引导程序相关文件
/dev设备文件Device(设备)
/etc配置文件
/home普通用户的默认家目录
/lib ->/usr/lib库文件
/lib64库文件
/media挂载目录。系统建议用来挂载媒体设备,如软盘和光盘
/mnt挂载目录。如u盘,移动硬盘和其他操作系统的分区
/opt第三方安装的软件保存位置
/proc虚拟的文件系统(反映内核信息)
/root管理员root的家目录
/sbin ->/usr/sbin管理员使用的命令Super User
/sys文件系统sysfs
/tmp存放临时文件
/var日志文件

五、绝对路径与相对路径

5.1、绝对路径

1、唯一一个绝对描述文件所在路径的方式

2、“/”根目录是Linux操作系统最顶级的目录

5.2、相对路径

1、相对于当前所在路径

5.3、cd

(change directory)改变目录解释
cd切换到家目录
cd ./当前路径
cd ../上级路径
cd –切换到上次工作路径
cd ~切换到root下的家目录
pwd(print working directory)打印当前工作路径

六、Linux命令基本操作

Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核

linux默认使用的shell是bash

文件位置:/bin/bash

命令 【可选项】 参数

【root@localhost ~!】#ls -1 /root

命令:整条shell命令的主体

选项:执行的功能,通常以-,–

参数:执行的对象

6.1、增

6.1.1、mkdir创建目录

make directory创建目录解释
mkdir dir在当前目录下创建dir1
mkdir /dir1在根目录下创建dir1
mkdir ./dir1在当前目录下创建dir1
mkdir ../dir1在上一个目录下创建dir1
mkdir -p递归创建文件夹

示例:

[root@localhost kervin24]# mkdir a b c d  创立文件夹 a b c d[root@localhost kervin24]# lsa  b  c  d--------------------------------------------------------------------------------------[root@localhost kervin24]# mkdir -p aaa/bbb/ccc  递归创建文件夹及子目录[root@localhost kervin24]# lsa  aaa  b  c  d--------------------------------------------------------------------------------------[root@localhost ~]# yum install tree -y  tree    树命令安装[root@localhost kervin24]# tree.├── a├── aaa│ └── bbb│   └── ccc├── b├── c└── d7 directories, 0 files

6.1.2、touch创建空文件

  • Linux下文件的命名规则

1、文件名严格区分大小写 file FILE

2、文件名不能包含特殊符号,如/ *

3、文件名最多达到255个字符

文件的三个时间戳

  • access time 访问时间

  • modify time 更改时间

  • change time 改变时间

创建一个新的空文件

touch命令(创建修改文件)解释
touch file1一次创建/二次修改文件file1
stat file1查看文件file1详细信息
touch -a修改访问时间(access)
touch -m修改更改时间(modify)
touch -d修改更改时间与访问时间

6.1.3、 ln硬连接与软连接

软连接 ln [-s] 源文件或目录… 链接文件或目标位置

对比项硬连接软连接
对比源文件同一个文件不是同一个文件(快捷方式)
inode相同不同
连接数创建新的硬链接,链接数会增加,删除硬链接,链接数减少删除新建不会改变
文件夹不支持支持
删除源文件只是链接数减一,但链接文件的访问不受影响无法访问连接文件
文件大小和源文件相同源文件的路径的长度

示例:

给/etc/sysconfig/network-scripts/ifcfg-ens33 这个文件建立一个软连接到 /opt目录下

ln -s /etc/sysconfig/network-scripts/ifcfg-ens33  /opt/soft

创建/etc/local文件的软连接到/usr/sbin

ln -s /etc/local /usr/sbin

6.2、删

6.2.1、rm删除

统计目录及文件的空间-Disk Usage解释
du -aall,统计磁盘空间占用时包含的所有文件
du -h人性化方式
du -s只统计每个参数所占用空间总的大小(summary),不统计子目录

6.3、改

6.3.1、mv移改文件

  • 移动文件用法(不同路径下);

    mv /需要移动的文件 /移动到新的路径下

  • 重命名文件用法(相同路径下);

    mv /原来文件的名字 /新文件的名字

示例:

写出把在自己家目录中的abc.txt文件移动到/opt目录中,并把文件名修改成123.txt的命令mv ~/abc.txt /opt/123.txt     

6.3.2、rename 批量改文件名

rename /旧字符 /新字符

示例:

>[root@localhost kervin24]# lsa   c    fc.log  ff.log  fi.log  fl.log  fo.log  fr.log  fu.log  fx.logaaa  d    fd.log  fg.log  fj.log  fm.log  fp.log  fs.log  fv.log  fy.logb   fb.log  fe.log  fh.log  fk.log  fn.log  fq.log  ft.log  fw.log  fz.log[root@localhost kervin24]# rename log txt *   把所有log文件改为txt文件 ------------------------------------------------------------------------------[root@localhost kervin24]# lsa   c    fc.txt  ff.txt  fi.txt  fl.txt  fo.txt  fr.txt  fu.txt  fx.txtaaa  d    fd.txt  fg.txt  fj.txt  fm.txt  fp.txt  fs.txt  fv.txt  fy.txtb   fb.txt  fe.txt  fh.txt  fk.txt  fn.txt  fq.txt  ft.txt  fw.txt  fz.txt

6.3.3、cp复制文件或目录

cp /源文件 /目标 相当改名复制

cp /源文件 /文件夹 多个源文件只能复制到文件夹

cp命令–(copy)(拷贝文件)解释
cp -r递归拷贝目录(复制包括所有子文件,必须使用)
cp -v显示拷贝过程信息
cp -p文件属性信息一起拷贝
cp -a递归拷贝文件,包括目录及文件属性信息 = -dpr (-d建立软链接)

6.4、查

6.4.1、file查看类型

  • 常见文件类型

文件类型描述
字符设备(c)character,所有输入输出的设备
块设备(b)block,所有存储设备称之为块设备文件,硬盘
软连接文件(l)类似与windows下的快捷方式
目录文件(d)相当于windows下的的文件夹
普通文件(f或-)类似windows下的记事本、word等,可以使用相关命令进行编辑,查看文件内容
管道文件(p)pipe,管道文件
套接字文件(s)socket,套接字文件
  • 用file命令来判断文件类型

选项解释
-l以常格式显示文件和目录列表

示例:

[root@localhost /]# file etc  etc: directory-----------------------------------------------------------------------------------------[root@localhost /]# file -1 etcfile: invalid option -- '1'Usage: file [-bchikLlNnprsvz0] [--apple] [--mime-encoding] [--mime-type]       [-e testname] [-F separator] [-f namefile] [-m magicfiles] file ...    file -C [-m magicfiles]    file [--help]

6.4.2、ls查看内容

(list)列出文件内容解释
ls -aall,显示全部包括隐藏文件
ls -A显示所有 不包括. ..的隐藏文件
ls -d只显示目录本身信息
ls -hhuman,以人性化方式列出(友好显示磁盘大小)
ls -iinode,显示文件索引节点号
ls -l 等于 ll显示常格式属性
ls -r反向排序
ls -R递归列出目录及子目录
ls -S按照从大到小排序
ls -t以时间排序(由新到旧)

示例:

[root@localhost kervin24]# ls -a  .  ..  a  aaa  b  c  d[root@localhost kervin24]# ls -Aa  aaa  b  c  d[root@localhost kervin24]# ll总用量 0drwxr-xr-x. 2 root root  6 2月  18 21:18 adrwxr-xr-x. 3 root root 17 2月  18 21:19 aaadrwxr-xr-x. 2 root root  6 2月  18 21:18 bdrwxr-xr-x. 2 root root  6 2月  18 21:18 cdrwxr-xr-x. 2 root root  6 2月  18 21:18 d-----------------------------------------------------------------------------------------

6.4.2.1、通配符

符号效果
匹配一个字符 f?.txt
*匹配全部字符
{1..10}1到10
{a..z}a b c …z
{A..Z}A B C …..Z
[123]取其中之一有就显示没有也无所谓
[a-z]范围从aAbB…..z
[0-9]匹配数字范围(0123456789)
\转义符,表示原来的意思
[[:lower:]]小写字母表示 a-z
[[:upper:]]大写字母表示 A-Z
[zhou]匹配列表中的所有字符以外的字符
[[:digit:]]任意数字,相当于0-9

示例:

[root@localhost ~]# cd /etc[root@localhost etc]# ls -a *  显示所有文件(包含隐藏文件)-----------------------------------------------------------------------------------------[root@localhost /]# ls .*    显示隐藏文件也包括.. 的上层目录    .:bin  etc  lib64  mpt  root  srv  tmpboot  home  media  opt  run  sys  usrdev  lib  mnt   proc  sbin  test  var​..:bin  etc  lib64  mpt  root  srv  tmpboot  home  media  opt  run  sys  usrdev  lib  mnt   proc  sbin  test  var-----------------------------------------------------------------------------------------[root@localhost /]# touch f{a..z}.log       创建f{a..z}.log文件[root@localhost /]# lsbin   fc.log  fi.log  fo.log  fu.log  home  opt  sysboot   fd.log  fj.log  fp.log  fv.log  lib   proc  testdev   fe.log  fk.log  fq.log  fw.log  lib64  root  tmpetc   ff.log  fl.log  fr.log  fx.log  media  run  usrfa.log  fg.log  fm.log  fs.log  fy.log  mnt   sbin  varfb.log  fh.log  fn.log  ft.log  fz.log  mpt   srv[root@localhost /]# touch f{A..Z}.log[root@localhost /]# ls              创建f{A..Z}.log文件bin   fd.log  fi.log  fn.log  fs.log  fx.log  mnt  tmpboot   fD.log  fI.log  fN.log  fS.log  fX.log  mpt  usrdev   fe.log  fj.log  fo.log  ft.log  fy.log  opt  varetc   fE.log  fJ.log  fO.log  fT.log  fY.log  procfa.log  ff.log  fk.log  fp.log  fu.log  fz.log  rootfA.log  fF.log  fK.log  fP.log  fU.log  fZ.log  runfb.log  fg.log  fl.log  fq.log  fv.log  home   sbinfB.log  fG.log  fL.log  fQ.log  fV.log  lib   srvfc.log  fh.log  fm.log  fr.log  fw.log  lib64  sysfC.log  fH.log  fM.log  fR.log  fW.log  media  test-----------------------------------------------------------------------------------------[root@localhost /]# ls f[zhou].log     显示含义z,h,o,u四个字母fh.log  fo.log  fu.log  fz.log[root@localhost /]# ls f[x-z].log      显示xXyYzfx.log  fX.log  fy.log  fY.log  fz.log[root@localhost /]# ls f[a-c].log      显示aAbBcfa.log  fA.log  fb.log  fB.log  fc.log[root@localhost /]# ls f{a..c}.log     显示小写从a到cfa.log  fb.log  fc.log-----------------------------------------------------------------------------------------[root@localhost /]# ls f[[:lower:]].log   显示小写字母fa.log  fe.log  fi.log  fm.log  fq.log  fu.log  fy.logfb.log  ff.log  fj.log  fn.log  fr.log  fv.log  fz.logfc.log  fg.log  fk.log  fo.log  fs.log  fw.logfd.log  fh.log  fl.log  fp.log  ft.log  fx.log[root@localhost /]# ls f[[:upper:]].log   显示大写字母fA.log  fE.log  fI.log  fM.log  fQ.log  fU.log  fY.logfB.log  fF.log  fJ.log  fN.log  fR.log  fV.log  fZ.logfC.log  fG.log  fK.log  fO.log  fS.log  fW.logfD.log  fH.log  fL.log  fP.log  fT.log  fX.log-----------------------------------------------------------------------------------------

显示/etc目录下以m,n,r,p开头的文件或目录列表

ls /etc/|grep ^[mnrp]
cd /ectls -d [mnrp]*.conf

显示/etc目录下所有以p开头,以非数字结尾的文件或目录

cd /etcls -d p*[^0-9]

显示/etc下非字母开头的文件或目录

ls /etc|grep ^[^[:alpha:]]ls /etc|grep [^[:alpha:]]*

6.4.2.2、alias设置别名

设置指令的别名

alias 别名=原来名字

unalias 别名 (删除)

补充:绝对路径>别名>内部>hash>外部命令

示例:

定义别名命令backup,将/boot文件夹下的文件备份至/data目录中

alias backup='cp -arv /boot/* /data/'

6.4.4、文本命令

6.4.4.1、cat查看内容

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

示例:

6.4.4.2、more与less 查看大内容

区别: more只支持向前浏览,less命令允许向前或向后浏览文件

less [选项] 文件名

  • 可以使用/ 查找 n向下 N向上查找

  • Page Up 向上翻页,Page Down 向下翻页

6.4.4.3、head与tail

参数解释
head -n文件名 (不加默认开头十行)
tail -n文件名 (不加默认结尾十行)
tail -f文件名 实时跟踪最后十行

示例:

[root@localhost test]# head -n -3 3.txt  #-3 不显示最后3行[root@localhost ky15]# tail -n -3 3.txt  #-3 只显示最后三行[root@localhost ky15]# head -n +3 3.txt  #就只显示前三行[root@localhost ky15]# tail -n +3 3.txt  #从第三行开始

6.4.4.4、grep文本搜索工具

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

基本格式

  • 要查找的字符串以双引号括起来单引号也可以

  • “^……”表示以……开头,“……$”表示以……结尾

  • “^$”表示空行

示例:

1、显示/etc目录下以m,n,r,p开头的文件或目录列表

ls /etc/|grep ^[mnrp]

2、显示/etc下非字母开头的文件或目录

ls /etc|grep ^[^[:alpha:]]ls /etc|grep [^[:alpha:]]*

6.4.3、du查看空间

统计目录及文件的空间-Disk Usage解释
du -aall,统计磁盘空间占用时包含的所有文件
du -h人性化方式
du -s只统计每个参数所占用空间总的大小(summary),不统计子目录
du -d打印目录(或文件,带 –all)的总计

示例:

du -d 1 /var   写出查看 /var 目录中第一层子目录占用磁盘空间大小的命令

七、文件查找与压缩

7.1、find 查找与搜索文件

命令查找

which  命令 :找出命令的绝对路径whereis命令:找出命令的路径以及文档手册信息

find 路径 选项 关键字 动作

选项含义
-name按照文件名查找文件
-type按照文件类型来查找
-size按照文件大小来查找
-user按照是否属于目标用户来查找
-ctime按照文件创建时间来查找
-perm按照文件权限来查找
-maxdepthlevel最大搜索目录深度
-mindepthlevel最小搜索目录深度
常见动作说明备注
-exec对查找到的文件直接执行该参数后的shell命令\ ; 结尾
-ok对查找到的文件询问时执行该参数后的shell命令\ ; 结尾
-delete删除查找到的文件
-ls列出查找到的文件
-print打印出查找到的文件(默认选项)

示例:

[root@test1 opt]# find /etc/ -name passwd   #查找名字叫 passwd的文件[root@test1 opt]# find /etc/ -name *.conf   #查找所有.conf 结尾的 -----------------------------------------------------------------------------------------[root@test1 opt]# find /mnt -user root    #查找用户为root的用户-----------------------------------------------------------------------------------------[root@test1 opt]# find -size 1k        #查找文件大小0.1字节 到 1k[root@localhost boot]# find ./ -name "vm*"  #查找当前路径下vm开头的[root@localhost boot]# find /boot/ -size -10M -a -name "*img"  #查找并显示小于10M的img文件[root@localhost etc]# find /etc/ -maxdepth 2 -mindepth 2  #只看第二级目录[root@localhost opt]# find /boot -d     #查找并显示文件  -d只显示目录[root@localhost opt]# find /home -user zhangsan -ls  #找/home 下属于zhangsan的文件并列出属性[root@localhost opt]# useradd hehe      #创建用户 hehe[root@localhost opt]# userdel hehe      #删除用户 hehe[root@localhost opt]# find /home/ -nouser  #找home下的无主文件夹-----------------------------------------------------------------------------------------#或与且的优先级                #and>or  #wc  统计  -l(line)统计行数[root@localhost opt]# find /etc/ -type d -o -type l |wc -l1008[root@localhost opt]# find /etc/ -type d -o -type l -ls |wc -l1008[root@localhost opt]# find /etc/ -type d -o -type l -a -ls |wc -l274[root@localhost opt]# find /etc/ \( -type d -o -type l \) -a -ls |wc -l1008-----------------------------------------------------------------------------------------[root@localhost opt]# find -size 1G     #查找1G的文件会把所有都显示出来-----------------------------------------------------------------------------------------#按大小查找新建两个文件 [root@localhost opt]# dd if=/dev/zero of=99.img bs=99M count=1[root@localhost opt]# dd if=/dev/zero of=100.img bs=100M count=1[root@localhost opt]# ls100.img  99.img-----------------------------------------------------------------------------------------[root@localhost opt]# echo >>99.img     #输出追加重定向-----------------------------------------------------------------------------------------[root@localhost opt]# find /opt/ -size 100M  查找(99-100]范围文件1024M代表(1023-1024]M1G表示(0-1]G-size  10k  表示(9-10]k-size -10k  表示10k-----------------------------------------------------------------------------------------#权限查找 -perm   # 4-r 2-w 1-x  0-无权限 [root@localhost opt]# find -perm 644   #rw-r--r-- (420400400) 所有者—同组—其他用户 -----------------------------------------------------------------------------------------[root@localhost opt]# find -name "*.img" -delete   #找到并删除-----------------------------------------------------------------------------------------[root@localhost opt]# find -name "*.txt"  -ok mv {} /mnt \;   询问执行[root@localhost opt]# find -name "*.txt"  -exec mv {} /mnt \;  直接执行​写出查找 /var/log 目录下的文件名以 “.log” 结尾的所有普通文件,并移动到/mnt目录下[root@localhost opt]# find /var/log -type f -name *.log -exec mv {} /mnt \;

7.1.1、xargs参数替换

  • 用于不支持管道|来传递参数的命令

  • 常与find经行组合

find |xargs
参数解释
-n多行输出

示例:

-----------------------------------------------------------------------------------------[root@localhost opt]# seq 3   #seq打印数字序列123[root@localhost opt]# seq 10 |xargs    #seq打印数字序列并取消换行1 2 3 [root@localhost opt]# seq 3 |xargs -n1   #-n1  多行输出,行为1123-----------------------------------------------------------------------------------------[root@localhost opt]# touch {1..10}.txt  #创建1--10.txt[root@localhost opt]# ls *.txt |xargs rm  #显示全部结果然后删除-----------------------------------------------------------------------------------------

7.2、tar打包和备份的归档工具

压缩工具说明解压缩工具
zip可以压缩多个文件或目录unzip
gzip压缩单个文件,压缩率<bzip2,cpu开销相对低
bzip2压缩单个文件,压缩率>gzip,cpu开销相对高

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

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

示例:

tar -jxvf ~/abc123.tar.bz2 -C /opt 把家目录中的abc123.tar.bz2  文件解压缩到 /opt 目录中的命令tar -zcvf ~/abc123.tar.gz abc.txt 123把家目录中的abc.txt和123.txt文件压缩成abc123.tar.gz的命令
tar -jcvf  .tar.bz2       创建一个bzip2格式的压缩包tar -jxvf  .tar.bz2       解压一个bzip2格式的压缩包tar -zcvf  .tar.gz        创建一个gzip格式的压缩包tar -zxvf  .tar.gz        解压一个gzip2格式的压缩包

八、扩展补充

8.1Linux下获取帮助

1、help命令

判断命令: type 命令内部命令: help 命令外部命令: 命令 ——help

2、man命令

man man

3、info命令

示例

[root@localhost /]#info ls

8.2、echo输出字符串

换行打印输入字符解释
– n不换行显示
– e出现转义字符进行解释处理
转义字符
\b删除前一个字符
\n换行
\t制表符

示例:

[root@localhost /]# echo -n "1 2 3"   不换行显示1 2 3[root@localhost /]# -----------------------------------------------------------------------------------------[root@localhost /]# echo -e "1 2\b 3"  -e进行解释处理后面\b ,删除前一个字符21  3-----------------------------------------------------------------------------------------[root@localhost /]# echo -e "1 2\t 3"  -e进行解释处理后面\t,进行4位空格1 2  3

8.3硬件信息及其他系统信息

8.3.1 查看内核版本

[root@localhost /]# uname -r  3.10.0-693.el7.x86_64

8.3.2、查看cpu

[root@localhost /]# lscpu
[root@localhost /]# cat /proc/cpuinfo 

8.3.3、查看内存信息

[root@localhost /]# cat /proc/meminfo
[root@localhost ~]# free              total        used        free      shared  buff/cache   availableMem:        4162268      678476     2784552        9636      699240     3172304Swap:       4194300           0     4194300

8.3.4、改主机名

[root@localhost /]#hostname kervin24  关机失效

8.3.5、列出网卡信息

ens33:第一张网卡lo:回环测试接口 永远为127.0.0.1 代表自己virbr0:虚拟网桥-----------------------------------------------------------------------------------------[root@localhost /]# ifconfig   显示或设置网络设备 (network interfances configuring)-----------------------------------------------------------------------------------------//网卡信息ens33: flags=4163  mtu 1500        inet 192.168.96.8  netmask 255.255.255.0  broadcast 192.168.96.255        inet6 fe80::9046:25cf:c594:3523  prefixlen 64  scopeid 0x20        ether 00:0c:29:ef:d0:e3  txqueuelen 1000  (Ethernet)        RX packets 101908  bytes 139898767 (133.4 MiB)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 45537  bytes 2764493 (2.6 MiB)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0        lo: flags=73  mtu 65536        inet 127.0.0.1  netmask 255.0.0.0        inet6 ::1  prefixlen 128  scopeid 0x10        loop  txqueuelen 1  (Local Loopback)        RX packets 36  bytes 3060 (2.9 KiB)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 36  bytes 3060 (2.9 KiB)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0virbr0: flags=4099  mtu 1500        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255        ether 52:54:00:2f:81:cd  txqueuelen 1000  (Ethernet)        RX packets 0  bytes 0 (0.0 B)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 0  bytes 0 (0.0 B)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0