Linux(centos7.5)基础命令(防火墙、vi、grep、awk、sed、字符串截取)

一. 防火墙相关

  1. 查看防火墙状态
    firewall-cmd --state
  2. 停止防火墙
    systemctl stop firewalld.service
  3. 启动防火墙
    systemctl start firewalld.service
  4. 查看开放的所有端口
    firewall-cmd --list-ports
  5. 开启指定端口(以80端口为例)
    firewall-cmd --zone=public --add-port=80/tcp --permanent(注意需要重启防火墙)
  6. 关闭指定端口
    firewall-cmd --zone=public --remove-port=2181/tcp --permanent
  7. 指定ip放通端口。本服务器上,指定192.xxx.xx.xx放通12341端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.xxx.xx.xx" port protocol="tcp" port="12341" accept"
  1. 重启防火墙命令
    systemctl restart firewalld.service

二. vi命令

  1. 显示行号
:set number
  1. 删除一行
dd
  1. 格式化json文件
:%!python3 -m json.tool

三. grep命令

grep是linux中用于处理文件的工具之一。grep搜索输入文件,查找与正则表达式匹配的行,并将每个匹配的行标准输出。

[root@www ~]# grep [-acinv] [--color=auto] '搜寻字符串' filename
选项与参数:
-a :将 binary 文件以 text 文件的方式搜寻数据
-c :计算找到 '搜寻字符串' 的次数
-i  :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,即显示出没有 '搜寻字符串' 内容的那一行!
-r :递归查找。
-l  : 列出文件内容符合指定的样式的文件名称。
-L : 列出文件内容不符合指定的样式的文件名称
--color=auto :可以将找到的关键词部分加上颜色的显示

简单举例:
(1)将/etc/passwd中没有出现root的行取出来

# grep -v root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

(2)将/etc/passwd中没有出现root和nologin的行取出来

# grep -v root /etc/passwd | grep -v nologin
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

(3)根据文件内容递归查找目录

# grep ‘energywise’ *           #在当前目录搜索带'energywise'行的文件
# grep -r ‘energywise’ *        #在当前目录及其子目录下搜索'energywise'行的文件
# grep -l -r ‘energywise’ *     #在当前目录及其子目录下搜索'energywise'行的文件,但是不显示匹配的行,只显示匹配的文件

grep与正则表达式

  1. [] 里面不论有几个字节,都谨代表某『一个』
  2. 行首与行尾字节 ^ $
  3. 任意一个字节 . 与重复字节 *
  4. { }限定字符范围
. (小数点):代表『一定有一个任意字节』的意思;
* (星号):代表『重复前一个字符, 0 到无穷多次』的意思,为组合形态

举例:
(1)找出 g??d 的字串,亦即共有四个字节, 起头是 g 而结束是 d

[root@www ~]# grep -n 'g..d' regular_express.txt
1:"Open Source" is a good mechanism to develop programs.
9:Oh! The soup taste good.
16:The world <Happy> is the same with "glad".

(2)列出有 oo, ooo, oooo 等等的数据,也就是说,至少要有两个(含) o 以上

[root@www ~]# grep -n 'ooo*' regular_express.txt
1:"Open Source" is a good mechanism to develop programs.
2:apple is my favorite food.
3:Football game is not use feet only.
9:Oh! The soup taste good.
18:google is the best tools for search keyword.
19:goooooogle yes!

(3)找出 g 开头与 g 结尾的行,当中的字符可有可无

[root@www ~]# grep -n 'g.*g' regular_express.txt
1:"Open Source" is a good mechanism to develop programs.
14:The gd software is a library for drafting programs.
18:google is the best tools for search keyword.
19:goooooogle yes!
20:go! go! Let's go.

(4)找出 g 后面接 2 到 5 个 o ,然后再接一个 g 的字串

[root@www ~]# grep -n 'go\{2,5\}g' regular_express.txt
18:google is the best tools for search keyword.

(5)找出 2 个 o 以上的 goooo…g 除了可以是 gooo*g ,也可以是

[root@www ~]# grep -n 'go\{2,\}g' regular_express.txt
18:google is the best tools for search keyword.
19:goooooogle yes!

四. awk命令

awk是一种处理文本文件的语言、是一个强大的文本分析工具
语法

awk [选项参数] 'script' var=value file(s)
或
awk [选项参数] -f scriptfile var=value file(s)

选项参数说明

  • -F fs or --field-separator fs
    指定输入文件折分隔符,fs是一个字符串或者是一个正则表达式,如-F:

举例
编辑一个log,txt文件

2 this is a test
3 Do you like awk
This's a test
10 There are orange,apple,mongo

(1)

每行按空格或TAB分割,输出文本中的1、4项

[root@iZ2zedqr9yeos47fg4uor5Z shellscript]# cat log.txt
2 this is a test
3 Do you like awk
This's a test
10 There are orange,apple,mongo
[root@iZ2zedqr9yeos47fg4uor5Z shellscript]# awk '{print $1,$4}' log.txt
2 a
3 like
This's
10 orange,apple,mongo

(2)
-F 指定分隔字符分割
使用","分割

[root@iZ2zedqr9yeos47fg4uor5Z shellscript]# cat log.txt
2 this is a test,hahaha
3 Do you like awk
This's a test
10 There are orange,apple,mongo
[root@iZ2zedqr9yeos47fg4uor5Z shellscript]# awk -F , '{print $2}' log.txt
hahaha


apple

五. sed命令

sed命令可以对文本文件的内容进行新增、取代、删除、插入等
语法

sed [-hnV][-e<script>][-f<script文件>][文本文件]

参数说明

-e<script>或--expression=<script> 以选项中指定的script来处理输入的文本文件。
-f<script文件>或--file=<script文件> 以选项中指定的script文件来处理输入的文本文件。
-h或--help 显示帮助。
-n或--quiet或--silent 仅显示script处理后的结果。
-V或--version 显示版本信息。

动作说明

a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何东东;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正则表达式!例如 1,20s/old/new/g 就是啦!

实例
(1)
替换
将log.txt文件中的test字符串替换成testUpdate字符串

[root@iZ2zedqr9yeos47fg4uor5Z shellscript]# cat log.txt
2 this is a test,hahaha
3 Do you like awk
This's a test
10 There are orange,apple,mongo
[root@iZ2zedqr9yeos47fg4uor5Z shellscript]# sed 's/test/testUpdate/g' log.txt
2 this is a testUpdate,hahaha
3 Do you like awk
This's a testUpdate
10 There are orange,apple,mongo
[root@iZ2zedqr9yeos47fg4uor5Z shellscript]# cat log.txt
2 this is a test,hahaha
3 Do you like awk
This's a test
10 There are orange,apple,mongo

可以使用-i直接对原文件进行修改

[root@iZ2zedqr9yeos47fg4uor5Z shellscript]# cat log.txt
2 this is a test,hahaha
3 Do you like awk
This's a test
10 There are orange,apple,mongo
[root@iZ2zedqr9yeos47fg4uor5Z shellscript]# sed -i 's/test/testUpdate/g' log.txt
[root@iZ2zedqr9yeos47fg4uor5Z shellscript]# cat log.txt
2 this is a testUpdate,hahaha
3 Do you like awk
This's a testUpdate
10 There are orange,apple,mongo
[root@iZ2zedqr9yeos47fg4uor5Z shellscript]#

(2)
删除
将log.txt文件中的test字符串的行删除

[root@iZ2zedqr9yeos47fg4uor5Z shellscript]# cat log.txt
2 this is a testUpdate,hahaha
3 Do you like awk
This's a testUpdate
10 There are orange,apple,mongo
[root@iZ2zedqr9yeos47fg4uor5Z shellscript]# sed -i '/test/d' log.txt
[root@iZ2zedqr9yeos47fg4uor5Z shellscript]# cat log.txt
3 Do you like awk
10 There are orange,apple,mongo
[root@iZ2zedqr9yeos47fg4uor5Z shellscript]#

将log.txt文件中第2~5行的内容全部删除

[root@iZ2zedqr9yeos47fg4uor5Z shellscript]# cat log2.txt
 LINUX!
Linux is a free unix-type opterating system.
This is a linux testfile!
Linux test
Google
Taobao
Runoob
Tesetfile
Wiki

[root@iZ2zedqr9yeos47fg4uor5Z shellscript]# sed -i '2,5d' log2.txt
[root@iZ2zedqr9yeos47fg4uor5Z shellscript]# cat log2.txt
 LINUX!
Taobao
Runoob
Tesetfile
Wiki

其中-i会将修改写入原文件中

六. 字符串截取

参考网址:http://c.biancheng.net/view/1120.html

  1. 从指定位置开始截取

(1)从左边开始计数

${string: start :length}

其中,string 是要截取的字符串,start 是起始位置(从左边开始,从 0 开始计数),length 是要截取的长度(省略的话表示直到字符串的末尾)

url="c.biancheng.net"
echo ${url: 2: 9}

结果为 biancheng

(2)从右边开始计数

${string: 0-start :length}

同第 1) 种格式相比,第 2) 种格式仅仅多了0-,这是固定的写法,专门用来表示从字符串右边开始计数

url="c.biancheng.net"
echo ${url: 0-13: 9}

结果为 biancheng。从右边数,b是第 13 个字符

  1. 从指定字符串开始截取

(1)使用 # 号截取右边字符

${string#*chars}
url="http://c.biancheng.net/index.html"
echo ${url#*:}

结果为//c.biancheng.net/index.html

(2)使用 % 截取左边字符

${string%chars*}

七. scp命令

  1. 功能:主要实现跨服务器的文件传输
  2. scp协议使用的默认端口号:22
  3. SCP协议常用端口号修改方法
1、备份原sshd_config文件
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

2、修改sshd_config文件,添加或修改如下行
Port 2222

3、重启sshd服务,使配置生效
service sshd restart

上述方法中,将SCP端口号修改为2222,可以按需进行修改。

  1. 本机复制文件到远程服务器
    scp -P 端口号 -r 本地文件地址 用户名@地址:文件上传地址
将本地主机的/tmp目录下的test1文件拷贝到远程主机的/tmp目录下
scp /tmp/test1 root@host1:/tmp
传”-r”,把本地主机的/tmp目录上传到远程主机host1的/tmp目录下
scp -r /tmp root@hotst1:/tmp
  1. 远程服务器文件复制到本机
    scp -P 端口号 -r 用户名@地址:文件地址 本地地址
从远程主机host1中的/tmp/目录下拷贝test1 文件到本地主机的/tmp目录
scp root@host1:/tmp/test1 /tmp
传”-r”,把host1主机下的tmp目录拷贝到本地主机的/tmp目录下
scp -r root@host1:/tmp  /tmp
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
CentOS 7 是一个流行的 Linux 发行版,提供了许多命令和工具来管理和操作系统。以下是一些常用的 CentOS 7 Linux 命令: 1. ls -ld:显示目录的详细信息。例如,使用命令 "ls -ld /dev" 可以查看 /dev 目录的详细信息。 2. ls -a:显示所有文件,包括以 "." 开头的隐藏文件。例如,使用命令 "ls -a" 可以显示当前目录下的所有文件和隐藏文件。 3. cat -n:显示文件内容,并显示行号。例如,使用命令 "cat -n passwd" 可以显示 passwd 文件的内容,并显示每行的行号。 4. cd:切换当前工作目录。例如,使用命令 "cd /var/log" 可以将当前工作目录切换到 /var/log 目录。 5. pwd:显示当前工作目录的路径。例如,使用命令 "pwd" 可以显示当前所在的路径。 6. mkdir:创建新的目录。例如,使用命令 "mkdir new_directory" 可以在当前目录下创建名为 new_directory 的新目录。 7. touch:创建新的空文件或更新已有文件的时间戳。例如,使用命令 "touch new_file.txt" 可以创建一个名为 new_file.txt 的新文件。 8. cp:复制文件或目录。例如,使用命令 "cp file1.txt file2.txt" 可以将 file1.txt 复制为 file2.txt。 9. mv:移动文件或目录,或者重命名文件或目录。例如,使用命令 "mv file1.txt directory/" 可以将 file1.txt 移动到 directory 目录下。 10. rm:删除文件或目录。例如,使用命令 "rm file.txt" 可以删除名为 file.txt 的文件。 11. grep:在文件中搜索指定的模式。例如,使用命令 "grep pattern file.txt" 可以在 file.txt 文件中搜索指定的 pattern。 以上是一些常用的 CentOS 7 Linux 命令,您还有其他关于 CentOS 7 Linux 命令的问题吗?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值