Linux使用小记

一、linux的体系结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vWy8WMBz-1587958695774)(E:\anotes\复习知识点\linux\Snipaste_2020-03-06_16-06-39.png)]

  • 体系结构主要分为用户态(用户上层活动)和内核态
  • 内核:本质是一段管理计算机硬件设备的程序
  • 系统调用:内核的访问接口,是一种能再简化的操作
  • 公用函数库:系统调用的组合拳
  • Shell:命令解释器,可编程

二、指令

1、cd

cd … 是返回上一层目录, cd - 是返回到上一次的工作目录,cd ~ 是家目录。

2、find:查找文件

find  /  -name "some.java"
find  /  -name "*.java"
find  /  -iname "*.java"  #忽略大小写

3、chown chmod

chown -R runoob:runoobgroup *    
#将目前目录下的所有文件与子目录的拥有者皆设为 runoob,群体的使用者 runoobgroup:
chmod -R 777 /var/lib/nginx

-c : 若该档案权限确实已经更改,才显示其更改动作
-f : 若该档案权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)

777这个顺便了解一下
r 4 可读,当前用户可以读取文件内容
w 2 可写,当前用户可以新增或修改文件内容并且删除、移动目录或目录内文件
x 1 可执行。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WKomz0dB-1587958695797)(E:\anotes\复习知识点\linux\Snipaste_2020-03-06_16-45-54.png)]

4、grep

检索文件内容,查找文件里符合条件的字符串

grep "haha" *.java   #查找含有haha的某一行


find ~ |grep "*.java"  #查找文件名为的文件

grep 'abc'  a.log | grep -o 'some\[[0-9a-z]\]'
#grep -o 正则表达式  []里面数字字母
grep -v 'zz' #去掉信息

5、对文件内容做统计 awk

一次读取一行文本,按输入分隔符进行切片,切成多个组成部分

将切片直接保存在内建的变量中,$1,$2…($0 表示行的全部)

支持对单个切片的判断,支持循环判断,默认分隔符为空格

awk [options] 'cmd' file #基本语法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xOzdvfre-1587958695807)(E:\anotes\复习知识点\linux\Snipaste_2020-03-06_17-25-50.png)]

awk '{print $1,$4}' netstat.txt #逐行遍历 以空格为分隔符 第一列和第四列

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xSvVqPkg-1587958695819)(E:\anotes\复习知识点\linux\Snipaste_2020-03-06_17-28-16.png)]

awk '$1=="tcp" && $2==1  {print $0}' netstat.txt #打印proto是tcp,Recv-Q是1的一行全部数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P1JJXIJU-1587958695842)(E:\anotes\复习知识点\linux\Snipaste_2020-03-06_17-29-47.png)]

awk '($1=="tcp" && $2==1) || NR=1  {print $0}' netstat.txt #加上表头,NR是数据行数

awk默认是空格为分隔符,可以设定特定的分隔符

awk -F "," '{print $2}' test.txt  #以逗号为分隔符,打印第二列

统计:

grep 'abc'  a.log | grep -o 'some\[[0-9a-z]\]' | awk '{arr[$1]++} END {for(i in arr) print i "\t" arr[i] }'
# arr[$1] 里面元素名是第一列的内容,元素的值是次数

6、批量替换文本内容 sed

# 语法
sed [option] 'sed command' filename

全名 stream editor ,流编辑器,适用于对文本的行内容进行处理

例子:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j8O7mC2b-1587958695857)(E:\anotes\复习知识点\linux\Snipaste_2020-03-06_18-15-37.png)]

# 将str 改成string
sed -i 's/^Str/String' replace.java
#-i表示修改,不加则只会把替换结果输出到命令行,不会修改
# s 表示字符串的操作
# ^Str 表示以Str开头的被替换的字符串
# String 表示替换的字符串
# 将末尾的.改成分号
sed -i 's/\.$/\;/' replace.java
# \.  \;  表示转义
# 所有的Jack转成me
sed -i 's/Jack/me/g' replace.java
# g表示全局替换
# 删除符合条件的行
sed -i '/^ *$/d' replace.java
# 删除空行
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章