一、前言
本章开始,我们就正式进入到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在当前目录下创建dir1mkdir /dir1在根目录下创建dir1mkdir ./dir1在当前目录下创建dir1mkdir ../dir1在上一个目录下创建dir1mkdir -p递归创建文件夹
示例:
[root@localhost kervin24]# mkdir a b c d 创立文件夹 a b c d
[root@localhost kervin24]# ls
a b c d
--------------------------------------------------------------------------------------
[root@localhost kervin24]# mkdir -p aaa/bbb/ccc 递归创建文件夹及子目录
[root@localhost kervin24]# ls
a aaa b c d
--------------------------------------------------------------------------------------
[root@localhost ~]# yum install tree -y tree 树命令安装
[root@localhost kervin24]# tree
.
├── a
├── aaa
│ └── bbb
│ └── ccc
├── b
├── c
└── d
7 directories, 0 files</span></span>
6.1.2、touch创建空文件
- Linux下文件的命名规则
1、文件名严格区分大小写 file FILE
2、文件名不能包含特殊符号,如/ *
3、文件名最多达到255个字符
文件的三个时间戳
- access time 访问时间
- modify time 更改时间
- change time 改变时间
创建一个新的空文件
touch命令(创建修改文件)解释touch file1一次创建/二次修改文件file1stat 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]# ls
a c fc.log ff.log fi.log fl.log fo.log fr.log fu.log fx.log
aaa d fd.log fg.log fj.log fm.log fp.log fs.log fv.log fy.log
b 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]# ls
a c fc.txt ff.txt fi.txt fl.txt fo.txt fr.txt fu.txt fx.txt
aaa d fd.txt fg.txt fj.txt fm.txt fp.txt fs.txt fv.txt fy.txt
b 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 etc
file: 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 -A
a aaa b c d
[root@localhost kervin24]# ll
总用量 0
drwxr-xr-x. 2 root root 6 2月 18 21:18 a
drwxr-xr-x. 3 root root 17 2月 18 21:19 aaa
drwxr-xr-x. 2 root root 6 2月 18 21:18 b
drwxr-xr-x. 2 root root 6 2月 18 21:18 c
drwxr-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 tmp
boot home media opt run sys usr
dev lib mnt proc sbin test var
..:
bin etc lib64 mpt root srv tmp
boot home media opt run sys usr
dev lib mnt proc sbin test var
-----------------------------------------------------------------------------------------
[root@localhost /]# touch f{a..z}.log 创建f{a..z}.log文件
[root@localhost /]# ls
bin fc.log fi.log fo.log fu.log home opt sys
boot fd.log fj.log fp.log fv.log lib proc test
dev fe.log fk.log fq.log fw.log lib64 root tmp
etc ff.log fl.log fr.log fx.log media run usr
fa.log fg.log fm.log fs.log fy.log mnt sbin var
fb.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 tmp
boot fD.log fI.log fN.log fS.log fX.log mpt usr
dev fe.log fj.log fo.log ft.log fy.log opt var
etc fE.log fJ.log fO.log fT.log fY.log proc
fa.log ff.log fk.log fp.log fu.log fz.log root
fA.log fF.log fK.log fP.log fU.log fZ.log run
fb.log fg.log fl.log fq.log fv.log home sbin
fB.log fG.log fL.log fQ.log fV.log lib srv
fc.log fh.log fm.log fr.log fw.log lib64 sys
fC.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 显示xXyYz
fx.log fX.log fy.log fY.log fz.log
[root@localhost /]# ls f[a-c].log 显示aAbBc
fa.log fA.log fb.log fB.log fc.log
[root@localhost /]# ls f{a..c}.log 显示小写从a到c
fa.log fb.log fc.log
-----------------------------------------------------------------------------------------
[root@localhost /]# ls f[[:lower:]].log 显示小写字母
fa.log fe.log fi.log fm.log fq.log fu.log fy.log
fb.log ff.log fj.log fn.log fr.log fv.log fz.log
fc.log fg.log fk.log fo.log fs.log fw.log
fd.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.log
fB.log fF.log fJ.log fN.log fR.log fV.log fZ.log
fC.log fG.log fK.log fO.log fS.log fW.log
fD.log fH.log fL.log fP.log fT.log fX.log
-----------------------------------------------------------------------------------------
显示/etc目录下以m,n,r,p开头的文件或目录列表
ls /etc/|grep ^[mnrp]
cd /ect
ls -d [mnrp]*.conf
显示/etc目录下所有以p开头,以非数字结尾的文件或目录
cd /etc
ls -d p*[^0-9]</span></span>
显示/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]</span></span>
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 -l
1008
[root@localhost opt]# find /etc/ -type d -o -type l -ls |wc -l
1008
[root@localhost opt]# find /etc/ -type d -o -type l -a -ls |wc -l
274
[root@localhost opt]# find /etc/ \( -type d -o -type l \) -a -ls |wc -l
1008
-----------------------------------------------------------------------------------------
[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]# ls
100.img 99.img
-----------------------------------------------------------------------------------------
[root@localhost opt]# echo >>99.img #输出追加重定向
-----------------------------------------------------------------------------------------
[root@localhost opt]# find /opt/ -size 100M 查找(99-100]范围文件
1024M代表(1023-1024]M
1G表示(0-1]G
-size 10k 表示(9-10]k
-size -10k 表示<=9k
-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打印数字序列
1
2
3
[root@localhost opt]# seq 10 |xargs #seq打印数字序列并取消换行
1 2 3
[root@localhost opt]# seq 3 |xargs -n1 #-n1 多行输出,行为1
1
2
3
-----------------------------------------------------------------------------------------
[root@localhost opt]# touch {1..10}.txt #创建1--10.txt
[root@localhost opt]# ls *.txt |xargs rm #显示全部结果然后删除
-----------------------------------------------------------------------------------------
7.2、tar打包和备份的归档工具
压缩工具说明解压缩工具zip可以压缩多个文件或目录unzipgzip压缩单个文件,压缩率<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</span>
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 ,删除前一个字符2
1 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 available
Mem: 4162268 678476 2784552 9636 699240 3172304
Swap: 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<UP,BROADCAST,RUNNING,MULTICAST> 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<link>
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<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
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 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> 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
版权归原作者 做个超努力的小奚 所有, 如有侵权,请联系我们删除。