文章目录
Linux系统简介
- Linux是一种操作系统,操作系统是一大堆软件的集合
- 曾经,被Microsoft视为最大的威胁,服务器领域幕后的老大
国产操作系统
- 麒麟操作系统
- 麒麟操作系统是由中国华为技术有限公司自主研发的一款操作系统,主要用于华为自己的产品上,例如手机、平板电脑、智能穿戴等。它主要分为麒麟OS微内核版和麒麟OS分布式微内核版两个版本。
- 麒麟OS微内核版是采用微内核架构的操作系统,具有高效、灵活、安全、可靠的特点,支持多核、大型内存等高性能的硬件,并且可以实现资源的动态分配。
- 红旗Linux操作系统
- 红旗Linux操作系统是中国第一个自主可控的操作系统,由中国电子信息产业集团有限公司(简称中电集团)负责开发。该操作系统自2000年正式发布以来,经过十多年的发展,已经形成了一套完整的操作系统产品线,包括服务器、桌面、嵌入式、云计算等多个领域。
- Deepin操作系统
- Deepin(深度操作系统)是一款基于Linux的操作系统,由中国武汉的深度科技有限公司开发。其初衷是为了提供一体化、易用性基础上又能够满足用户各种需求的完整操作系统。不同于其他Linux版本,Deepin注重桌面使用界面的美观度和易用性。
基本命令
cd命令
cd — Change Directory
作用:切换工作目录
格式:cd [目标文件夹位置]
绝对路径:以/开头的路径(/etc/subject/cloudcomputing)
相对路径:不以/开头的路径,相对当前所在位置而言(etc/car/bmw)
- cd命令高级使用
.
表示当前目录
..
表示父目录(也就是上一级目录)
[root@localhost ~]# cd /dev
ls命令
ls — List
作用:查看目录里的内容,或者查看资料是否存在
格式:ls [选项] [目标]
-l
:以长格式显示(显示详细属性)
-A
:包括名称以 . 开头的隐藏文档
-d
:显示目录本身(而不是内容)的属性
-h
:提供易读的容量单位(K、M)等
-R
:递归显示内容
查看文本文件内容-cat命令
格式:cat [选项] 目标文件
查看/etc/passwd文件
[root@localhost ~]# cat /etc/shells
分页查看文本文件-less命令
格式: less 目标文件
- less查看文件内容为交互式查看,在交互式模式中:
- 按
/
表示搜索关键词,按n查找下一个、按N查找上一个 - 按
空格
以页为单位翻页浏览,按回车以行为单位翻页浏览 - 按
q
退出交互式界面
- 按
分页查看/etc/passwd文件
[root@localhost ~]# less /etc/passwd
查看CPU信息-lscpu命令
格式:lscpu
查看系统内核版本-uname命令
格式:uname [选项]
-r
输出内核发行号
查看IP地址-ifconfig命令
格式:ifconfig [网卡]
[root@som ~]# ifconfig #查看IP地址
[root@som ~]# ifconfig ens160 #指定网卡查看IP地址
创建目录-mkdir命令
格式:mkdir [选项] [/路径/]目录名 ...
-p:连同父目录一并创建
创建空文件-touch命令
格式:touch [选项] 目标文件 ...
查看文件前几行-head命令
格式:head [-n] 行数 目标文件
- -n 选项也可以省略,直接写-
行数
- 当没有指定看前几行时间,默认看前10行
查看文件后几行-tail命令
格式:tail [-n] 行数 目标文件
- -n 选项也可以省略,直接写-
行数
- 当没有指定看前几行时间,默认看后10行
别名管理-alias/unalias
作用:别名相当于生活中的的"外号",用于将复杂的命令简单化
格式:alias [别名=‘真实命令’]
- 查看当前系统已有别名直接alias
- alias定义别名是临时生效的
- 一般不要把其他命令关键字作为别名(例如将ls作为其他命令的别名),因为别名优先级更高
- 取消别名: unalias 别名
查看当前已有别名
[root@som ~]# alias
将hh定义为hostname的别名
[root@som ~]# aliashh='hostname' #定义hh为hostname的别名
[root@som ~]# alias #查看已有别名
[root@som ~]# hh
取消别名hh
[root@som ~]# unalias hh #取消别名hh
[root@som ~]# alias #查看是否取消别名hh
[root@som ~]# hh
删除操作-rm命令
格式:rm [选项] 参数 …]
-i 提示是否删除
-r 递归删除
-f 强制删除
- rm 默认是rm -i的别名
-f优先级大于-i
,所以当-f和-i同时出现时,优先使用-f选项的功能
# 使用rm命令删除文件
[root@som ~]# touch /opt/test.txt #创建文件
[root@som ~]# rm /opt/test.txt #直接删除文件
rm:是否删除普通空文件 '/opt/test.txt'?y #会有提示(回答y表示删除,回答n表示不删除)
[root@som ~]# ls /opt/ #查看/opt/是否还有test.txt
[root@som ~]# touch /opt/test2.txt #创建/opt/test2.txt
[root@som ~]# rm -f /opt/test2.txt #强制删除/opt/test2.txt
[root@som ~]# ls /opt/ #查看/opt/是否还有test2.txt
# 使用rm命令删除目录
[root@som ~]# mkidr -p /opt/aa/bb/cc/dd #创建目录
[root@som ~]# rm /opt/aa/ #直接删除报错,想要删除目录必须加上-r
rm: 无法删除'/opt/aa/': 是一个目录
[root@som ~]# ls /opt/ #查看/opt/aa目录还在
[root@som ~]# rm -r /opt/aa/ #使用-r选项递归删除(因为是rm -i的别名所以有提示)
rm:是否进入目录'/opt/aa/'? y
rm:是否进入目录'/opt/aa/bb'? y
rm:是否进入目录'/opt/aa/bb/cc'? y
rm:是否删除目录 '/opt/aa/bb/cc/dd'?y
rm:是否删除目录 '/opt/aa/bb/cc'?y
rm:是否删除目录 '/opt/aa/bb'?y
rm:是否删除目录 '/opt/aa/'?y
[root@som ~]# mkdir -p /opt/aa/bb/cc/dd #再次创建目录
[root@som ~]# rm -rf /opt/aa/ #加上-f选项不在有提示
删除空目录rmdir
rmdir命令是Linux系统下一个用于删除空目录的命令
移动操作-mv
格式:mv <源数据> ... <目标位置>
- mv移动数据会使源文件消失
- mv可以同时移动多个参数,只有最后一个是目标位置
- mv可以再移动的过程中改名
- 目标地址不变的移动等于重命名
[root@som ~]# mv /opt/som10 /opt/game #将/opt/som01重命名为/opt/game
[root@som ~]# mv /opt/1.txt /opt/som10 #将/opt/1.txt移动至/opt/som10目录
复制操作-cp
格式:cp [选项] <源数据> … <目标路径>
-f 强制覆盖
-r 递归拷贝
-p 保留数据原属性复制
- cp支持多参数,最后一个为目标路径
- cp不会使源文件消失
- cp操作可以在复制过程中对目标文件改名
- cp默认是cp -i的别名,
其-i选项优先级高于-f
,所以当-i和-f同时出现时,使用-i的属性
[root@som ~]# cp -r /boot/ /home/ /etc/passwd /etc/shells /mnt/
#将/boot/,/home/,/etc/passwd,/etc/shells复制到/mnt目录下
软连接
- 软连接 --> 原始文档 --> 文档数据
- 格式:ln -s 原始文件或目录 软连接文件
若原始文件或目录被删除,连接文件将失效
- 软连接可存放在不同分区/文件系统
[root@som ~]# ln -s /etc/passwd /opt/ps.txt #将/opt/ps.txt设置为/etc/passwd的软连接
硬链接
- 硬链接 --> 文档数据
- 格式:ln 原始文件 硬链接文件
若原始文件被删除,链接文件仍可用
- 硬链接与原始文件必须在同一分区/文件系统-
[root@som ~]# ln /etc/shells /opt/shells #将/opt/shells设置为/etc/shells的硬链接
通配符
*:匹配任意字符,包含0个字符
?:匹配任意单个字符
[0-9]:匹配0-9任意单个数字
[a-z]:匹配任意单个字符
{xx,yy,zz}:严格匹配大括号内的元素
[root@som ~]# ls /dev/tty* #匹配/dev/tty后边任意字符内容
[root@som ~]# ls /dev/tty? #匹配/dev/tty后边1个字符内容
[root@som ~]# ls /dev/tty?? #匹配/dev/tty后边2个字符内容
[root@som ~]# ls /dev/tty[0-9] #匹配/dev/tty后边1个数字内容
[root@som ~]# ls /dev/tty[0-9][0-9] #匹配/dev/tty后边2个数字内容
[root@som ~]# touch /opt/{a,b,c}.txt #创建/opt/a.txt,/opt/b.txt,/opt/c.txt
[root@som ~]# ls /opt/[a-z].txt #查看/opt/下一个字符.txt的文件
[root@som ~]# ls -d /m{edia,nt} #严格匹配/media和/mnt
重定向操作
作用:将前方命令输出内容保存到文件
>:覆盖重定向
>>:追加重定向
- 当目标文件存在时,则使用目标文件存储数据
- 当目标文件不存在时,重定向会创建该目标文件并存储数据
管道操作
作用:将前方命令输出结果最为后方命令参数
[root@som ~]# ls --help | less #将ls --help输出信息交给less命令作为参数
[root@som ~]# ifconfig | head -2 #将ifconfig输出信息交给head -2作为参数
find精确查找
格式:find 查找目录 条件
- find可用于在Linux操作系统中精确查找某些资料
- find查找为"地毯式搜索"不会放过任何一个子目录、隐藏目录
- 查找过程中如果遇到/proc目录下的报错,属于正常现象,因为/proc不占用磁盘空间,占用的是内存空间
- 常用查找条件
- -type 按类型查找(f、d、l)
- -name 按名字查找(可与通配符连用)
- -iname 按名字查找(可忽略名字大小写查找、可与通配符连用)
- -size 按数据大小查找(k、M、G)
- -mtime 按数据最近修改时间查找
- -user 按数据所有者查找
- -a:and逻辑与,多个条件同时成立才满足条件(默认为逻辑与)
- -o:or逻辑或,多个条件成立其中一个即可
按类型查找
[root@som ~]# find /boot/ -type f #在/boot/下递归查找文件
[root@som ~]# find /boot/ -type d #在/boot/下递归查找目录
[root@som ~]# find /boot/ -type l #在/boot/下递归查找连接文件(快捷方式)
按名字查找
[root@som ~]# find /etc/ -name "passwd" #在/etc/下递归查找名为passwd的数据
[root@som ~]# find /etc/ -name "*tab" #在/etc/下递归查找tab结尾的数据
[root@som ~]# find /etc/ -name "*passwd*" #在/etc/下递归查找名字包含passwd的数据
忽略名字大小写查找
[root@som ~]# find /etc/ -iname "PaSSwd" #在/etc/查找名为passwd的数据(忽略大小写)
按大小查找
- k:kb作为单位
- M:MB作为单位
- G:GB作为单位
- 注意:在使用大小进行查找时,对于某些目录可能存在一定的BUG,例如1M需要写成1024k,当然这里需要多测试才会发现
[root@som ~]# find /boot/ -size +2M #在/boot/查找文件大小大于2M的数据
[root@som ~]# ls -lh /boot/grub2/fonts/unicode.pf2 #验证大小
-rw-r--r--. 1 root root 2.5M 12月 19 12:10 /boot/grub2/fonts/unicode.pf
[root@som ~]# find /boot/ -size -1M #在/boot/查找文件大小小于1M的数据(出现BUG)
[root@som ~]# find /boot/ -size -1024k #在/boot/查找文件大小小于1024k的数据(小于1M)
按修改时间
[root@som ~]# find /etc/ -mtime +10 #查找10天前修改的数据
[root@som ~]# find /etc/ -mtime -10 #查找近10天修改的数据
查找按所有者查找
[root@som ~]# ls -ld /home/lisi/ #查看“文档”属性,查看所有者
drwx------. 4 lisi lisi 113 2月 24 10:22 /home/lisi/
[root@som ~]# find /home/ -user lisi #从/home中查找所有者为lisi的数据
[root@som ~]# find /etc/ -user root #从/etc中查找所有者为root的数据
创建实验素材
[root@som ~]# touch /root/som01.txt #创建/root/som01.txt
[root@som ~]# touch /root/som02.txt #创建/root/som02.txt
[root@som ~]# mkdir /root/som03 #创建/root/som03目录
逻辑与案例-a,在/root/下查找som开头的文件
[root@som ~]# find /root/ -name "som*" -a -type f
[root@som ~]# find /root/ -name "som*" -type f #-a也可以省略不写,默认就是-a
逻辑或案例-o,在/root/下查找som开头的资料,或者是文件即可
[root@som ~]# find /root/ -name "som*" -o -type f
find高级使用
- 可用于处理找到的文件
- 格式:find [范围] [条件] -exec 处理命令 {} ;
- {}表示查找到的每一个结果
- ;表示操作结束
[root@som ~]# mkdir /root/findfiles #新建文件夹/root/findfiles
[root@som ~]# find /boot/ -name "vm*" -exec cp -r {} /root/findfiles/ \; #查找并拷贝
grep命令使用- 功能:输出包含指定字符/匹配规则的行
- 格式: grep ‘查找条件’ 目标文件
- -i:查找是忽略关键字大小写
- -v:对查找结果去反(匹配不包含指定字符/不满足条件的行)
- ^关键字:匹配关键字开头的行
- 关键字$:匹配关键字结尾的行
- ^$:匹配空行
[root@som ~]# grep -i ROOT /etc/passwd #忽略大小写匹配/etc/passwd文件中包含ROOT的行
[root@som ~]# grep -v root /etc/passwd #在/etc/passwd文件中匹配不包含root的行
[root@som ~]# grep ^root /etc/passwd #匹配/etc/passwd文件中以root开头的行
[root@som ~]# grep bash$ /etc/passwd #匹配/etc/passwd文件中以bash结尾的行
[root@som ~]# grep ^$ /etc/default/useradd #匹配/etc/default/useradd中的空行
vim文本编辑器
功能:使用vim文本编辑器可以修改/创建文件
- 若目标文件不存在,则新建空文件并编辑
- 若目标文件已存在,则打开此文件并编辑
三大模式:命令模式、插入模式、末行模式
按Esc键回到命令模式,按:(英文冒号)进入末行模式,输入wq,保存并退出
命令模式基本操作
- 光标跳转
- 复制、粘贴、删除
末行模式基本操作
- 存盘、退出、文件操作
- 开关设置
归档及压缩
归档的含义:
- 将许多零散的文件整理为一个文件
- 文件总的大小基本不变
压缩的含义:
- 按某种算法减小文件所占用空间的大小
- 恢复时按对应的逆向算法解压
压缩格式 | 扩展名 | 特点 |
---|---|---|
gzip | .gz | 速度快,压缩比例低 |
bzip | .bz2 | 速度中等,压缩比例中等 |
xz | .xz | 速度慢,压缩比例高 |
- tar命令工具
- -c:创建归档
- -x:释放归档
- -f:指定归档文件名称
- -z、-j、-J:调用 .gz、.bz2、.xz 格式的工具进行处理
- -t:显示归档中的文件清单
- -C(大写):指定释放的位置
- 注:f选项必须放在所有选项的最后
制作压缩包
- 制作压缩包又被称之为打包
- 格式:
tar 选项 /路径/压缩包名字 被压缩归档的源数据1 被压缩归档的源数据2 ...
# 将/boot/目录和/home/目录打包至/opt/
[root@som ~]# tar -zcf /opt/two.tar.gz /boot/ /home/ #使用gzip格式
释放压缩包
- 释放压缩包有被称之为解包
- 格式:tar 选项 /路径/压缩包名字 [-C] 释放路径
#将/opt/two.tar.gz释放到/opt下
[root@som ~]# tar -zxf /opt/two.tar.gz -C /opt/ #将压缩包释放至/opt
zip压缩包
制作zip格式压缩包(打包)
zip [-r] 备份文件.zip 被归档的文档1 被归档的文档2 ...
#将/etc/selinux打包至/root/selinux.zip
[root@som ~]# zip -r /root/selinux.zip /etc/selinux/
释放zip格式压缩包(解包)
格式:unzip 备份文件.zip [-d 目标文件夹]
[root@som ~]# unzip /root/selinux.zip -d /opt/ #将/root/selinux.zip解压至/opt/
Linux命令补充
man帮助
- man命令可以帮助用户查找、浏览和使用操作系统中的命令、配置文件以及其他相关的程序和文档
- 支持上下键翻阅
- 支持PageUp、PageDown翻页
- 按/所有关键字
- 按q退出
[root@som ~]# man ls #查看ls的帮助手册
[root@som ~]# man hier #文件Linux系统层次结构标准(作用)
历史命令
- history:查看历史命令列表
- history -c:清空历史命令
- !n:执行命令历史中的第n条命令
- !str:执行最近一次以str开头的历史命令
[root@som ~]# history #查看历史命令
[root@som ~]# history -c #清空历史命令
[root@som ~]# cat /etc/shells #查看/etc/shells文件
[root@som ~]# history #查看历史命令
[root@som ~]# !1 #执行历史命令标号为1的指令
[root@som ~]# cat /etc/hosts #查看/etc/hosts文件
[root@som ~]# !cat #执行最近一次cat开头的指令
[root@som ~]# grep HISTSIZE /etc/profile #/etc/profile中记录了历史命令可以记录多少条
HISTSIZE=1000
du命令
- 作用:统计文件的占用空间
du [选项]... [目录或文件]...
- -s:只统计每个参数所占用的总空间大小
- -h:提供易读容量单位(K、M等)
[root@som ~]# du -sh /boot/ /etc/pki/ #统计/boot/和/etc/pki/占用磁盘空间大小
date指令
- 作用:查看/修改系统时间
- date +%F、date +%R
- date +“%Y-%m-%d %H:%M:%S”
- 修改时间格式:date -s “yyyy-mm-dd HH:MM:SS” ,不可将时间修改为1970-01-01 00:00:00之前