❤linux❤

一、linux命令

Linux是一个内核
内核是一个操作系统的核心
现实中热门的操作系统有:windows(个人)、ios苹果、liunx(安卓、鸿蒙、麒麟、欧拉)
企业服务器有的多的有:centos、红帽、ubantv、debian(kaili)
服务器:是一个工业级的电脑,从物理结构上来看我们个人电脑没有一模一样,区别性能更强
工业生产:我们公司跑的网站,用的app,小程序等等线上业务
集群:多台电脑协作完成一件事,对外用户提供服务
Linux下管理员root
windows下管理员角administrator(admin)
我们电脑网卡两个
eth0(linux):作用是将我们的设备和网络中的其他设备联系起来
lo网卡(windows):默认127.0.0.1,设备的自检网卡
容灾思想(如何甩锅):如果这个业务产生了故障,你怎么保证它的数据安全
操作系统里的命令分:内部命令和外部命令
内部:ip a
外部:ifconfig
type可以查看命令是否时内部、外部命令
liunx:用的解析器角shell(又叫bash)
Inodo:相当于身份证
access:访问时间
modify:内容修改时间
change:文件的内容和属性信息的改变(数据信息和元数据信息)

打开VMware-->打开终端,或者打开远程连接工具练级liunx
type是可以查看命令是否是内部命令还是外部命令

1、查看IP命令、网卡情况和系统应用

查看IP:ifconfig
查看系统应用启动与关闭:chkconfig
开启应用:chkconfig --level=5 应用 on
关闭应用:chkconfig --level=5 应用 off
网卡情况:ip a
# hostname弊端为查所以IP,当前如果是自己练习可以使用查ip。
# 工作中有多个IP,就不适合
查IP:hostname -I

2、连网与断网命令

连网:ifup eth0
断网:ifdown eth0

3、查看当前处于的位置、当前路径下有什么

当前位置:pwd
当前路径下有:ls
ls -a    #查看当前路径下所以的内容,a表示all
ls -l    (简写ll)
# ll查询的结果,总共7部分
1权限 2硬链接数 3属主 4属组 5文件大小 6上次修改文件时间 7文件名 
ls --help   # 查看命令的帮助
ls -lh # 人性化的方式显示
ls -d test     # 查看当前文件的信息

4、查看当前网络情况、结束进程和查看端口

ping命令是
结束进程:CTRL+C
例如:ping 网站(www.baidu,con)
# 查看端口
netstat -antup | grep "端口名称"       
netstat -antup | grep "httpd"        # 查看httpd的端口

5、路径切换

cd命令
切换到根目录:cd /
切换到上一级:cd ..
cd 目标路径
cd 
cd -      # 切换到上一次的访问路径

6、创建文件夹(目录)和创建文件(.txt类型)

创建目录:mkdir 目录名称
创建文件:touch 文件名称
例如:
创建test目录:mkdir test
创建多个目录:mkdir test test1 test2
             mkdir test{0..5}
             mkdir -p ./test/testt    # 创建多层文件(套娃)
创建test.txt文件:touch test.txt
创建多个文件:    touch test.txt tset1.txt test2.txt
                 touch test{0..6}.txt
#在同一目录下不能用相同的目录或文件名称

7、删除

# rm命令:
rm 文件名称
例如:删除test(目录)
rm test
rm -r test
rm -rf test 
# -f :非交互强制删除
# -r:删除目录(rm -rf 一起使用)
# -r:递归

8、复制

# cp命令    cp还具有改名功能
cp 源文件路径 目标文件路径
例如:把test.txt复制到test里
cp test.txt test
cp -r test test    #  -r 忽略目录 复制目录test到test
# -r:递归
例如:把test.txt复制到test中.并test.txt修改ttt.txt
cp test.txt test/ttt.txt
例如:复制时不改变文件属性
cp -p test.txt test

9、剪切

# mv命令   还可以修改名称
mv 源文件路径 目标文件路径
例如:把test.txt剪切到test里
mv test.txt test
例如:把test.txt剪切到test里,并修改test.txt为ttt.txt
mv test.txt test/ttt.txt

10、输入输出

#echo命令
echo 字段 文件名
echo 字段
例如:显示在终端
echo “hello word”
例如:写入test.txt
echo "hello word" test.txt
# 输出结果有换行输出
echo -e "hello word \n hello yunjisuan"

11、查看文件内容

# cat命令、head命令、tail命令
# cat:查看全部
# head:默认查看前10行
# tail:默认查看末尾10行
例如:查看test.txt
cat test.txt           # 全部
head test.txt          # 前10行,默认前10行
tail test.txt          # 后10行,默认后10行
# head和tail还有 -n命令
例如: 查看test.txt的前20和查看后20行
head -20 test.txt     # 前20行
tail -20 test.txt     # 末尾20行
head -20 test.txt;tail -20 test.txt  # 前20末尾20行
例如:查询test.txt中的30行到40行的内容
head -40 test.txt | tail -11 
例如:查询并查询行号
cat -n test.txt       # n表示的是number的意思
nl test.txt # nl表示 cat -n 的缩写
例如:可以查看test.txt隐藏的特殊符号
cat -A test.txt      # 可以查看隐藏的特殊符号
例如:到这输出test.txt
tac test.txt   # 从最后一行正着输出
例如:实时监控test.txt结尾的文件清空并关闭
tail -f test.txt      # 实时监控test.txt的末尾行情况
CTRL+C        # 停止监控 
例如:以空格出页数
more test.txt     # 空格换页,只能向下翻页
例如:按光标查询
less test.txt    # 按光标滚轮上下翻页   点q退出

12、find命令

#find命令类型
find 当前路径 -type f或者d
find . -name 目标文件名称
例如:查找test中的test.txt
find . -name "test.txt"
例如:查找当前路径下的文件(.txt类型)或者目录(文件夹)
find . -type f      #查找文件
find .  ! -type f    #查找当前路径下所以不是文件的文件
find . -type d      #查找目录(文件夹)
#加其他用法
例如:删除当前目录下的.txt类型的文件
find . -name "*.txt" -type f -exec rm -rf {} \;
find . -name "*.txt" -type f | xargs rm -rf
例如:移动剪切到/tmp中
find . -name "test*" -type f | xargs -i mv {} /tmp \;
find . -name "*.txt" -type f -exec mv {} /tmp \;
#删除.txt类型的文件
find . -name "*.txt" -type f -exec rm -rf {} \;
# 按大小查询
find . -size +M或者-M (+表示大于,-表示小于)
# 按用户查找
find . -user 用户名  # 按用户查找
# 按时间查找
find . -mtime n # 按照时间查找 n表示天数1表示访问一天
# 按当前文件下递归2此查询
find . -maxdepth  2    # 向下递归几层目录来查询
# find中有两个特殊的-a和-o:
# -a:默认并且
# 查找当前目录下所以为test的文件
find . -type f -a -name "test"
find . -type f -name "test"
# -o:或者
# 查找当前目录下所以文件或者名字为test的目录
find . -type f -o -name "test"
# 以inode号976423查文件
find / -inum 976423

13、grep命令

#grep命令类型
grep 目标字段 目标文件(.txt)
例如:查看test.txt中含有t
grep "t" test.txt          # 过滤只有t的一行内容
grep -n "t" test.txt       # 过滤并显示有t那一行内容并显示行号
grep -v "t" test.txt       # 过滤没有t的一行内容
grep -A 10 "11" test.txt   # 10行后11行的内容
grep -B 10 "11" test.txt   # 10行前11行的内容
grep -C 10 "11" test.txt   # 10的前后各11行内容
grep -o "adc{2,4}" test.txt  # 只显示test.txt中的adcc、adccc、adcccc
grep -w "ab" test.txt      # 精准查找test.txt中的ad
ls | grep -l "ab"          # 查找当前路径下显示含有匹配内容的文件名
# 查找test.txt中a、aa、aaa、aaa、aaaa、..等的字符
grep -E "a+" test.txt  # E扩展正则,+表示匹配前一个字符一次或无限次
egrep "a+" test.txt # egrep 是 grep -E 的缩写
# 大小写
grep "SEK" test.txt      # 大小写必须清楚
grep -i "sek" test.txt   # -i 忽略大小写
# 颜色查询
alias grep="grep --color=auto"    # 给grep复制
alias grep="grep"    # 返回默认grep
grep "t" test.txt  # 接上一行grep查询test.txt中查询t并赋给它颜色
# 查询文件中的(点字符)
grep "\." test.txt   # 查询文件中含有 . 的内容  , 这里的 \ 表示转换
grep "abc*" test.txt    # 查询含有abc*,*表示多个c,这里就是正则的表示
grep "." test.txt     # . 表示任意一个字符(正则) 这里的 . 等于 通配符中的 ?
# 查询ab?的结果
grep "ab[abcde]" test.txt
grep "ab.*" test.txt    # 正则 .* 表示表示任意,相当于通配符中的*
# 取反
grep "ab[^c]" test.txt  # 取abc的相反值
# 查找test.txt只显示匹配adcc、adccc和adcccc的字符
grep -o "adc{2,4}" test.txt   # 只显示匹配字符
# 过滤test.txt中的空行并显示行号
grep -n "^$" test.txt
# 查找的test.txt中不显示含有#和空行
grep -Ev "^$\#" test.txt

14、seq命令(随机数)

seq n(n表示随机数)
例如:输出11个数
seq 11
例如:100个随机数写入test.txt
seq 100 > test.txt

15、xargs命令

数据横向转换
find . -type f | xargs grep 字段
#查询出所以文件,并查询该字段
# find 查出的结果是竖着显示,xargs是使竖向的结果横向输出

16、sed

sed '区间' 要查的文件
# p表示行
# -n表示NO的意思
sed '70,80p' test.txt    # 要查询的双倍显示
例如:查询test.txt中的70到80行
sed -n '70,80p' test.txt
例如:只查询70行和八十行
sed -n '70p;80p' test.txt
#题型
sed -n '/test/p' test.txt          # 查询test.txt中有test字符的哪一行
sed -n '/test/p;/es/p' test.txt    # 查询test.txt中的test哪一行和es哪一行
sed -n '/test/,/es/p' test.txt     # 查询test.txt的test哪一行到es哪一行之间的内容
sed '/test/d' test.txt             # 取反,显示没有test字符的其他行,d表示删除其他的
# 替换旧新内容   ###号可以换成其他的字符
sed 's#旧内容#新内容#' test.txt
sed 's@test@hello@' test.txt       # 每行只修改每行第一个匹配字符
sed 's$test$hello$g' test.txt      # 修改全部匹配字符
# -i 的使用   是修改test.txt内容      
sed -i 's#test#hello#' test.txt    # 修改test.txt中的匹配字符
# sed的-n和d不能连用
#####################################################################################
# sed命令中a的使用
sed '1a hello' test         # 在文件的第一行的下一行加一行写入hello
sed '1,3a hello' test       # 从第1行到第3行的每个下一行加一行写入hello
sed '1i hello' test         # 在文件的第一行加hello
sed ‘$a ssss’ test          # 在文本末尾加一行写入ssss 
sed '1 s/^/#/' test         # 在行首插入#号,将第一行注释掉
sed '5 s/^/#/' test         # 将第5行注释
sed '/postfix/ s/^/#/' test   # 按字符所在的行注释
sed ‘1,5 s/^/#/’ test       # 按照范围注释
# sed命令中e的使用
sed -e '/postfix/ s/^/#/' -e '/shhd/ s/^/#/' test    # 多条件替换
sed ‘2 s/$/hello/’ test     # 行尾加hello
sed ‘1~2 s/^/#/’ test       # 按照指定的步长取插入#,注释
sed ‘2c hello 222’ test     # 替换第二行内容为hello 222
# 按步长替换 (2~3表示第二行开始替换,每三行换一次)
#(还可以是1~4表示第一行开始,每4行替换一次))
sed ‘2~3c hello 222’ test   
# 将test中指定内容替换为空
sed 's#test##' test    
# 将文本内容保存成另一个文件
sed '1,3w 1.txt' test        # 将文件test中1到3行内容写到1.txt中
sed '1,3r test' 1.txt      # 将文件test读到1. txt中
# sed的扩展正则
# 先在当前命令下创建100个文件  touch benen_data_{1..100}_make.txt
# 修改所以文件名称中data给删除
ls | sed -r 's#(.*)_(.*)_(.*)_(.*)#mv \0 \1_\3_\4#' | bash
# test文件中匹配的abc字符之后向下匹配两行
sed -n ‘/abc/,+2p’ test

17、awk

awk '区间' 文件
# NR在awk中表示行号
awk 'NR==90' test.txt          # 查询test.txt中的90行内容
awk 'NR>90' test.txt           # 查询test.txt中的90行以后内容
awk 'NR<90' test.txt           # 查询test.txt中的90行以前内容
awk 'NR>=90' test.txt
awk 'NR<=90' test.txt
awk 'NR<90&&NR>10' test.txt    # 查询10行到90行之间内容 &&表示并且的意思
awk 'NR<=90&&NR>=10' test.txt
awk 'NR>=90||NR<=10' test.txt  # 查询10行前的内容和90行以后的内容,||表示或者的意思

18、which 和 man

which # 查看命令的绝对路径
例如:cp的绝对路径
which cp
区别:绝对路径cp执行是非交互强制覆盖
cp test.txt ttt              # ttt 中有一个test.txt,覆盖有是否确认
/bin/cp test.txt ttt         # ttt中有test.txt,覆盖无确认,直接覆盖

man # 查看命令的详细使用方法
man ls  # ls 的使用使用方法

19、start

start  test.txt     # 查看文件的详细情况

20、du

du test.txt   # 是查看文件占用磁盘空间的大小
du -sh  test.txt    # 人性化显示

21、kill 和 ps

ps aux         # a 表示all    u表示用户   x表示执行
ps -eLf        # 查看线程
ps -elf        # 查看父进程
kill -9 3008   # 杀死3008这条进程
kill -l 3008   # 重启该进程
kill -9 -t pts/2    # 杀掉异常终端
pkill -1 进程号或者程序名称      # 重启该进程  
pkill -9 进程号或者程序名称   # 彻底杀死
# pkill 还可以杀掉异常终端
pkill -9 -t pts/2

22、wc

wc test.txt    # 查询的结果   行数   单词数   字符数   文件
wc -l test.txt   # 文件行数

23、解压和压缩(打包和解包)

# 压缩grup.conf
gzip grup.conf
# 解压grup.conf
gzip -d grup.conf
unzip grup.conf   # 解压并保存原文件
unzip -d /tmp grup.conf   # 解压grup.conf到tmp中
gzip -9 grup.conf
# tar acvf 打包后文件存放的路径     目标文件的路径
tar zcvf grup.conf.tar.gz grup.conf
# z:压缩
# c:归档
# v:显示打包过程(可省略)
# f:指向文件(最后放f)
tar tf benet.tar.gz      # 打包
tar xf benet     # 解压
tar xf benet -C ./test   # 解压并改名
tar zcf benet.tar.gz bent/ --exclude = "grup.conf,gz"

24、vi和vim

vi命令分为编辑模式、命令模式、末行模式
#####################################################
命令模式的操作:
j:向下移动光标
k:向上移动光标
h:向左移动光标
l:向右移动光标
u:撤销操作
D和dd和ndd:删除光标及以后内容、删除整行、删除光标后n行
# ndd(可以是任意数字,例如:2dd删除光标下2行内容)
r和R:替换原内容和进入替换模式(esc健退出模式)
G和ngg:到文件末行和跳转到n行()
nyy和p粘贴:复制n行,p粘贴
#####################################################
进入编辑模式:
i和I:前面输入和首行输入
a和A:后面输入和行尾输入
o和O:下一行输入和上一行输入
#####################################################
进入末行模式
set nu       # 显示行号
?字段        # 从下而上找   n键向上
/字段        # 从上而下找  n键向下
w键          # 保存
w键+q键      # 保存退出
q            # 退出
q!           # 强制不保存退出
s///         # 替换当前行内容
% s///       # 切换全部文件全部行
%            # 表示全文,g表示整行替换

25、chmod和chown、umask

linux系统下的权限管理是静态管理
软连接相当于Windows下的快捷键
软连接在linux下是绿色的
socket : 守护进程文件
我们在创建文件的时候,已经将文件的权限设定好了
一个文件有软连接也有硬链接
在操作系统中权限以类型分类:
         读权限:不对文件产生修改的操作权限(读)(r)(4)
         写权限:对文件产生修改的操作权限(增删改)(w)(2)
         执行权限:运行该文件的权限(在系统中文件默认不具备执行权)(x)(1)
         无权限:无(无)(-)(0)
-----------(使用ll查看文件或者目录)(一般有11个)
第一部分:-(文件)、d(目录)、l(软链接)、p(管道文件)、s(socket通信套接字)、
         c(字符设备[键盘设备])、b(块设备文件)
第二部分:属主(u)
第三部分:属组(g)
第四部分:其他用户权限(0)
第五部分:某个国家安全局的保护
lnmt:它分为linux、nginx、mysql和tomact
权限管理

chmod

chmod g+w test     # 添加test的属组中的权限(u/g/o)
chmod g-w test     # 删除test中属组的权限(u/g/o)
chmod 777 test     # 修改test文件的所以权限开启
chmod 444 test     # 修改test文件只能读(444、400、404、440)
chmod 222 test     # 修改test文件只能写(222、220、202、200)
chmod 111 test     # 修改test文件只能执行(111、110、101、100)
chmod 000 test     # 关闭test文件所以权限

chown

chown -R tom test    # 修改test属主为tom
chown -R tom.benet test   # 修改test的(属主和属组)为(tom和benet)
chown -R .benet test   # 修改test的属组为benet

umask

# 目录一般是777     文件一般是666
umask码是一个权限掩码
umask码值:超级用户(0022)、普通用户(0002)
umask 333      # 修改umask暂时为 0333
# 创建test时指定权限为0744
mkdir -m 744 test

26、mount和umount(挂载与取消挂载)

mount 设备 挂载路径   
mount   # 查看当前系统挂载的情况
mount -o ro    # 以只读的方式挂载
mount -a    # 挂载/etc/fstab下全部
umount -a   # 取消挂载/etc/fstab下全部
例如:挂载sr0到cdrom  sr0为镜像文件
mount /dev/sr0 /media/cdrom
例如:取消/dev/sr0挂载
df -h # 查看挂载的设备
umount /dev/sr0

27、w、who和whoami

w                    # 查看当前登录的所以用户     平均负载
who
whoami

28、查看内存使用情况

free -m   # 查看内存使用情况

29、history

history    # 查询之前使用的命令
history -c # 清除之前的命令

30、防火墙

# CentOS6
service iptables restart      # 查看防火墙当前情况
service iptables stop         # 关闭防火墙
service iptables start        # 开启防火墙
# CentOS7
systemctl start firewalld    # 开启防火墙
systemctl stop firewalld    # 关闭防火墙
systemctl restart firewalld    # 查看防火墙当前情况

二、特殊符号

①波浪线(~):家目录
②井号(#):超级用户、注释
③花括号({}):序列、可以是数字、字母

例如:在终端中输出0到10
echo {0..10}
# 正则
grep -E "abc{2,4}" test.txt  # abc{2,4} 等于 abcc、abccc、abcccc
# {n,m} :匹配前一个字符n次到m次
# {n}:匹配前一个字符n次
# {n,} : 匹配前一个字符无限次

④星号(*):任意

例如:查询当前路径下所以
ls *

⑤点(.)(..):一个点表示当前路径、两个点表示上一级路径

cd ..   #回到上一级
ls .   #查询当前路径下东西

⑥大于(>)(1>)(2>)(&>)(>>)(1>>)(2>>)(&>>)

#重定向
echo "111" > 1.txt               # 把111写入1.txt中,二次输入会覆盖
echo "111" 1> 1.txt              #命令正确写入111到1.txt
echo "222" 2> 1.txt              # 命令写错时报错码写入到1.txt
echo "333" &> 1.txt              #正确1.txt中有333,错误1.txt中报错码
echo "111" >> 1.txt     
echo "222" 1>> 1.txt
echo "333" 2>> 1.txt
echo "444" &>> 1.txt

⑦(!:感叹号):取反

find . !  -name 目标文件/目录字段    #查看没有字段的内容

⑧(|:管道符)(&&:表示并且)(||:表示或者)
管道符:将管道符左侧命令的执行结果传给右侧,成为右侧的执行对象

# | (管道符)
例如:
find . -type f | grep t      #查找当前项目下的所以文件给右侧,右侧过滤有t的内容
ls /data | grep "can" | xargs rm -rf      # 删除data下含有can的文件和目录
# || (前面命令执行不成功,执行后面的命令)
# &&(前面命令执行成功,执行后面的命令)
例如:进入test失败的话创建test
cd test || mkdir test   # 有test 的话就不会创建testl
例如:进入test并显示ttttt
cd test && echo ttttt   # 进入test并显示ttttt,如果没有test则报错

⑨分号(;)

分号:并列执行
head -20 test.txt ; tail -20 test.txt
#结果是test.txt的前20行和末尾20行

⑩等号(=)($:取变量值)

#赋值
a=2
echo $a    # 输出时加$可以显示赋值的值

``(反引号)和 $()

# 删除当前目录下所以
rm -rf `find . -name "*" -type d`
rm -rf $(find . -find d -name "*")

(右斜杠)(转义符)

echo -e "hello world \n hello yuo"      # \n 输出时换行

?(问号)

echo "hello?world?hello"                # ?表示任意一个字符

&:表示查询放在后台执行
[]:匹配括号内任意字符
[1-6]:匹配1到6的数字

[123456]=[1-6]
[1-6]=[123456]

三、理论

1、简单理论

绝对路径:从根下到目标位置的路径
相对路径:以当前路径为启示到目标的路径
三剑客:grep、sed、awk
grep 命令是用来过来文件内容中的字符
find 根据文件类型或者文件名称来查找的
sed 用来过滤文件内容的字符,并且可以对内容进行修改
awk 精确过滤文件内容中的字符(并且根据需要统计数值)
xargs 将文本流格式改成文件名格式
四个重要查找命令:cat、head、tail、grep
硬件cpu内存,程序到进程的区别:程序是写着代码的文件的,存在硬盘里我们要执行程序需要把程序执行到内存里
cat在工作中是一个危险命令,cat是将文件一次性全部打开到内存中,在工作中查看大文件的时候要慎重,
grep、sed、awk三个命令是按行读取文件,这三个命令可以和正则符号配合实现更准确的查找内容,正则式一些匹配规则
PATH:在系统里有个环境变量PATH,它记录了系统命令存放的位置

2、符号理论(除正则外的叫法和用发)

#:超级用户的标识,注释
~:家目录
*:任意的意思
?:任意一个字符
..:标识上一级目录
.:标识当前路径
>:输出重定向(先清空目录文件,在输入)
>>:追加输出重定向(不清空源文件,直接在源文件末尾追加内容)
1>:正确输出重定向
2>:错误输出重定向
&>:无论正确错误都重定向
!:取反*(否定)*
|:管道符
;:分号表示并列执行,分号的前后都是一条完整的命令
$:取变量值
{}:序列
\:转义符
&&:表示并且
||:表示或者
``:优先执行($()功能一样)
&:程序在后台执行
[]:匹配括号内任意一个字符
[5-9]:匹配括号内5-9数字

3、正则符

^:以……开头
$:以……结尾
^$:空行
():分组
|:或者
*:表示匹配前一个字符0次或无限次
.:表示任意一个字符
.*:表示任意
[]:表示匹配括号内任意字符,括号内加^则表示匹配这个字符取反
+:表示匹配前一个字符1次或无限次
?:表示匹配前一个字符0次或1次
{n}:表示匹配前一个字符n次
{n,}:表示匹配前一个字符n到无限次
{n,m}:表示匹配前一个字符n到m次
{,m}:表示匹配前一个字符0到m次

三、快捷键、目录和略记的单词

单词

mem      # 内存
cpu      # cpu
net/network  # 网络
disk     # 硬盘
master   # 接待用户请求,但不处理用户请求,
# master进程接待用户请求但不会处理,会创建一个子进程,由子进程处理,master会监听应用端口
worker   #
socket   # 守护进程
CTRL + U      # 剪切光标之前的子
CTRL + K      # 剪切光标之后的子
CTRL + y      # 黏贴时的内容
CTRL + C      # 结束进程
CTRL + D      # 注销
CTRL + A      # 光标移动到行首
CTRL + E      # 光标移动到行尾
CTRL + Z      # 后台运行 
fg            # 显示后台

根路径

/root :系统管理员的家目录(宿主目录)
/home :普通用户家目录的宿主目录
/boot :系统启动文件存放的位置
/dev :设备管理文件存在
/etc :保存配置文件的目录???.conf文件,这个是各个应用的核心配置文件
/bin :普通用户使用命令文件存放目录
/sbin/ :超级用户使用命令文件存放位置
/usr 和 /opt :用来做第三方应用的安装路径
/var :主要是存放临时文件,比如日志文件,程序运行起来的临时缓存文件
/mut :一般用来挂载移动设备
/media :多媒体文件存放位置
/lib 和 /lib64 :库文件存放位置
proc 这是一个特殊目录,这个目录是存放在内存中
# proc中都是   进程在proc中运行
/dev/null/:黑洞文件
/dev/zero/:零时文件
/etc/init.d 和 /etc/init
/etc/yum.repos.d/ : yum源文件路径
/etc/sysconfig/network-scripts/ifcfg-eth0 :网卡配置文件
/etc/hosts :主机映射文件
/etc/rc.d/rc.local :开机自动执行脚本
/etc/skel/ :创建用户的初始环境
/etc/defaults/useradd/    或者    /etc/login.defs   :创建的用户信息
/etc/group/    或者   /etc/gshadow/    :管理组文件
/etc/posswd/  或者  /etc/shadow/     :影子文件
/etc/profile/ :权限掩码
# 影子文件分布 以冒号分隔
# /etc/posswd/      密码占用符一般用x表示   有7个字段
# 登录脚本分两种:该用户禁止登录/sbin/noloin  和  该用户允许登录/bin/bask
用户名 : 密码占用符 : 用户id : 组id : 说明 : 家目录 : 登录脚本
# /etc/shadow/      8个字段
用户名 : 加密后的密码 : 用户创建时间 : 创建多久后可以修改密码 : 密码过期天数 : 
强制修改密码提示时间 : 当密码过期后经过多少天该账户会禁用 : 密码过期日期

四、区别

1、 {}和[]的区别

括号 命令 解释
{} touch {a..z} 识别{},创建a到z文件
[] touch [a-z] 不识别[],创建一个[a-z]

2、单引号('')双引号(“”)不加引号的区别

引号 命令 解释
无引号 echo $PATH abcdefg {0..10} 一切符号都是本身意义
单引号 echo '$PATH abcdefg {0..10}' 不识别通配符
双引号 echo "$PATH abcdefg {0..10}" 一切符号不生效

3、parted和fdisk

parted fdisk
mbr和gpt管理 mbr管理方式
没有限制 最大划分2T;大于2T看不见无显示
没有逻辑分区 只能划分4个主分区,其余都是逻辑分区
不能手动保存 分完区后手动保存

4、硬链接与软连接

链接 是否可以夸系统(设备)使用 是否可以手动创建 指向 删除移动源文件后是否影响使用
软链接 可以 可以 文件名 影响
硬链接 不可以 对文件可以,对目录不可以 indoe号 不影响

5、进程和程序

程序 进程
可运行的文件,含有程序员写的代码的可运行文件 运行的程序
静态文件 动态的资源
硬盘上 内存
永久存在 临时存在

五、正则符

^       # 以.....开头
$       # 以....结尾
[]      # 匹配括号里的任意一个字符,再括号与^一起使用表示取反
^$      # 表示的是空行
*       # 表示匹配前一个字符0次到无限次(次数)
.       # 表示任意一个字符
.*      # 表示任意,相当于通配符中的*
+       # 匹配内容一次到无限次(扩展正则)
|       # 或者
()      # 分组
{n}     # 匹配前一个字符n次
{n,m}   # 匹配前一个字符n到m次

六、安装

rpm包,相当于我们在windows下用的.exe文件 xxx.rpm

lrzsz-0.12.20-27.1.el6.x86_64.rpm 安装

cd /                             # 切换到根
mkdir /media/cdrom               # 创建挂载点
mount /dev/sr0 /media/cdrom      # 挂载sr0
cd /media/cdrom/Packages/        # 切换到lrzsz所在文件
rpm -ivh lrzsz-0.12.20-27.1.el6.x86_64.rpm      # 安装lrzsz
# i  表示install
# v 显示安装过程
# h 以#号显示安装过程
rpm -qa lrzsz              # 查找安装的lrzsz应用
rpm -qi lrzsz              # 查看lrzsz的应用信息
rpm -ql lrzsz              # 查看命令和应用安装路径
rpm -qf /usr/bin/sz        # 归属安装包
rpm -e lrzsz               # 卸载lrzsz
# 这是 -e 先别删除 可以从windows桌面或者文件中拖拽到xshell中的当前文件中
# rz是拖进命令

yum安装

cd /                               # 切换到根
mkdir /media/cdrom                 # 创建cdrom
mount /dev/sr0 /media/cdrom        # 挂载sr0
df -h                              # 查看挂载
cd /etc/yum.repos.d                # 切换到yum文件
mkdir backcp                       # 创建backcp   创建部分
mv *.repo backcp                   # 移动所以后缀为repo的文件进入备份
cp backcp/CentOS-Media.repo .      # 复制备份中的CentOS-Media.repo到当前路径
vi CentOS-Media.repo               # 检查文件来源   是否启用软件
# vi 修改gpgchenk=0  enabled=1 
# gpgchenk 的0表示不检查,1表示检查
# enabled 的0表示不启动,1表示启动
yum -y clean all                    # 清理缓存
yum makecache                      # 创建缓存7
# yum文件都是以 .repo 结尾的

源码安装

#获取安装包
下载或者yum直接下载
#配置yum源
yum配置
#下载支持包(httpd支持包包)
浏览器下载
#将源码包导入到系统(服务器系统)(导入需要先安装lrzsz应用)
yum -y install gcc gcc-c++ make   #从物理机使用shell把安装包拖到liunx种
#解压源码包到指定路径(解压到/usr/src)
tar xf http-2.2.12 -C /usr/src
#切换到源码包路径下(切换到/usr/src/httpd)
cd /usr/src/httpd
#进行预配置(指定到某个路径)()
./configure --prefix=/usr/local/apache
echo $?      # 结果必须是0
#进行编译
make
echo $?    # 结果必须是0
#开始安装
make install     # 安装
echo $?     # 结果必须是0

yum的应用

yum -y install gcc          # yum安装gcc     # -y 表示不交互 不询问 
yum -y remove gcc           # yum卸载gcc
yum history                 # yum查看操作历史
yum history undo 操作的id   # yum 回滚
yum search rz(命令的)   # 查看某个命令的安装包
yum provides *bin/rz       # 查询某个命令的安装包

七、创建

1、创建逻辑卷

pvcreate /dev/sd[bc]               # 创建物理卷
vgcreate -s 8 vg0 /dev/sd[bc]      # 创建卷组  vg0为卷组名称
lvcreate -L 5G -n lvg vg0          # 创建逻辑卷  lvg为逻辑卷名称 L指定逻辑卷为多少
mkfs.ext4 /dev/lvg                 # 格式化逻辑卷与卷组
mkdir /date                        # 创建挂载点
mount /dev/lvg /date               # 挂载
# 在线扩容
pvcreate /dev/sdd                  # pv化物理卷
vgdisplay /dev/lvg /dev/sdd        # 扩容系统卷组
# 扩容系统逻辑卷
lvextend -L 10G /dev/lvg           # 直接增加逻辑卷的内容到10G
lvextend -L +10G /dev/lvg          # 在逻辑卷的原基础内存上加10G
lvextend -L +100%FREE /dev/lvg     # 把硬盘剩余所以内存加到指定逻辑卷种

2、创建RAID5

# 添加至少4块硬盘或者系统盘
mdadm -Cv /dev/md5 -L5 -x1 /dev/sd[bcde]
# 格式化
mkfs.ext4 /dev/md5
# 创建data
mkdir data
# 挂载
mount /dev/md5 /data
# 修改/etc/fstab加一行  挂载的命令为创建挂载的目录
# 加 /dev/md5     挂载的目录     ext4     defaults     1 2
vi /etc/fstab
mdadm -D -s > /etc/mdadm.conf
# 修改/etc/mdadm.conf 第一行行尾加auto=yes
vi /etc/mdadm.conf

3、sda毁坏

将系统盘(sda)备份MBR分区到数据盘
1、增加数据盘并且格式化挂载
mkfs.ext4 /dev/sdb
mkdir /data
mount /dev/sdb /data
2、备份sda系统盘
dd if=/dev/sda of=/dev/mbr.bak bs=512 count=1
3、系统盘坏了
dd if=/dev/zero of=/dev/sda bs=512 count=1    # 没坏自毁一次来一遍
reboot  # 重启
4、进入紧急模式
CentOS6    开机时选择re……并不连网
5、进入shell
6、创建挂载点并挂载数据盘到挂载点
mkdir /date
mount /dev/sdb /date
dd if=/date of=/dev/sda bs=512 count=1
7、重启

4、fdisk:mbr分区

创建分区顺序
fdisk /dev/sdb
n                   # 添加一个新分区
p                   # 一级分区
1                   # 分区号
回车                # 第一个气缸(默认1)
+5G                # 最后一个圆柱体
w                  # 保存退出

5、parted创建分区

创建分区顺序:
parted /dev/sdb
mklabel             # 创建新的分区
gpt                 # 分区类型
mkpart              # 做一个分区 
part1               # 分区名称
ext2                # 文件系统类型
1K                  # 起始点
+5G                 # 结束点
q                   # 退出parted模式

6、useradd的使用(创建用户)

# 如果出现bash的问题应该  cp -r /etc/skel/.nash* /root/
useradd user1              # 创建用户user1
head /etc/passwd           # 查看创建的user1 
head /etc/shadow           # 查看创建的user1
passwd user1               # 创建修改user1的密码
# 基本组:创建用户时与用户相同的组,每个用户只能有一个基本组
# 附加组:根据需求将用户添加的其他组,可以有多个附加组
usaradd -g 506 user4       # 创建用户时指定基本组 -g 指定基础组
useradd -G user1 user5     # 指定附加组
useradd -u 508 user8       # 指定uid 指定新用户
useradd -c “test web” user6      # 描述用户信息  -c  扩展名
        -d                 # 共用一个家目录
useradd -M user10          # 不创建家目录
useradd -s /sbin/nologin user11  # 指定登录脚本
useradd -e 20231123 user18 # 指定用户的有效期7655  
useradd -e 7day user10     # -e 也可以指定天数,日期
userdel -r user1           # 不加-r只删除用户不删除家目录,加-r连家目录一起删除
passwd -l user1            # 锁定用户user1
passwd -u user1            # 解锁用户user1
passwd -s user1            # 查看用户的当前状态
gpasswd -a "tom" user4     # 将tom增加到user4的附加组中
groupadd -g 506 user4      # 指定附加组
id user1                   # 查看user1的uid、gid和组
w                          # 查看当前登录的所以用户     平均负载
who                        # 
whoami                     # 

八、特点

开机十部

1、开机时先进行BIOS自建,硬盘插在主板,检测硬盘的完整性和可用性,蜂鸣报警
2、开机进行MBR引导,读取了mbr引导分区,通过2字节效验码识别是否是系统盘,开始进行启动系统。通过引导程序加载启动系统。通过主引导程序加载启动模块
3、进入了grub菜单,在grub菜单里记录,内核信息,和逻辑卷信息
4、启动内核
5、由内核启动系统的一个进程,进程的id是1,1号进程在centos6下叫init进程,在centos7下叫systemd进程
6、启动1号进程以后,1号进程会读取/etc/initrab启动开机模式,进行下一步启动
7、开始进行初始化系统加载/etc/rc.d/init.d
8、读取/etc/rc.d/rcn.d确定当前需要启动的应用
9、读取个人配置脚本:/etc/rc.d/rc.local
10、进入开机界面

linux下有7中开机启动级别:

0:关机
1:单用户模式,此模式免密登录,不支持远程操作,只能是在主机旁登录
2、无网络文件系统的多用户模式
3、有网络文件系统的多用户模式
4、开发者模式或者是叫保留模式(这种模式未被启动)
5、桌面模式(系统了桌面模式,如果没装没有用)
6、重启

九、密码丢失

centOS6的管理员(root)密码找回

屏幕初起亮屏时,按e
选择第2个
下一部按e
下一部加 空格加1
回车
下一步按b
现在就可以修改root密码了 passwd root
重启 密码为你修改的密码

centOS7

屏幕初起亮屏时, 按e
下一步在liunx16的行尾加空格rd.break
CTRL+X 下一步
挂载mount -o remount,rw /sysroot
切换到/sysroot 命令:chroot /sysroot
修改root密码:passwd root
创建/.autorelabel文件 :touch /.autorelabel
退出sh-4.2#模式:exit
重启:reboot
登录

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,919评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,567评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,316评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,294评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,318评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,245评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,120评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,964评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,376评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,592评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,764评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,460评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,070评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,697评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,846评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,819评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,665评论 2 354

推荐阅读更多精彩内容