linux高级命令(字符处理、shell编程).docx
文本预览下载声明
目录操作
pwd
cd
mkdir -p
rmdir
rm -rf
文件操作
ls -hl
touch
echo abc a.txt
cat ,more,less,tail,head
vi
find 路径 模式
用户管理
useradd
userdel
usermod
/etc/passwd
权限管理
chmod 权限信息 文件/目录
* 目录必须有x权限
chown 用户名 文件/目录
chgrp 组名 文件/目录
组
groupadd
groupdel
打包
tar
-c
-v
-f
-z
-x
tar -czvf test.tar.gz test --打包并压缩
tar -xzvf test.tar.gz
系统命令
ps -aef
top
free -m
kill -9 pid
---------------------------------------------------------------------
正则表达式
用一个字符串(正则表达式)去描述另外一个字符串的特征.
Linux
管道 : 前面命令的输出作为后面命令的输入
grep --》根据关键字查找一个文档
grep 正则表达式 输入
echo helloworld | grep hello --》成功
echo helloworld | grep abc --失败
** Linux里面 $?表示上条命令执行成功还是失败
0 --》 成功
非0--》失败
正则表达式
. --任意一个字符
+ ?一个或多个字符
* —0个或多个字符
c.t :
cat cut
[] --代表一个范围,N选1
t[aeio]n
tan ,ten,tin,ton
( ) --代表一个整体
| --或者
t(a|e|i|o|oo)n
tan ,ten,tin,ton,toon
{ } –表现出现的次数
999 -- [0-9]{3}
192 -- [0-9]{1,3}
aaaaaaaaaaaaaaaaaaaaaaa -- [a]* ,a+
特别注意:由于Linux的原因,( ),+,|,{ } ,.,都得转义
练习:
999-99-9999
^[0-9]{3}-[0-9]{2}-[0-9]{4}$
[^0-9] --不能是数字
\s --表示空白
^在中括号里面 ,表示 否
^在正则表达式开头, 一般来说有的时候^表示开头$表示结尾(可以不写)
练习题:
电子邮箱的正则表达式
test_123@
[a-zA-Z0-9_]\+@[a-zA-Z0-9]\+\.\(com\|cn\|net\)
练习:
\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}
-------------------------------------------------------------
Linux字符串的处理
abbbbcdefg
zhangsan|class1|20
截取字符串
替换字符串
去重复的字符
拆分字符串
1、Cut
-b --按字节取
-c --按照完整的字取
-d -- 分隔符
-f -- 取第几个字段
举例:
1、 abcdefghijk
截取从b-d,g-i的字符串
bcdghi
echo abcdefghijk |cut -b 2-4,7-9,11
echo 你好|cut -b 1
2、zhangsan|class1|20
echo zhangsan|class1|20|cut -d | -f 1
** cut命令分隔符,只能是单个字符
3、***
abcde SQL bbbbbb
如果需要用多个字符作为分隔符,那么cut就不行了,要用awk
awk -F SQL {print $2}
练习:
ifconfig eth0,只显示ip地址
ifconfig eth0|grep \([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}|cut -d : -f 2|cut -d -f 1
----------------------------------------------------------
tee
命令
结果保存到某一文件并输出到屏幕echo helloworld123456 | tee abc.txt
tr命令
-d --删除一个或多个字符
echo abcdefg | tr -d bcd --》输出aefg
-s 去重复
echo abbbbbbcde|t
显示全部