0
点赞
收藏
分享

微信扫一扫

Linux-入门介绍

非凡兔 2022-04-22 阅读 46
python

一、Linux 体系结构

 

体系结构主要分为用户态(用户上层活动)和内核态。

Linux 启动时会先启动内核 Kernel内核本质是一段管理计算机硬件设备的程序,包括 cpu、内存空间、硬盘接口、网络接口等等。所有计算机操作都要通过内核传递给硬件。

用户态即上层应用程序的活动空间。应用程序的执行必须依托内核提供的资源,包括 cpu 资源、存储资源、IO 资源等。为了使上层应用访问到这些资源,内核必须为上层应用提供访问的接口,系统调用,是一种不能再简化的操作,类似于原子操作。一个操作系统的功能可以看作系统调用组合的结果。一个操作系统不可能做出超越系统调用的动作。

公共函数库实现对系统调用的封装,将简单的业务逻辑接口呈现给用户,方便用户调用。简单操作直接调用系统调用来访问资源,复杂操作借助库函数实现。

Shell 本质上是命令解释器,下通系统调用,上通应用程序,通常充当胶水的角色。没有图形界面之前,Shell 充当用户界面,当用户运行某些应用的时候,通 Shell 输入命令,已建立运行程序。Shell 是可编程的,可以执行符合 Shell

语法的文本,这样的文本称为 Shell 脚本。Shell 语句对系统调用做了一层封装,为了方便用户和系统交互,一般一个 Shell 对应一个终端,终端是一个硬件设备,呈现给用户的是一个图形化窗口。

常用 Shell 指令:

查询目录下的文件:ls(平铺)、ll(列表)

创建文件夹 mkdir

移动 mv

拷贝 cp

删除文件夹 rm -r(递归)f(不询问)

新建文件 touch

查看文件内容:cat (所有)、less more headtail

编辑文件:vivim

ps:用来查看当前运行的进程状态一次性查看。如果需要动态连续结果使用 top

df:显示磁盘空间使用情况。获取硬盘被占用了多少空间,目前还剩下多少空间

等信息。

du:对文件和目录磁盘使用的空间的查看。

free:显示系统内存使用情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。

netstat:显示各种网络关信息。

chmod控制文件或目录的访问权限该命令有两种用法:一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。

目前用的 Shell  Linux 主流中的 bash输入指令 echo $SHELL 查看当前 Shell的版本。cat /etc/shells 查看本机器支持的 Shell 版本。chsh -s Shell 路径,切换到指定的 Shellchsh  change shell)。

Linux 常用命令已知服务的端口和 IP,如何找到该服务所在的位置

二、查找特定文件

find 在指定目录下查找文件。

find 路径名 -name "XX.java":精确查找文件

find 路径名 -name "XX*":模糊查找文件

find 路径名 -iname "XX*":不区分文件名大小写去查找文件

man find:更多关于 find 指令的说明

/是指根目录,所有目录最顶层的目录

~是当前用户的主目录,如果是 root 用户就是/root/目录,如果是其他用户/home/

下用户名命名的目录)

​​​​​​​三、检索文件内容

grep 查找文件里符合条件的字符串,使用正则表达式搜索文本并把匹配的行打印出来。

grep 要查找的文本内容 XX*:以 XX 打头的所有文件中查找包含要查找内容的行,grep 只会筛选出目标字符串所在的行。

不指定路径,grep 从标准输入设备读取数据,系统等待输入,直到输入了要查找的文本内容。

grep -o 正则表达式:筛选出符合正则表达式的内容。

grep -v "文本内容:过滤掉包含相关字符串的内容。

管道操作符 | 将前面一个指令传出的正确输出信息即 stdoutput 的信息,传递给下一个指令作为标准的输入即 stdinput

使用管道注意的要点:

1)管道命令只处理前一个命令正确的输出,不处理错误的输出。

2)右边命令必须能够接收标准输入流,否则传递过程中数据会被抛弃。

常用来接收数据管道的命令有 sedawkgrepcutheadtoplessmorewcjoinsortsplit 

​​​​​​​四、对文件内容做统计​​​​​​​

awk 一次读取一行文本,按输入分割符进行切片,切成多个组成部分。将切片直接保存在内建的变量中,$1$2...引用指定的变量可以显示指定的切片($0表示行的全部)。支持对单个切片的判断,支持循环判断,默认分割符为空格。

awk '{print $1,$2}' 文件名 1 文件名 2:文件内容以空格分开,打印第一列和第四列(跟操作相关需要加上{}

awk '$1==条件 && $2==条件{print $0}' 文件名:打印文件中满足条件的全部行

awk '($1==条件 && $2==条件) || NR==1 {print $0}' 文件名:在上一条执行结果的基础上显示表头NR 表示从awk 开始执行后按照记录分割符读取的数据次数,默认的记录分割符为换行符,所以 NR 是默认读取的数据行数)

awk -F "," '{print $1}' 文件名:文件是按,分隔开,打印第一列

awk '{数组名[$1]++}END{for(i in 数组名)print i "\t" 数组名[i]}' 文件名:逐行进行统计,打印第一列和第一列出现的次数,中间以制表符分开(数组名随便起,END 表示扫描结束后进行什么操作)

​​​​​​​​​​​​​​五、批量替换文件内容

sed 流编辑器,利用正则表达式对行进行处理做文本的编辑。

替换

sed -i 's/被替换的正则表达式/替换的目标内容/' 文件名:替换行,s 表示对字符串的操作,-i 表示改变文本内容,不加只是输出到终端^表示以某某打头,$表示以某某结尾,特殊字符需要\转译)

egsed -i 's/\.$/\;/' 文件名 筛选出以.结尾的行替换成以;结尾

sed -i 's/被替换的正则表达式/替换的目标内容/g' 文件名:g 表示全局替换,没 g 只替换行中首次符合条件的字符

删除行:

sed -i '/条件/d' 文件名

egsed -i '/^ *$/d' 文件名 删除文件中空行(d 表示删除符合条件的行)sed 指令还可以移动和搜索数据

sed 指令还可以移动和搜索数据

举报

相关推荐

Linux-基础

Linux-权限

linux-信号

linux-磁盘应用

Linux-网卡设置

Linux-用户管理

0 条评论