Linux相关使用介绍Linux命令分为内部命令(shell自带的命令)和外部命令(不是shell自带的命令 , 由用户安装),怎么鉴别是内部命令和外部命令呢?可以通过type命令来鉴别
什么是shell呢?shell是一个程序,常用的有bash shell,平时我们通过用户名和密码登录到linux,其实就是登录到bash shell程序 , 通过bash shell来操作linux内核
命令执行流程
那岂不是说使用外部命令效率会很慢吗?
其实一点都不慢,它会去PATH环境变量设置的一堆目录中查找
cd is a shell builtin 表示内部命令
ifconfig is hashed (/usr/sbin/ifconfig) 表示外部命令
cd命令切换文件夹
现在我们cd /usr/sbin
通过cat命令查看文件内容
通过cat ifconfig来查看ifconfig , 发现是乱码文件
file命令查看文件类型
输入file ifconfig
从输出信息可以看出它是一个二进制可执行文件
whereis命令查看文件位置
find / -name jdk
echo命令用户打印信息,相当于java中的system.out.println
可以使用回车查看下一行、空格查看下一页、q退出
一般使用man查看外部命令 , help查看内部命令
查看linux下的应用和应用的进程号
当我们在这个窗口中输入kill -9 1593的话 , 另外一个正在编辑文件的进程就会退出
在前面我们已经讲过,bash shell程序在执行命令的一个过程及原理,对于外部命令 , 它会去PATH这个环境变量中查找执行命令所在的路径,当然在去PATH中寻找之前会先去hash表中查找这个命令有没有执行过,执行过的话会记录在hash表中 , 则此次查找只需从hash表中就可以很方便的找到
查看分区信息 -h 表示文件大小后面会显示文件大小
查看文件的使用情况
使用man ls 查看ls命令的相关介绍
-a:可以查看隐藏文件
-l:以长列表的形式展示文件列表信息
第一位 -:表示文件 , d表示文件夹,b表示块设备文件,c表示字符设备文件,p表示命令管道文件,s表示套接字文件,从第二位开始往后数九位表示属主权限(每三位一组 rwx:读、写、执行),第11位表示的点表示分隔符,点后面的数字表示文件有几个硬连接,第一个root代表属主名,第二个root代表这个第一个root所在的组织,接下来的5表示文件大小 , 5后面的日期表示文件最后一次修改的时间,1.txt代表的文件或文件夹的名称
小结:
切换文件目录
cd 文件路径
cd:切换到家目录
cd ~:回到家目录(也就是家目录)
cd ..:回到上一级目录
创建目录
mkdir 目录名
mkdir -p 目录名 , 级联创建目录
cp 被拷贝的文件(可以是路径加文件名) 拷贝到哪个位置
复制目录使用
cp -r 被拷贝的目录 目标位置
移动命令
mv 被移动的文件 目标位置 目标文件名
rm 文件名(此中方式的删除需要再输入 yes)
rm -f 文件名,无提示直接删除
rm -rf 文件夹
ln命令默认创建的是硬连接
ln profile a:将a硬连接到profile文件上,他们底层共用一个文件 , 删除他们之中任何一个
对另外一个没有影响,同时你也可以使用 ll -i命令查看文件编号
ln -s profile a:将a软连接到profile文件,当你访问a的时候会去访问profile,profile再访问底层文件 , 当将profile删除了之后a就无法访问了
一致时间、创建新文本
touch 已存在的文件:会将文件的访问时间、更新时间、改变时间(即上面stat中介绍的三个时间)变成一致
touch 不存在的文件:会创建一个新的文本
cat命令查看文件内容
cat 1.txt:查看单个文件内容
cat 1.txt 2.txt:查看多个文件
more 1.txt:以分页的形式查看文件内容,按空格:下一页,回车:下一行(注意它不能回看,回看的话只能用鼠标回轮)
less 1.txt:使用空格下一页,b看上一页 , 回车看下一行
注意less的话会把整个文件内容加载到内存 , 如果文件比较大的话,建议使用more命令查看
head命令默认查看文件前10行内容,head 1.txt
head -5 1.txt:查看文件前5行的内容
tail命令默认查看文件后10行的内容 tail 1.txt
tail -5 1.txt:查看文件后5行内容
tail -f 1.txt:实时查看文件增量内容
cat b.txt | head -3:管道左边的命令会以输出流的形式交给管道右边的命令,管道右边以输入流的形式接收并且拼到命令的右边
注意:ls -l 不能接受前面的输出流,这个怎么办呢?可以通过xargs命令
vi文本编辑器末行模式的操作
set nu(number的缩写): 设置行号
set nonu(nonumber的缩写):取消行号
set readonly:设置为只读
n:往下查找
N:往上查找
n:往上查找
N:往下查找
一般我们会在/etc/profile文件中设置一些环境变量,但是在设置的时候可能没有记住目录,这时候我们可以使用如下方式
效果
格式 :s/str1/str2/gi
/ : 临近s命令的第一个字符边界字符,也可以是 @或#
g : 一行内全部替换
i : 忽略大小写
范围
n:行号
. :当前光标行
n :偏移n行
-3
%:全文
全部删除 1,$d
删除前三行
删除倒数第2行
光标挪到最后一行 按下小写的p
效果图
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特殊字符、及这些特定字符的组合组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑 。
\ :转义字符
. :匹配任意单个字符
[1249a] :匹配中括号中任意字符
[^12] :匹配中括号中任意非1和2的字符
[a-k] :匹配中括号中任意a~k中的一个字符
^ :行首
$ :行尾
abc :单词首尾边界(匹配单词abc)
| :连接操作符
(,) : 选择操作符
\n :反向引用
? :匹配0到1次
在Linux中通过grep命令使用正则表达式来匹配信息
f :选择显示的列
s :不显示没有分隔符的行
d :自定义分隔符
n :按数值排序
r :倒序
t :自定义分隔符
K :选择排序列
u :合并相同行
f :忽略大小写
sed:行编辑器,以行为单位进行处理,可以将数据进行替换、删除、新增、选取等特定工作
sed [options] 'Command' file ...
-n :静默模式,不再默认显示模式空间(内存)中的内容
-i :直接修改原文件
-e SCRIPT :可以同时执行多个脚本
-f /PATH/TO/SED_SCRIPT
-r :表示使用扩展正则表达式
d :删除符合条件的行
p :显示符号条件的行
a \string :在指定的行后面追加新行,内容为string
\n :可以用于换行
i \string :在指定的行前面添加新行,内容为string
c :取代,c的后面可以接字符串
s /pattern/string/修饰符:查找并替换 。默认只替换每行中第一次被模式匹配到的字符串
g :行内全局替换
i :忽略字符大小写
s///:s### , s@@@
(),\1 , \2
sed "2p" ctxt
但是在执行下面的操作的时候文本中的内容都显示出来了,它的原理是,打印匹配的行,以及文本中所有的内容
注意:它删的是内存中的数据,而不是目标文件
sed -i "3d" ctxt
它的原理是先把内存中的第3行数据删除,然后再把内存中的数据写回原文件,这时原文件中的第三行就没有了
使用变量的形式
awk是一个强大的文本分析工具 。
相对于grep的查找 , sed的编辑,awk在其对数据分析并生成报告时 , 显得尤为强大 。
简单来说awk就是把文件逐行的读入,(空格,制表符)为默认分隔符将每行切片 , 切开的部分再进行各种分析处理 。
awk -F '{patternaction}' {filenames}
支持自定义分隔符,默认是以空格分隔的
支持正则表达式匹配
支持自定义变量 , 数组 a[1] a[tom] map(key)
支持内置变量
ARGC命令行参数个数
ARGV命令行参数排列
ENVIRON支持队列中系统环境变量的使用
FILENAMEawk浏览的文件名
FNR浏览文件的记录数
FS设置输入域分隔符,等价于命令行 -F选项
NF浏览记录的域的个数
NR已读的记录数
OFS输出域分隔符
ORS输出记录分隔符
RS控制记录分隔符
支持函数
print、split、substr、sub、gsub
支持流程控制语句
if、while、do/while、for、break、continue
练习题
passwd文件内容解读:
passwd文件中每行由7个字段组成,字段与字段之间由:分隔,第一个字段代表用户名,第二个字段表示用户对应的加密后的密码 , 第三个字段表示userId,第四个字段表示groupId,第五个字段表示对用户的描述 , 第六个字段表示用户的家目录,第七个字段表示的是这个用户默认使用的shell
其中$0表示整行
统计报表:合计每人1月工资, 0:manager,1:worker
将awk后面的内容封装到一个文件中(封装的脚本要遵循一定的格式)
qqq文件的内容格式
linux怎样用grep过滤不知道linux过滤命令正则你是想实现什么目linux过滤命令正则的linux过滤命令正则,如果你是想只显示配置文件中的以 # 号开头的行linux过滤命令正则,那就使用
# grep ^# filename
如果是想显示除 # 号开头的行的话呢,只需加个参数-v (-v 表示相反的过滤)就行linux过滤命令正则了
# grep -v ^# filename
Linux正则表达式一.linux文本查找命令
在说linux正规表达式之前,还介绍下linux中查找文本文件常用的三个命令:
1.grep : 最早的文本匹配程序 , 使用POSIX定义的基本正则表达式(BRE)来匹配文本 。
2.egrep : 扩展式grep,其使用扩展式正规表达式(ERE)来匹配文本 。
3.fgrep : 快速grep,这个版本匹配固定字符串而非正则表达式 。并且是唯一可以并行匹配多个字符串的版本 。
如下简单的介绍grep命令:
语法格式:
grep [options ...] pattern-spec [files ...]
用途:
匹配一个或多个模式的文本行 。
options:
-E : 使用扩展正则表达式进行匹配 , grep -E 或取代 egrep 命令 。
-F : 使用固定字符串进行匹配,grep -F 或取代传统的fgrep命令 。
-e : 通常第一个非选项的参数认为是要匹配的模式,也可以同时提供多个模式 , 只要将其放入单引号,并用换行字符分隔他们 。
模式以减号开头时,为防止混淆其为选项 , -e选项说明其后的参数为模式,即使他以减号开头 。
-f : 从pat-file文件读取模式作为匹配 。
-i : 模式匹配时忽略大小写差异 。
-l : 列出匹配模式的文件名称,而不是打印匹配的行 。
-q : 静默的,如果匹配成功 , 不将匹配的行输出到标准输出;否则即是不成功 。
-s : 不显示错误信息,通常与-q并用 。
-v : 显示不匹配模式的行 。
说明:可以同时查找多个文件中的内容,当指定多个文件时 , 每个显示出的文件行前会有文件名加一个冒号标识其来自哪个文件 。
可以使用多个-e 或 -f 选项,建立要查找的模式列表 。
二.正则表达式简要介绍
1.正则表达式的组成
(1).一般字符:没有特殊意义的字符
(2).特殊字符(meta字符):元字符,有在正则表达式中有特殊意义
2.如下讲下正则表达式中的常见meta字符
(1).POSIX BRE与ERE中都有的meta字符:
\:通常用于打开或关闭后续字符的特殊含义 , 如\(...\)与\{...\}
.:匹配任何单个字符(除NUL)
*:匹配其前的任何数目或没有的单个字符,例: . 表示任一字符,则 .* 匹配任一字符的任意长度
^:匹配紧接着的正则表达式,BRE中仅在正则表达式的开头有特殊的含义,ERE中在任何位置都有特殊含义
$:匹配前面的正则表达式 , 在字符串或者行结尾处 。BRE中仅在正则表达式的结尾处有特殊的含义,ERE中在任何位置都有特殊含义
[]:匹配方括号内的任一字符,其中可用连字符(-)指的连续字符的范围;^符号苦出现在方括号的第一个位置,则表示匹配不在列表中的任一字符,
(2).POSIX BRE中才有的字符:
\{n,m\} : 区间表达式,匹配在它前面的单个字符重现的次数区别 。\{n\}指重现n次;\{n,m\}指重现n至m次;
\( \) : 保留空间,可以将最多9个独立的子模式存储在单个模式中 。如\(ab\).*\1 : 指匹配ab组合的两次重现,中间可存在任意数目的字符 。
\n : 重复在\(与\)方括号内第n个子模式至此点的模式 。
(3).POSIX ERE中才有的字符:
{n,m} : 与BRE的\{n,m\}功能相同
: 匹配前面正则表达式的一个或多个扩展
? : 匹配前面正则表达式的零个或一个扩展
| : 匹配|符号前或后的正则表达式
( ) : 匹配方括号括起来的正则表达式群
(4). 方括号([])表达式
4.1.字符集[::]
标识字符集,有如下几种:
[::alnum] : 数字字符[:digit:] : 数字字符[:punct:] : 标点符号字符
[:alpha:] : 字母字符[:graph:] : 非空格字符[:space:] : 空格字符
[:blank:] : 空格与定位字符[:lower:] : 小写字母字符[:upper:] : 大写字母字符
[:cntrl:] : 控制字符[:print:] : 可显示的字符[:xdigit:] : 16进制数字
4.2.排序符号
【linux过滤命令正则 linux 过滤命令】 指将多个字符视为一个符号,如[.ch.]即将ch视为一个符号
4.3.等价字符
认为多个字符相等,如[=e=]在法文的locale里,可匹配于多种与e相似的字符,此处不再列出 。
说明:这三种构造除其自身的方括号之外,还必须使用额外的方括号括起来 。
例 : [[:alpha:]!] : 匹配任一英文字母或感叹号 。
[[.ch.] : 匹配ch排序元素,而不匹配单独的字母c或h.
3.简单正规表达式匹配案例
china: 匹配此行中任意位置有china字符的行
^china : 匹配此以china开关的行
china$ : 匹配以china结尾的行
^china$ : 匹配仅有china五个字符的行
[Cc]hina : 匹配含有China或china的行
Ch.na : 匹配包含Ch两字母并且其后紧跟一个任意字符之后又有na两个字符的行
Ch.*na : 匹配一行中含Ch字符,并且其后跟0个或者多个字符,再继续跟na两字符
二.实例
如下通过常用实例来学习BRE和ERE匹配,源文件url.txt内容如下:
baidu.com
baidu
1.url匹配
匹配以http或者https开头 , 并且其后为:并且含有.的串
BRE匹配:
grep '^https\{0,1\}.*\..*' url.txt
ERE匹配:
grep -E '^https?.*\..*' url.txt
匹配结果如下:
2.Email匹配
示例文件内容为:
hfutwyy@qq.com
aaaa@
aaa@.com
aaa@gmail.com
@@baidu.com
匹配以字母数字或者下划线开头的多个字符,其后有一个@之后有多个字母数字或者下划线,其中有一个.号
grep '^[[:alpha:][:digit:]_]*@[[:alpha:][:digit:]]*\..*' email.txt
匹配结果:
hfutwyy@qq.com
aaa@.com
aaa@gmail.com
转自 嘉为教育-rhce认证_rhce培训_linux培训_linux认证_linux考证
Linux如何使用正则表达式命令?文本文件操作命令Linux对文本操作命令及正则表达式:
cat
cat 是 concatenate 的缩写,所以它的作用其实是连接文件 。但默认情况下它会将连接文件的结果送到标准输出 。所以我们常用来显示文件内容 。类似于 dos 中的 type 。
more
当一个文件的内容超过一屏后,我们可以用 more 这个指令来逐屏 察看 文件内容 。
less
less 在 more 的基础上,更可以逐行 察看 , 前后翻页 。
head
head 显示文件开头部分内容 , 默认显示前十行参数 --lines 或者 –n 指明显示行数基本格式:
tail
tail 显示文件结尾部分内容,命令用法同 head,参数 -f 显示文件的纪实更新,用于监视日志文件
tail 默认显示文件列表中每个文件的后 10 行 , 如果没有文件名或文件名为“-”则其从标准输入中读取文件,如果有多个文件则其会在文件前面加上“==文件名==”以便区别 。
# tail /etc/mail/sendmail.mc 默认查看文件的后 10 行内容
# tail –n 20 /etc/passwd 查看文件后 20 行内容
注意:# tail –f /var/log/message 实时监控日志文件更新信息,非常重要
diff
diff 用于比较两个文件之间的区别,并送到标准输出 。输出时先报告两个文件的哪一行不同 。基本格式:
参数:
uniq 用于去除文本中相邻的重复行 。
-u参数可以只显示那些没有被重复过的行 。-d显示有被重复过的行 。
cut
cut 可以根据一个指定的标记(默认是 tab)来为文本划分列,然后将此列显示 。使用权限:所有使用者
基本格式: cut -cnum1 -num2 filename
说明:显示每行从开头算起 num1 到 num2 的文字 。
[root@uplooking root] $cut –f1 –d: /etc/shadow表示以 : 为分隔符,显示 /etc/shadow的第一列 sort
sort 用来按各种需要重新排列文本,一般运用在一个管道之后 。例如:
默认情况下 sort 按照字母顺序排列文本 。
wc
wc 用来统计一个文件的行数、词数、字数并送到标准输出 。也可以用-l(行数)、-w(词数)、-c(字数)来指定输出内容 。
怎么在linux中用正则过滤文本awk或者sed大把过滤方式
看linux过滤命令正则你需求linux过滤命令正则,
Linux命令详解之正则表达式
特殊字符
^
行首
$
行尾
.
任意一个字符
[]
内含字符范围linux过滤命令正则,加^表示反向字符范围linux过滤命令正则,在该范围内任何一个字符都可以匹配
(若要恢复普通用法 , 可在其前加转义字符/)
[:alnum:]
字母与数字字符
[:alpha:]
字母
[:ascii:]
ascii字符
[:blank:]
空格或制表符
[:cntrl:]
ascii控制字符
[:digit:]
数字
[:graph:]
非控制、非空格字符
[:lower:]
小写字母
[:print:]
可打印字符
[:punct:]
标点符号字符
[:space:]
空白字符,包括垂直制表符
[:upper:]
大写字母
[:xdigit:]
十六进制数字
其他字符
?
至多匹配一次
*
必须匹配0次或多次
必须匹配1次或多次
{n}
必须匹配n次
{n,}
必须匹配n次或n次以上
{n,m}
必须匹配在n到m次之间 , 包括n和m
示例
查找当前目录下所有以一位数字命名且以.txt结尾的文件,并进行显示
find
.-name
[[:digit:]]/.txt
-ok
ls
-l
{}
/;
查找所有以.txt结尾的文件并显示
find
.
-name[[:alnum:]]*/.txt
-ok
ls
-l
{}
/;
linux过滤命令正则的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于linux 过滤命令、linux过滤命令正则的信息别忘了在本站进行查找喔 。
推荐阅读
- 把html转换成jquery对象,怎么将html转换为word
- 佛山电商网站制作团队,佛山电商网站制作团队招聘
- Cmn递推函数c语言 c语言递推算法举例
- xpu盘系统怎么重装系统,xpu盘系统怎么重装系统步骤
- 电商如何找到供货商,电商如何找到供货商呢
- 室内益智亲子手工游戏大全,亲子手工简单游戏制作
- oracle如何删除了列 oracle删除表里的一列
- 什么叫团队竞技新模式游戏,团队竞技是什么模式
- 电脑怎么卸载网络驱动,电脑怎么卸载网卡驱动程序