Linux与Shell编程

Linux常用文件命令

ls  列出目录下的文件

cd  切换目录

pwd  当前所处的目录

mkdir  创建文件夹

rmdir  删除文件夹

cp  复制文件或目录

rm -rf 文件名  删除文件

mv  移动文件或修改文件名称

文件属性及权限

drwxrwxrwx

文件类型:d目录   -文件  1连接文件  b设备文件  c设备文件中的串行端口设备如键盘鼠标

第一个rwx:代表文件拥有者

第二个rwx:代表拥有者所属的用户组

第三个rwx:代表其他人

r:读权限 read 4

w:写权限 write 2

x:操作权限 execute 1

修改权限  chmod 777 test.txt  

ls -l  查看文件属性

ls -ld 查看指定文件的属性

cd (change directory)切换目录

  • cd           #root根目录
  • cd   /       #系统根目录 
  • cd  ../../   #返回上上一层目录 

ls/dir (list)列出目录下文件 
ls  -a      (--all)                #列出所有文件
ls  -d      (--directory)      #列出目录
ls  -i      (--inode)            #显示每个文件的inode 号(索引节点号,可以理解为文件的存储地址) 
ls  -l      (-long)               #较长格式列出
ls  -lh     (--human-readable)与-l #人性化阅读输出
 

网络

ping  测试网络连接

        -c  网络连接次数

        -l  每次连接间隔

netstat  打印Linux网络系统的状态信息

        -t 列出所有tcp

        -u 列出所有udp

        -l 显示监听端口

        -n 以数字形式显示地址

        -p 显示进程的pid跟名字

例如:netstat  -ntlp

性能

top  动态的监控进程活动与系统负载

第一行:系统时间、运行时间、登录终端数、系统负载(1分钟、5分钟、15分钟的平均值数字小即负载小)

第二行:进程总数、正在运行进程数、睡眠中的进程数、停止的进程数、僵死的进程数

第三行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比、所有数据均为CPU数据并以百分比展示

第四行:物理内存总量、内存使用量、内存空闲量、内核缓存的内存量

第五行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量

ps -aux  查看进程状态

-a       显示所有进程 包括其他用户

-u        用户及其他详细信息

-x        显示没有控制终端的进程

进程状态

R        运行        进程正在运行或在运行队列中等待

S        中断        进程处于休眠,当某个条件形成或接受信号,则脱离该状态

D        不可中断        进程不响应系统异步信号,kill命令也不能中断

Z        僵死        进程终止,但进程描述符依然存在,直到父进程调用wait()系统函数将进程释放

T        停止        进程收到停止信号后停止运行

Linux三剑客

管道

管道符 |   

概念:将2个命令隔开,管道符左边的命令的输出就会作为管道符右边的输入

正则

011-12345678  

电话号码匹配:     0\d{2}-\d{8}

常用元字符

.        匹配除换行符以外的任意字符

\w        匹配字母或数字或下划线、或汉字

\s        匹配任意的空白符

\d        匹配数字

\b        匹配单词的开始或结束

^        匹配字符串的开始

$        匹配字符串结束

限定符(次数)

*        0次或更多次

+        1次或更多次

?        0次或1次

{n}        n次

{n,}        n次或更多次

{n,m}        n到m次

匹配a开头的单词    \ba\w*\b

匹配正好8位的单次         \b\w{8}\b

匹配数字          \d+

5-12位QQ号        ^\d{5,12}$

grep

-v        显示不被pattern匹配到的行

-i        忽略字符大小写

-n        显示匹配行号

-c        统计匹配的行数

-o        只显示匹配到的字符串

-E        使用ERE,相当于egrep

查找文件内容包含root的行数

grep -n root test.txt

查找不包含root的行并显示行数

grep -vn root test.txt

查找以s开头的行

grep ^s test.txt

查找以n结尾的行

grep n$ test.txt

sed

sed是流编辑器,一次处理文件的一行内容

模式:

第一行存储在模式空间

sed命令处理

送入屏幕

清空行模式空间

第二行存储在模式空间。。。。

循环处理每一行直到结束

命令参数:sed [-hnV] [-e<script>] [-f<script文件>][文本文件]

-h 显示帮助

-n  只显示script处理后的结果

-e<script>  以选项中指定的script来处理输入的文本文件

-f<script>  以选项中指定的script文件来处理输入的文本文件

常见的操作:

a:新增        sed -e '4 a newline'        指定行的后面

c:取代        sed -e '2,5c No 2-5 number'

d:删除        sed -e '2,5d'

i:插入        sed -e '2i newline'        指定行的前面

p:打印        sed -n '/root/p'

s:取代        sed -e 's/old/new/g'

命令举例:

查看帮助        man sed        sed -h

在文本文件第四行后添加新字符串        sed -e '4 a newline ' test.txt

在第二行前加上newline        sed -e '2 i drink tea' test.txt

全局替换        sed -e 's/root/hello/g' test.txt

(全局替换时  加参数g 会修改所有匹配到的内容,否则只修改匹配到的第一个)

直接修改文件内容        sed -i 's/root/hello/g' test.txt

(-i  参数会直接修改源文件)

awk

定义:文件逐行读入,以空格为默认分隔符将每行切片,切开的部分再进行后续处理

原理:还是每行循环操作

(1)把行作为输入,赋值给$0

(2)以空格为分隔符,将行切断,分别赋值给$1、$2...

(3)对行匹配正则,执行操作

(4)打印出内容

命令格式:awk 'pattern + action' [file]

-pattern 正则表达式

-action 对匹配到的内容执行的命令,默认为输出每行内容

常用参数:

FILENAME        awk浏览的文件名

BEGIN        处理文本之前需要执行的操作

END        处理文本之后需要执行的操作

FS        设置输入域分隔符,等价于命令行-F选项

NF        浏览记录的域的个数(列数)

NR        已读的记录数(行数)

OFS        输出域分隔符

ORS        输出记录分隔符

RS        控制记录分隔符

$0        整条记录

$1        表示当前行的第一个域

举例1:

        打印文件的第一行;打印文件第一行被:分隔后的第七列 

(1)搜索/etc/password中有root关键字的所有行,并显示对应的shell

        awk -F:'/root/{print $7}' /etc/password

(2)打印/etc/password/ 的第二行信息

        awk -F:'NR==2{print $0}' /etc/password

举例2:

(1)使用begin加入标题

        awk 'BEGIN {print "BEGIN","BEGIN"}{print $1,$2}' /etc/passwd

(2)自定义分割符

        echo "111 222|333 444|555 666"|awk 'BEGIN{RS="|"}{print $0}'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值