linux语言学习记录


前言

记录自己学习linux的笔记,加油!
2023.3.8
2023.4.7
2023.9.1 更新


一、linux文件结构

在这里插入图片描述

  1. root : 该目录为系统管理员目录,root是具有超级权限的用户。

  2. bin ->usr/bin : 可执行的二进制文件,包含了那些供系统管理员和普通用户使用的重要linux命令的二进制映像。如cp、ls等多个命令。

  3. usr是linux的系统资源目录,里边存放的都是一些系统可执行文件或者系统以来的一些文件库。

  4. usr/local/bin:存放用户自己的可执行文件,同样这里存放的可执行文件可以在系统的任何目录下执行。

  5. lib->usr/lib: 32位库文件存放目录,这个目录存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库。

  6. boot : 这个目录存放启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。

  7. dev: dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,Linux中的设备也是以文件的形式存在。

  8. etc: 这个目录存放所有的系统管理所需要的配置文件。

  9. home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名以用户的账号命名,叫作用户的根目录;用户登录以后,默认打开自己的根目录。

  10. var : 这个目录存放着在不断扩充着的东西,我们习惯将那些经常被修改的文件存放在该目录下,比如运行的各种日志文件。

  11. mnt : 系统提供该目录是为了让用户临时挂载别的文件系统,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容

  12. opt: 这是给linux额外安装软件所存放的目录。比如你安装一个Oracle数据库则就可以放到这个目录下,默认为空。

  13. tmp: 这个目录是用来存放一些临时文件的。

root:表示登录用户
localcast:表示主机名字
#:表示超级用户
$:表示普通用户

[root@localcast]:~#

在这里插入图片描述

二、指令

2.1 查找文件find

find:查找,find 路径 选项 [patten]

  • -name 匹配名称
  • -type 类型 f 文件 d 目录 l 链接
  • -print 输出
  • -size 文件大小
  • -mtime 修改时间 modify time
  • -atime 访问时间 access time
  • -ctime 最近状态修改时间 change time 属性修改
  • n:表示n天之前的一天内,如果n=0则表示24小时内
  • +n:表示n天之前的时间(不包括第n天)
  • -n:表示n天之内(包括第n天)
例题1:找出当前目录以及子目录下的所有的txt文件
find ./ -name "*.txt"

2.2 文本搜索grep

grep:查找文件里面的内容,grep 选项 [pattern] 文件

  • -i 忽略大小写
  • -n 显示行+行号
  • -o 输出匹配的内容(默认会输出匹配内容所在的行)
  • -v 输出没匹配到的行
  • -c 统计匹配到的行数
  • -E 扩展命令 egrep命令
1. a匹配1-3次
grep -En "a{1,3}" test.txt   

2. 匹配空行
grep -n "^$" test.txt 

3. 匹配a-c中的任意一个
grep -En "[a-c]" test.txt   

在这里插入图片描述

2.3 修改文本sed

sed:替换文本内容,sed 选项 ‘sed command’ 文件

  • -i 修改文本内容(不加的话只会修改内存暂存的内容,不会对文件进行修改)
  • -e 多次编辑
  • -n 抑制自动输出
  • -r 正则扩展

sed command

命令作用
s替换
g全局替换
d删除
p打印出来
w写入文件
a在匹配后一行插入内容
i在匹配前一行插入内容

/pattern/:含有pattern的每一行
10,20:10-20行
1~2:第1,3,5,7行
10,+5:第10行向下的5行

1. 输出2-3行,p和-n搭配使用
sed -n '2,3p' test.txt

2. 输出含有a的每一行
sed -n '/a/p' test.txt

3. 多次替换
sed -e 's/abc/ABC/g' -e 's/123/456/g' test.txt

4. 插入内容
sed -i '2a i am a girl' test.txt

2.4 压缩文件tar

tar :打包不进行压缩,文件大小不变

  • tar -cvf bao.tar 要打包的文件(可以多个)
  • tar -xvf bao.tar 把打包的文件解开
  • tar -zcvf tao.tar.gz 压缩文件,大小改变
  • tar -zxvf tao.tar.gz -c ./xx 解压文件到指定文件夹
  • -z 压缩文件的指令(gzip命令)
  • -c打包 -v 加载信息 -f 指定文件名称 -x 解压

2.5 切换目录cd

cd :切换目录

  • cd - 返回上一次打开的目录
  • cd /返回根目录
  • cd … 返回上一级目录(两个冒号)
  • cd ~ 返回当前用户目录

2.6 显示目录中文件ls

ls :显示文件

  • -l 列表显示
  • -a 显示隐藏文件
  • -al 显示所有文件及其属性
  • 文件属性:-常规文件,d目录,l链接文件
  • 文件所有权:rwxr–rwx分别表示文件所有者、组内其他人、系统中其他人的读写执行权限
  • 文件权限:可读4、可写2、可执行1
    pwd :输出当前路径

2.7 拆分文件split

spilt

2.8 重命名文件mv/rename

mv:移动文件,修改名称

  • -i 询问是否覆盖
  • -f 强制覆盖
  • mv file1 file2 修改文件名称(只能单次修改一个文件)

rename:批量重命名文件,rename 选项 pattern1 pattern2 file

1. 把所有的cfg文件类型更改为txt类型
rename .cfg .txt *.cfg 

whoami:输出用户名
who:所有登录用户列表

ctrl+c:退出进程
ctrl+z:挂起进程,还可以重新启动

ln :-s source name建立软链接,方便不同文件之间快速转换

less:显示文件内容
more:显示内容,分页显示,b往后,f往前
cat:显示所有内容,适合内容较少的文件
head:显示文件前几行内容

touch:创建空文件

  • touch {A,C,B}.txt 进行批量创建文件
  • {}:批量操作符

mkdir:创建空文件夹

  • -p 递归创建

cp:拷贝 源文件 目标文件

  • -r 目录,递归
  • -f 强制
  • -i 询问是否覆盖

rm:删除文件

  • -r 删除目录
  • -f 强制删除

df -h:查看未使用的空间大小,disk free
du -sh:查看当前空间占用,disk usage

  • du -sh * 查看每个文件的占用情况
  • du -h递归显示所有文件

wc:统计

  • -c 字节数
  • -l 行数
  • -w 字数

sort :让文件里面内容按顺序排列

diff:比较文件内容

alias:sc=“source ~/.bashrc”设置别名 alias -p查看现有别名(改动之后要source一下)

ps -u:查看当前进程,process status
top:当前进程
kill -9 id号:卡机强制关机

man:联机查看命令使用方法
--help:查看帮助
两者区别:pwd -help / man help

whereis :查看命令所在位置
which:输出命令的全路径
在这里插入图片描述

chowner:设置文件所有者和文件关联组
chmod:改变文件属性,读写模式
chgrp:变更文件和目录所属的群组

clear:清除屏幕
date:查看时间
exit:退出:
su:切换用换 switch user
shutdown:关机重启

tree:显示文件的树形结构

>:把内容输出给文件
>>:追加内容
|:管道符,接收左边指令的内容

sudo apt install/remove/update xxx:软件按照/去除/更新指令

三、正则表达式

符号含义
.匹配任意一个字符
[abc] [a-z0-9]匹配方括号中的任意一个字符
[^abc]匹配除方框内的任意一个字符
\d匹配阿拉伯数字,等同于[0-9]
\D匹配除阿拉伯数字以外的任意字符,等同于[^0-9]
\x匹配十六进制数字,等同于[0-9a-fA-F]
\X匹配除十六进制数字以外的任意字符,等同于[^0-9a-fA-F]
\w匹配单词字母,等同于[0-9A-Za-z]
\W匹配除单词字母以外的任意字符,等同于[^0-9A-Za-z]
\s匹配空白字符,等同于[\t]
\S匹配非空白字符,等同于[^\t]
\t匹配TAB字符
符号含义
*0-任意个
+1-任意个
?0-1个
{n, m}n-m个
{n}n个
{n,}n-任意个
{, m}0-m个

1、表达式匹配举例

1、把所有单词help或Help都改为大写的HELP

:%s/[Hh]elp/HELP/g

2、使用单个空格替换一个或多个空格

:%s/ \+/ /g

3、删除所有空行

:g/^$/d
:g/^ [\t]* [\t]* $/d

4、删除含义某些单词的行

:g/ERROR/d

5、把PATH变量里面的冒号替换成换行符:

echo $PATH | sed 's/ \: / \n /g'

6、将每行开头的单词替换为(行号-10):
<:表示词首 >\:表示词尾 / \ =:等于右边的函数值

:%s/^\<\w\+\> /\= (line(".")-10)

7、删除以数字开头的行

:%s/^\d.*$//g

8、.删除以[a,b,c]开头的行

:%s/^[a|b|c].*$//g

9、在每一行的尾部加上一个句号(或其他字符)

:%s/$/./g

10、将文中所有abc替换成123(g全局替换,否则只改第一个)

:%s/abc/123/g
:3,5s/abc/123/g    特指3-5行的进行替换

2、对文件里面内容进行操作

1、删除所有空行:

sed 's/^$/d ' *.txt

2、删除所有只包含空格或者制表符的行:

sed 's/^[]*$/d' price.txt3.

3、删除所有引号:

sed 's/” //g' price.txt

3、使用 \()\ 符号括起正规表达式,即可在后面使用\1\2等变量来访问和中的内容

1、查找test开头的后面为一个或者多个空格,然后为一个单词。将test和这个单词调换位置.

:%s/\(test\)\s\+(\w\+)/\2 \1/g
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值