Linux操作系统(Centos7)零基础入门,超详细!2

简介: Linux操作系统(Centos7)零基础入门,超详细!

3.Linux核心实用命令

3.1.Linux中find命令的用法

(1)find的基本用法:find 路径 选项

  • 各个参数:
-type #根据文件类型查找,f为文件,d为目录
-name #根据文件名查找
-perm #根据文件权限查找,比如-rw-------,r为4,w为2,所以为6,后面全是0 ,为600,三位一加
-user #根据文件所属主 
  • 举例:
find /var/log/ -type f -name "*.log"
查找/var/log目录下有.log结尾的文件


4bd3af5b796d4b80bc3d19c05c6aae69.jpg

find /var/log/ -type d
查找/var/log目录下的所有目录

454aae64390e437c878bec0a40ce7411.jpg

find /var/log/ -perm 600 -type f -name "*.log"
查找/var/log 下文件权限为所有者读写权限,所有组无权限,其他无权限,以.log结尾的文件。

051a30951b95430ebfd43db221c2209a.jpg

find /var/log/ -user root -type f -name "*.log"
查找/var/log 下所属者为root,以.log结尾的文件


9734a4a8b6fd4ce58824d52cbc8e7dea.jpg

(2)find的高级用法

参数:

;   #可以执行多条命令
\   #转义符,使得这条命令结束
{}    #把find命令的结果传递给{}
-exec #执行

举例:

find /var/log/ -type f -name "*.log" -exec wc -l {} \;
显示find查询结果的行数


e72bec7093ac4168a9067814f60850b7.jpg

find /var/log -type f -name "*.log" -exec cp -a {} /home/test \;
将find查询到的结果复制到home的test目录下

ea5d99e97f8248f68fed87174cda7cb0.jpg

-mtime #根据文件的变更时间来查找,-n表示更改时间距现在的n天以内,+n表示更改时间距现在的n天以外。
find /var/log -mtime -2 -type f -name "*.log" -exec ls -lrt {} \; 
显示前两天到今天这段时间内的以.log结尾的文件

52c777a3c2d841d7a2a474a99999e07f.jpg

find /var/log -mtime +2 -type f -name "*.log" -exec ls -lrt {} \; 
显示前两天之前的所有.log结尾的文件

b2c64c7f955b4520aa32c32dde3a5d92.jpg

3.2.防火墙以及selinux介绍

(1)firewall防火墙的使用

防火墙主要用于保护信息安全防护,主要有软件防火墙和硬件防火墙,firewalld防火墙是软件防火墙,在centos7之前默认采用的是防火墙是iptables,而在centos7则采用的是firewall
  • 查看firewalld服务状态
systemctl status firewalld

181bc39b14be431caa3d9f0896493ca8.jpg


0ca7543e4a094641ad2795b7a4f79db6.jpg

  • 开启、重启、关闭firewall服务
开启:systemctl start firewalld.service
关闭:systemctl stop firewalld.service
重启:systemctl restart firewalld.service
  • 查看firewall防火墙的状态
firewall-cmd --state

5dae1ddb83df43e780310726c6a64ea5.jpg


885aff8c3cd747f4bbe42d14617e088c.jpg

  • 查看防火墙开放端口规则
firewall-cmd --list-port

b894fded2d3e4f33a03c22fe8da66a8a.jpg

  • 开放80端口
firewall-cmd --permanent --add-port=80/tcp  (注意:--permanent是永久生效,不加这个参数重启后就失效)
  • 加载生效开放的端口
firewall-cmd --reload
  • 查询指定端口80是否开放
firewall-cmd --query-port=80/tcp

a82966ce8d174654a029c1e8b0b5f795.jpg

  • 关闭80端口
firewall-cmd --remove-port=80/tcp


55287136cb57486ea60b6f0ff3d560a4.jpg

安装telnet命令:yum -y install xinetd telnet telnet-server (确认联网状态)

安装netstat与ifconfifig命令:yum -y install net-tools(确认联网状态)

(2)SeLinux的三种共工作模式:配置文件路径:/etc/selinux/config

  • enforcing:强制模式,违反selinux规则的行为将会被阻止并记录到日志中。
  • permissive:宽容模式,违反selinux规则的行为将会记录到日志,但不会阻止。
  • disabled:关闭模式。

3.3.telnet与scp的用法

(1)企业中telnet命令的使用

  • telnet命令主要用于测试到某台机器的某个端口是否畅通
  • telnet这个命令依赖于xinetd夫妇于telnet-server服务
  • telnet命令的安装:yum -y install xinetd telnet telnet-server (确认联网状态)
  • telnet命令的用法:telnet IP地址 端口 ;如telnet 192.168.235.130 80

(2)企业中scp命令的使用

scp命令用于服务其之间文件或者目录的拷贝

  • 从本机拷贝文件到别的机器:scp 本机文件的存放路径 root@服务器IP地址:服务器目标路径
scp /root/vmware.tar root@192.168.235.129:/root/
将当前机器的vmware.tar复制到192.168.235.129机器的root目录下

6ba26976e8584f80b8c36dba95ae6ba7.jpg

在130机器上执行命令:scp /root/vmware.tar root@192.168.235.129:/root/


46a9fa9150aa42428e5a614429dd4ec6.jpg


ada18e1013d047c7a1dbbfb2290757bc.jpg

  • 从别的机器拷贝文件到本地目录:scp root@服务器IP:服务器目标文件的路径 本机文件的存放路径
scp root@192.168.235.129:/root/vmware-tools.tar.xz /root/
将129机器的vmware-tools.tar.xz拷贝到本地的root目录下

57f334f7ba194939a871f916ff6d0105.jpg

执行命令:scp root@192.168.235.129:/root/vmware-tools.tar.xz /root/

106aa16fae5b4fbe8459adfbf47f3c36.jpg

c23eca7d0c02411abffb955e629940c8.jpg

  • -r参数:递归的作用(拷贝目录,不加-r会报错)
scp -r vmware-tools-distrib root@192.168.235.129:/root/


4d0c389442244805a76e31decfb93a5a.jpg

3.4.进程管理命令

(1)ps -ef | more

UID         PID   PPID  C STIME TTY          TIME CMD
root          2      0  0 13:19 ?        00:00:00 [kthreadd]
root          3      2  0 13:19 ?        00:00:00 [ksoftirqd/0]
root          5      2  0 13:19 ?        00:00:00 [kworker/0:0H]
UID:用户名,代表当前进程是那个用户启动的
PID:进程ID
PPID:父进程号
C:CPU占用率
STIME:进程启动的时间
TTY:TTY终端
TIME:进程执行起到现在总的CPU占用时间
CMD:启动这个进程的命令

(2)ps aux | more

USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          2  0.0  0.0      0     0 ?        S    13:19   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    13:19   0:00 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   13:19   0:00 [kworker/0:0H]
USER:那个用户启动了这个命令
PID:进程的ID
%CPU:CPU的占用率
%MEM:内存的使用率
VSR:如果一个进程完全驻留在内存中一共使用了多长时间
RSS:进程当前占用了多少内存
TTY:tty终端
STAT:表示当前进程状态(S处于休眠状态,D不可中断状态,Z僵尸状态,X死掉的状态)
START:启动这个命令的时间点
TIME:进程总共占用CPU的时间
COMMAND:启动这个进程的命令

3.5.处理海量数据之cut命令

(1)cut命令的基本使用

cut应用场景:通常对数据进行列的提取

语法:cut [选项] …[file]

选项:
-d  #指定分隔符
-f  #指定截取区域
-c  #一字符为单位进行分割


8af335d7ff7345c09502cf798a777189.jpg

(2)以’:'为分隔符,截取出/etc/passwd的第一列跟第三列

cut -d ':' -f 1,3 /etc/passwd
cat /etc/passwd | cut -d ':' -f 1,3



7b70a3457460458d87d8ab46e682f949.jpg

(3)以’:'为分隔符,截取出/etc/passwd的第一列到第三列

cut -d ':' -f 1-3 /etc/passwd
cat /etc/passwd | cut -d ':' -f 1-3



16250b2a4ec34de6b065635206fc7223.jpg

(4)以’:'为分隔符,截取出/etc/passwd的第二列到最后一列

cut -d ':' -f 2- /etc/passwd
cat /etc/passwd | cut -d ':' -f 2-



7f0dd27b0f984430a306bf754442cdb3.jpg

(5)截取/etc/passwd文件从第二个字符到第九个字符

cut -c 2-9 /etc/passwd
cat /etc/passwd | cut -c 2-9


12c820bada34488d8fbd7c106210dd2c.jpg

(6)截取linux上面所有可登陆普通用户

cat /etc/passwd | grep '/bin/bash' | cut -d ':' -f 1 | grep -v root

bdc6ffd1fff74bc481b3f660b7d90c01.jpg

3.6.处理海量数据之awk命令

(1)awk简介

awk是一个非常强大的数据处理命令,支持条件判断,数组,循环等功能,与grep,sed被称为linux三剑客

awk的应用场景:通常对数据进行列的提取

语法:

(1)awk '条件1 {执行动作} 条件2 {执行动作}...' 文件名
(2)awk [选项] '条件1 {执行动作} 条件2 {执行动作}...' 文件名

(2)printf与print的用法

  • printf #格式化输出,不会自动换行
  • print #打印出内容,默认自动换行
  • %s #代表字符串
  • \t #制表符
  • \n #换行符
printf '%s\t%s\t%s\t%s\t%s\t%s\n' 1 2 3 4 5 6


336173ec3ed9465e92097a0818b25bad.jpg

(3)awk的简单用法

  • NR #行号
  • $1 #代表第一列
  • $2 #代表第二列
  • $NF #代表最后一列
  • 截取行数是4的第一个在字符
df -h | awk 'NR==4 {print $1}'

4f3fe7fb7fa14110a1d92ce1c6295ae0.jpg

  • 截取行数是2到5的第一个字符
df -h | awk '(NR>=2 && NR<-5) {print $1}'


388fbd0300234574bde29251d238d9e0.jpg

  • 截取最后一个字符
df -h | awk '{print $NF}'


4fe9675fa3c74b59a8b1237e1156dec8.jpg

  • 以’:’ 为分隔符, -F #指定分割符
awk -F":" '{print $1}' /etc/passwd


d7e749f374d747da97c4d0d221a20535.jpg

  • BEGIN#在读取所有行内容前就开始执行,一般用来初始化操作
cat /etc/passwd | awk 'BEGIN {FS=":"} {print $1}'

473c88bb9fb542298319bac05cc715b8.jpg

df -h | grep -v '文件系统' | awk 'BEGIN {printf "文件系统使用情况:\n\n"} {print $1} {printf "文件系统使用率:"} {print $5}'

e966c00b8892403cb82bf6e5955b0bc5.jpg

  • END #结束的时候执行
df -h | grep -v '文件系统' | awk 'BEGIN {printf "文件系统使用情况:\n\n"} {printf $1} {printf "文件系统使用率:"} {print $5} END {printf "一切正常\n"}' 

6ef273d73bb04b6d9bfd63895911a3bc.jpg

3.7.处理海量数据之sed命令

sed主要对数据进行处理(选取、新增、替换、删除、搜索)

sed语法:sed [选项] [动作] 文件名

常见的选项与参数:

-n  #把匹配到的行输出打印到屏幕
p #以行为单位进行打印,通常与-n一起使用
d #删除
a #在行的下面插入新的内容
i #在行的上面插入新的内容
c #替换
指定字符串替换:s/要被取代的内容/新的字符串/g #指定内容进行替换
-i  #对源文件进行修改(高危操作,慎用,用之前要备份源文件)
搜索:在文件中搜索内容 
-e  #表示可以执行多条动作

(1)把第2行的文件系统打印在屏幕上

df -h | sed -n '2p'

13370939da7248889e623d8deaaaa5d4.jpg

(2)删除第二行显示,不会对源文件产生影响

df -h | sed '2d'

3a38d11bf6824bd1a2488a051714fe9b.jpg

(3)在第二行下面插入新的内容

df -h | sed '2a 1211212121212121212121212121'


ae92a18e23ab4364a1c4a09263321f10.jpg

(4)在第二行上面插入新的内容

df -h | sed '2i 1211212121212121212121212121'


ebbd567c9bf5462686b0c32974af0edc.jpg

(5)将第二行替换成指定字符

df -h | sed '2c 1211212121212121212121212121'


4484fa6637c84bf4a16df9b0e5556bb1.jpg

(6)把centos-root替换成centos8

df -h | sed 's/centos-root/centos8/g'

ff5bb044f9144004b7d2e3a643edcd55.jpg

(7)对源文件进行修改

sed -i 's/centos7/centos8/g' df.txt

36d31c0fed4148878f84e2e18ff6f7d0.jpg

(8)搜索文件中带有TMP的字符

sed -n '/TMP/p' df.txt


dfededa8b8cf4b46a627850596cb0d28.jpg

(9)把centos8替换成centos7并且搜索文件中带有TMP的字符

sed -e 's/centos8/centos7/g' -e 's/TMD/g' df.txt

fbc0b03573fc41789a9c26378a1ebcfe.jpg


相关文章
|
3月前
|
Ubuntu 物联网 Linux
从零安装一个Linux操作系统几种方法,以Ubuntu18.04为例
一切就绪后,我们就可以安装操作系统了。当系统通过优盘引导起来之后,我们就可以看到跟虚拟机中一样的安装向导了。之后,大家按照虚拟机中的顺序安装即可。 好了,今天主要介绍了Ubuntu Server版操作系统的安装过程,关于如何使用该操作系统,及操作系统更深层的原理,还请关注本号及相关圈子。
|
3月前
|
监控 Ubuntu Linux
什么Linux,Linux内核及Linux操作系统
上面只是简单的介绍了一下Linux操作系统的几个核心组件,其实Linux的整体架构要复杂的多。单纯从Linux内核的角度,它要管理CPU、内存、网卡、硬盘和输入输出等设备,因此内核本身分为进程调度,内存管理,虚拟文件系统,网络接口等4个核心子系统。
234 0
|
3月前
|
Unix 物联网 Linux
都什么年代了,你还不懂啥是Linux操作系统
至于华为鸿蒙操作系统是不是独树一帜,这个留给各位阅读本文的网友们来讨论
82 0
|
3月前
|
Web App开发 缓存 Rust
|
3月前
|
安全 Linux iOS开发
linux属于什么操作系统
Linux是一种自由和开放源代码的操作系统,具有高度的灵活性和可定制性。与常见的操作系统如Windows和macOS相比,Linux具有自由、安全和稳定等优势。Linux已广泛应用于服务器、桌面电脑、超级计算机和嵌入式设备等领域,并且在未来的发展前景广阔。由于其自由和开放源代码的特性,Linux还促进了计算机技术和社区的发展,为全球的计算机用户提供了更多的选择和可能性。
|
3月前
|
Ubuntu Unix Linux
操作系统的最强入门科普(Unix/Linux篇)
下期文章,小枣君会重点聊聊Windows和macOS那条线。敬请关注! 如果大家觉得文章不错,还请帮忙多多转发!谢谢!
|
3月前
|
安全 Ubuntu Unix
关于Linux操作系统,你必须要知道的事
我们可以看到无论是Debian还是Buildroot都有各自的特点,为客户提供了更大的选择空间和灵活性,大家可以根据自己的需求选择合适的版本来满足终端用户的体验和功能需求。从平技术将会一直关注更多更安全、灵敏、易于开发的Linux版本,做好适配工作,不断为客户带来“简单开发、方便应用”的使用体验。
|
3月前
|
安全 Ubuntu Linux
如何安装Linux操作系统?
此时,您可以选择重新启动计算机,然后从硬盘上的Linux系统启动。以上是一个大致的安装过程。请注意,不同的Linux发行版可能会在细节上有所差异,因此在进行安装之前,请确保您阅读并理解了相应发行版的安装指南或文档。
|
Ubuntu Linux Shell
【Linux操作系统】探秘Linux奥秘:shell 编程的解密与实战
【Linux操作系统】探秘Linux奥秘:shell 编程的解密与实战
206 0
|
Ubuntu Linux Shell
【Linux操作系统】探秘Linux奥秘:用户、组、密码及权限管理的解密与实战
【Linux操作系统】探秘Linux奥秘:用户、组、密码及权限管理的解密与实战
248 0
下一篇
开通oss服务