grep 命令是在文件中提取符合条件的行,也就是分析一行的信息,如果行中包含需要的信息,就把该行提取出来。而如果要进行列提取,就要利用 cut 命令了。 不过要小心,虽然 cut 命令用于提取符合条件的列,但是也要一行一行地进行数据提取。也就是说,先要读取文本的第一行数据,在此行中判断是否有符合条件的字段,然后再处理第二行数据。我们也可以把 cut 成为字段提取命令。命令格式如下: [root@localhost ~]# cut [选项] 文件名 选项: -f 列号:提取第几列; -d 分隔符:按照指定分隔符分割列; -c 字符范围:不依赖分隔符来区分列,而是通过字符范围(行首为 0)来进行字段提取。"n-"表示从第 n 个字符到行尾;"n-m"表示从第 n 个字符到第 m 个字符;"-m"表示从第 1 个字符到第 m 个字符; cut 命令的默认分隔符是制表符,也就是 Tab 键,不想对空格符支持得不怎么好。我们先建立一个测试文件,然后看看 cut 命令的作用。 [root@localhost ~]# vi student.txt ID Name gender Mark 1 Liming M 86 2 Sc M 90 3 Gao […]
Category: 服务器
if [ $# -ne 1 ];then的意思是,如果shell传递到脚本的参数不等于1,则执行某命令。 $#:是指传递到脚本的参数个数。 -ne:是指不等于则为真。 if condition;then 是shell中的流程控制语法,意思是如果condition位真,则执行后面的语句。 扩展资料 1、shell几个特殊字符用来处理参数介绍: $*:以一个单字符串显示所有向脚本传递的参数。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 $$:脚本运行的当前进程ID号。 $!:后台运行的最后一个进程的ID号。 2、shell数值测试符号介绍: -eq:等于则为真。 -gt:大于则为真。 -lt:小于则为真。
shell循环 shell循环的分类 1、for 2、while 3、until for循环结构 for 变量 in 列表; do 循环体 done 在这种语法中,for 循环的次数取决于 in 后面值的个数(以空格分隔),有几个值就循环几次,并且每次循环都把值赋予变量。也就是说,假设 in 后面有三个值,for 会循环三次,第一次循环会把值 1 赋予变量,第二次循环会把值 2 赋予变量,以此类推。 1、求1加到100的和 这里要用到shell求和的命令 先学会求和就好说了https://www.qumai8.cn/2019/08/01/1999.html #!/bin/bash # sum of 1 to 100 Sum=0 for i in {1..100};do Sum=$(($Sum+$i)) done echo "Sum is $Sum" 2、依次向/etc/passwd中的每个用户问好,并显示对方的shell,例如: Hello,root,your shell: /bin/bash #!/bin/bash # UserNum=`wc -l /etc/passwd | […]
for 循环是固定循环,也就是在循环时已经知道需要进行几次循环。有时也把 for 循环称为计数循环。 for 循环的语法有如下 2 种。 语法一 for 变量 in 值1 值2 值3… do 程序 done 在这种语法中,for 循环的次数取决于 in 后面值的个数(以空格分隔),有几个值就循环几次,并且每次循环都把值赋予变量。也就是说,假设 in 后面有三个值,for 会循环三次,第一次循环会把值 1 赋予变量,第二次循环会把值 2 赋予变量,以此类推。 【例 1】打印时间。 [root@localhost ~]# vi sh/for.sh #!/bin/bash 打印时间 for time in morning noon afternoon evening do echo "This time is $time!" done 解释一下脚本思路:in 值后面有 4 个字符串,所以这个 […]
Linux 命令大全 xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。 xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。 xargs 也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。 xargs 默认的命令是 echo,这意味着通过管道传递给 xargs 的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。 xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令。 之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了 xargs 命令,例如: find /sbin -perm +700 |ls -l #这个命令是错误的 find /sbin -perm +700 |xargs ls -l #这样才是正确的 xargs 一般是和管道一起使用。 命令格式: somecommand |xargs -item command 参数: -a file 从文件中读入作为sdtin -e flag ,注意有的时候可能会是-E,flag必须是一个以空格分隔的标志,当xargs分析到含有flag这个标志的时候就停止。 -p 当每次执行一个argument的时候询问一次用户。 -n num 后面加次数,表示命令在执行的时候一次用的argument的个数,默认是用所有的。 -t […]
Linux wc命令用于计算字数。 利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。 语法 wc [-clw][--help][--version][文件...] 参数: -c或--bytes或--chars 只显示Bytes数。 -l或--lines 只显示行数。 -w或--words 只显示字数。 --help 在线帮助。 --version 显示版本信息。 实例 在默认的情况下,wc将计算指定文件的行数、字数,以及字节数。使用的命令为: wc testfile 先查看testfile文件的内容,可以看到: $ cat testfile Linux networks are becoming more and more common, but scurity is often an overlooked issue. Unfortunately, in today’s environment all networks are potential hacker targets, fro0m tp-secret military research networks […]
看了前面一节:linux shell数据重定向(输入重定向与输出重定向)详细分析 估计还有一些朋友是头晕晕的,好复杂的重定向了。这次我们看下管道命令了。shell管道,可以说用法就简单多了。 管道命令操作符是:”|”,它仅能处理经由前面一个指令传出的正确输出信息,也就是 standard output 的信息,对于 stdandard error 信息没有直接处理能力。然后,传递给下一个命令,作为标准的输入 standard input. 管道命令使用说明: 先看下下面图: command1正确输出,作为command2的输入 然后comand2的输出作为,comand3的输入 ,comand3输出就会直接显示在屏幕上面了。 通过管道之后:comand1,comand2的正确输出不显示在屏幕上面 注意: 1、管道命令只处理前一个命令正确输出,不处理错误输出 2、管道命令右边命令,必须能够接收标准输入流命令才行。 实例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 [chengmo@centos5 shell]$ […]
一、前言 安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。 SELinux 主要由美国国家安全局开发。2.6 及以上版本的 Linux 内核都已经集成了 SELinux 模块。 SELinux 的结构及配置非常复杂,而且有大量概念性的东西,要学精难度较大。很多 Linux 系统管理员嫌麻烦都把 SELinux 关闭了。 如果可以熟练掌握 SELinux 并正确运用,我觉得整个系统基本上可以到达"坚不可摧"的地步了(请永远记住没有绝对的安全)。 掌握 SELinux 的基本概念以及简单的配置方法是每个 Linux 系统管理员的必修课。 本文均在 CentOS 7.4.1708 系统中操作。 本文纯属个人学习经验分享交流,出错再所难免,仅供参考!如果发现错误的地方,可以的话麻烦指点下,特别感谢! 二、SELinux 的作用及权限管理机制 2.1 SELinux 的作用 SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。 设想一下,如果一个以 root 身份运行的网络服务存在 0day 漏洞,黑客就可以利用这个漏洞,以 root 的身份在您的服务器上为所欲为了。是不是很可怕? SELinux 就是来解决这个问题的。 2.2 DAC 在没有使用 SELinux […]
宽为限 紧用功 功夫到 滞塞通 firewall-cmd Linux上新用的防火墙软件,跟iptables差不多的工具。 补充说明 firewall-cmd 是 firewalld的字符界面管理工具,firewalld是centos7的一大特性,最大的好处有两个:支持动态更新,不用重启服务;第二个就是加入了防火墙的“zone”概念。 firewalld跟iptables比起来至少有两大好处: firewalld可以动态修改单条规则,而不需要像iptables那样,在修改了规则后必须得全部刷新才可以生效。 firewalld在使用上要比iptables人性化很多,即使不明白“五张表五条链”而且对TCP/IP协议也不理解也可以实现大部分功能。 firewalld自身并不具备防火墙的功能,而是和iptables一样需要通过内核的netfilter来实现,也就是说firewalld和 iptables一样,他们的作用都是用于维护规则,而真正使用规则干活的是内核的netfilter,只不过firewalld和iptables的结 构以及使用方法不一样罢了。 语法 finger(选项)(参数) 实例 # 安装firewalld yum install firewalld firewall-config systemctl start firewalld # 启动 systemctl status firewalld # 或者 firewall-cmd --state 查看状态 systemctl disable firewalld # 停止 systemctl stop firewalld # 禁用 # 关闭服务的方法 # 你也可以关闭目前还不熟悉的FirewallD防火墙,而使用iptables,命令如下: systemctl stop firewalld […]
.key 转换成 .pem: openssl rsa -in temp.key -out temp.pem .crt 转换成 .pem: openssl x509 -in tmp.crt -out tmp.pem