Linux的super super super easy教程 | sed 以及查找类命令

Linux文本处理3剑客:

  1. grep:文本过滤
  2. sed:文本替换

如 sed -I ‘s/字符1/字符2/‘ 文件名  表示把文件中字符串1全部改成字符串2

  1. awk:文本截取(截取第几列 如截取第2列 awk ‘{print $2}’)

bc:Linux里的计算器(Linux里面2的3次方表示为 2^3)quit退出

       也可以这么用:echo 60+50|bc  输出结果为110

为什么重新登录,发现历史命令又多了?

.bash_history 文件是保存再用户的家目录下的,里面保存的是这个用户上次登录Linux系统的时候,使用过的命令

怎么永久删除历史命令?

history -c 清除历史命令

rm -rf .bash_history 删除保存历史命令的文件

查找类的命令:

which:查找可执行文件(Linux命令)(显示为绿色文件就是可执行文件)并显示所在的位置

/bin 是一个链接文件 指向/usr/bin 用来存放二进制文件 可执行命令

/bin 目录:专门给机器识别的目录 二进制文件

一般的Linux命令都是二进制文件,而且是可以运行的

PATH变量:which命令在Linux系统里查找命令的时候,会固定的到某些文件夹去寻找

       /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

       所有文件夹都以冒号隔开

which查找命令的时候会从path变量定义的路径里,从左边第一个文件夹开始查找,如果找到了,就不往下走,如果没有找到,往第2个文件夹里找,以此类推

Linux回到path变量指定的路径(文件夹)里查找命令

我们自己编写的程序,要让Linux系统知道,如何处理?

  1. 将你的程序复制到path变量指定的文件夹下就可以了
  2. PATH=  (二进制路径):$PATH   (改变path变量)—》临时修改 临时有效
  3. 如果永久有效的修改PATH变量的值?

修改/etc/profile  在第一行添加       PATH=  (二进制路径):$PATH

(对所有的用户都生效 都知道你的程序安装的路径了)

shell编程里等号左右不能有空格

gcc编译器:将c语言的代码翻译成二进制(机器可以认识的语言)

Linux里的命令很多都是二进制的程序—》c语言写的—》编译二进制文件—》可执行文件

/usr  :unix系统资源 :安装的程序就是系统的资源

unix 出现的比Linux较早 也是一个操作系统

       unix分支版本:

              IBMàAIXàIBM 制造的服务器上

              SunàSolaris

              HPàhp unix

              加州大学伯利克分校àBSD

Linux是山寨的一个叫minix的系统

环境变量:是影响所有的用户的变量

shell编程里 变量区分大小写

whereis:可以查询民命令的存放路径 同时还会告诉我们的man手册的路径(寻找路径和which一样都是去PATH变量指定的路径下去找)

       whereis 命令

如何知道一个命令是从哪个软件包安装过来的?

yum privides 命令:查询命令是由哪个软件包提供的

仓库:是一个集中存放软件的地方

BaseOS:这个仓库里存放的都是centos系统基础软件

chown:更改文件拥有者

如:chown 用户:小组 文件名 :把这个文件的拥有者和组改了

stat 文件名:查看文件的状态

文件的三个时间:

最近访问时间:access time àatime

       vim不行 只要读取里面的内容 例如cat

最近更改时间:modify timeàmtime

       改动文件的属性:拥有者 组 权限 大小 时间 名字   如chown 更改拥有者

最近改动时间 :change timeàctime

       更改文件里的内容  如:vim 增加内容三个时间都改了

touch:如果文件存在就是修改时间 三个时间都改

updated:手动更新创建数据库文件

locate:属于模糊查找

/var/lib/mlocate/mlocate.db:是locate的查询的数据库文件‘

第一次使用的时候需要updatedb更新

不能查找到最新新建的文件,所以需要手动的更新一下数据库,locate它不是到整个Linux更目录下查找的,是到自己的一个数据库文件里查找

Linux系统会自动每天更新一次,执行一次updatedb

查找:

  1. 精确查找:必须要一模一样 不能多 也不能少
  2. 模糊查找:只要文件名包含就可以了

which和whereis

只能查找Linux里的命令 精确查找  在PATH变量指定的路径查找

locate(查找有滞后性 查找出来的内容不是最新的数据)

可以查找命令和普通的文件或者文件夹 模糊查找  到自己的数据库里查找  

范围:整个/目录下(整个系统里查找)

man的使用:

 /字符:查找字符

N 上一个符合条件的

n下一个符合条件的

which whereis locate都是根据名字查找

find:

       对象:文件和文件夹

       范围:/

       时效性:实时

       条件:

  1. 名字 -name 文件名:按照名字查找 区分大小写

-iname 文件名:按照名字查找 不区分大小写

  1. 时间

-mtime 按文件更改时间查找(以24小时为一个单位)

+7 七天前 (7个24小时前)

-7 七天内 (7个24小时内)

7 刚好往前7天(刚好7个24小时前)

-mmin 以1分钟为一个单位 用法和-mtime一样

-newer 文件名:查找比这个文件更新的文件

  1. 大小 -size  +10M:查找大于10M -10M 小于10M 10M 等于10M
  2. 类型(Linux系统里的7种文件类型):-type

d 文件夹(目录)

f 普通的文件

l 链接文件

c 字符设备文件

b 块设备文件

s socket文件

p 管道文件

       -user 用户名:查找属于这个用户的文件

查找符合条件的文件有多少个?

find  条件 | wc -l

find条件的组合:

-a 逻辑与 默认为逻辑与 -a的优先级比-o高

-o 逻辑或

-not 逻辑非 取反(也就是 ! )如 !-size +3M 查找大小小于3M的

find非得改变优先级:加括号 括号要转义 \( 框起来内容\)

\ 转义字符: 转换到字符最原始的含义

元字符:有特殊作用的字符 *? $

5.常用动作

动作:

查找出来文件或者文件夹后,可以删除,复制,移动等操作

-exec  :

find 条件 -exec 命令 {} \;

{}代表前面的find命令查找到的符合条件的文件 理解为一个存放文件的地方 看为容器

\;表示-exec选项执行的命令的结束标志

-ok 比exec多了确认环节  不推荐使用

目录深度:

-maxdepth 查找目录的深度

-maxdepth 1 查找当前目录下的符合条件的文件   往下继续查找就是数字继续增加

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值