Linux基础学习3
程序员文章站
2022-05-10 09:32:26
Linux基础学习3 [TOC] cat 显示文本 less 分屏显示文本 more 分页显示文件 head 显示文件的前面的内容 tail 显示文件的后面的内容 cut 切割 paste 合并 wc 用来对文本进行统计 sort 排序 uniq合并相同的行 相邻 完全一样 diff 对比文件 ch ......
目录
linux基础学习3
cat 显示文本
-e 显示结尾的$符 -n 对显示的每一行进行编号 -b 对非空行进行编号 -s 对连续的空行进行压缩 ###cat (默认)正序显示 ### tac 倒序显示
less 分屏显示文本
向下翻一屏 空格 向下翻一行 回车 q 退出 / 文本 搜索文本 n 向下查找 n向上查找 less 是man命令的默认分页器
more 分页显示文件
默认情况下显示读取的百分比 读取完成自动退出 q 退出 -d 显示翻屏和退出的提示
head 显示文件的前面的内容
默认显示前10行 -# 显示前#行 -n # 显示前#行 -c # 显示前#个字符
tail 显示文件的后面的内容
默认显示后10行 -# 显示后#行 -n # 显示后#行 -c # 显示后#个字符,换行符也是一个字符
cut 切割
cut option... [file]... -c 按照字符切割 tail passwd |cut -c2-5 -d 指定切割符,默认是tab -f # 显示第#个字段 #,#,# 显示离散的多个 #-# 表示连续的 1-5,7 可以结合使用 tail passwd |cut -d: -f1-5,7 tail passwd |cut -d: -f1-5 tail passwd |cut -d: -f1,3,5
paste 合并
默认是相同行合并到一起,默认是tab键 -d 执行间隔符 -s 将所有的行按照列来显示 paste a.txt b.txt paste -d: a.txt b.txt paste -s a.txt b.txt
wc 用来对文本进行统计
[root@localhost test]#wc b.txt 4 5 20 b.txt 行数 单词数 字节数 文件名 -l 只显示行数 -w 只显示单词数 -c 只显示字节数 -m 只显示字符数 -l 显示文件中最长行的长度
sort 排序
usage: sort [option]... [file]... or: sort [option]... --files0-from=f 默认是按照字母排序 -r 倒序 -r 随机排序 -n 按照数字排序 -f 忽略大小写 -t 指定分隔符 -k # 指定按照第#个字段进行排序 sort -t: -k3 passwd sort -nt: -k3 passwd
uniq合并相同的行
- 相邻
- 完全一样
-c 显示相同的行出现的次数 -d 只显示重复的行 -u 显示从没有重复过的行 cut -d" " -f4 d|sort |uniq -c pv page uv user
diff 对比文件
[root@localhost test]#echo "123" >> f [root@localhost test]#diff d f 11a12 > 123 [root@localhost test]#echo "1234" >> d [root@localhost test]#diff d f 12c12 < 1234 --- > 123
chown 用来修改所有者和组
usage: chown [option]... [owner][:[group]] file... or: chown [option]... --reference=rfile file... chown wu c 修改属主 chown wu:wu c 修改属主和属组 chown root.root c chown :wu c 直接属组 chown -r wu test 递归修改 chown --reference=c d
chgrp 修改文件的属组
usage: chgrp [option]... group file... or: chgrp [option]... --reference=rfile file...
权限
9位表示权限 3组 3位表示一组 \--- --- --- - 文件权限可以读以下定义 - 属主 u - 属组 g - 其他 o - 全部 a - 每个文件的权限 - r 读 - w 写 - x 执行 - 对于文件来说 - r 可以使用文本查看工具来查看里面的内容 - w 可以修改文本的内容 - x 执行可以直接./file - 对于目录来说 - r 可以使用ls等文件查看的命令查看 - w 可以创建文件,也可以删除 - x 可以cd进入 - 数字表示 --x 001 1 -w- 010 2 r-- 100 4 rw- 110 6 rwx 111 7 r-x 101 5 -wx 011 3
修改权限
- 可以直接修改某一类用户的权限
chmod u+x c 增加 chmod u-x c 删除 chmod u=r c 直接赋值
shabang ---》 解释器
- 可以直接使用数字表示
- 可以基于某个文件来修改
设定特殊权限
chattr +i 不能删除、不能修改、不能变更 lsattr 查看属性 chattr +a 只能追加数据
vi/vim
打开文件
vim [option] .... file....
+# 直接定位到第#行 +/pattern 打开文件后,直接定位到第一个匹配到patter的地方 -b 以二进制方式打开文件 -d file1 file2 对比打开多个文件 -m file 只读方式打开文件 -e 直接以末行模式打开
模式
- 命令模式:可以光标,可以粘贴、复制文本,默认 - 插入模式或者编辑模式:可以修改文本 - 末行模式(扩展命令模式):保存、退出等等 - esc 退出当前的模式
模式之间切换
- 命令模式- 插入模式 - i 光标所在处插入 - i 在当前光标所在的行的行首插入 - a 光标所在位置的后面插入 - a 在当前光标所在的行尾插入 - o 在当前光标所在的行的下一行(新开)插入 - o 在当前光标所在的行的上一行(新开一行)插入 - 插入模式- 命令模式 - esc - 命令模式 -- 末行模式 - : - 末行模式 -- 命令模式 - esc esc - esc enter
关闭文件
- 末行模式 - :w 保存 - :q 退出 - :wq 保存并退出 - :q! 强制退出 - :wq!强制保存退出 - :x 保存并退出 - 命令模式 - zz 保存退出 - zq 不保存退出
扩展命令行模式
- 按":" 来进入 - w 写入 - q 退出 - wq 保存并退出 - q! 强制退出 - x 保存并退出 - r file 读入文件 - w file 另存为 - !command 直接执行命令 - r!command 直接把命令的结果写到文件中
命令模式跳转
- 字符之间跳转 - l 向右 - h 向左 - j 向下 - k 向上 - 单词间跳转 - w 下一次的单词的词首 - e 当前词的词尾或者下一个单词的词尾 - b 当前词的词首或者上一词的词首 - \# command 直接跳转#个单词 - 页面间跳转 - h 页首 - l 页尾 - m 页中 - zt 将光标所在行移动到屏幕的顶端 - zb 将光标所在行移动到屏幕的底部 - zz 将光标所在行移动到屏幕的中间 - 行首行尾之间跳转 - ^ 跳转到当前光标所在行的第一个非空字符 - 0(数字) 跳转到行首 - $ 跳转到行尾 - 行间移动 - #g 跳转到第#行 - 在命令扩展模式下,直接:# 跳转到对应的行 - g 直接到最后一行 - gg 跳转到第一行 - 1g 跳转到第一行 - 段落之间跳转(空行) - { 上一段 - } 下一段 - 翻屏 - ctrl+f 向文件尾部翻一屏 - ctrl+b 向文件首部翻一屏 - ctrl+d 向文件尾部翻半屏 - ctrl+u 向文件首部翻半屏
命令模式编辑
- 字符编辑 - x 删除光标所在处的字符 - #x 删除#个字符 - xp 将光标所在处的字符和后面的字符互换位置 - ~ 将光标所在的位置大小写互换 - j 删除当前行的换行符 - 替换 - r 替换当前光标所在处的字符 - r 进入替换模式 - 删除 - d 删除,需要跟字符跳转结合 - d$ 删除到行尾,删除当前位置 - d0 删除到行首,当前位置不删除 - d^ 删除到非空字符 - dw 删除一个单词 - de 向后删除一个单词 - db 向前删除一个单词 - dd 删除正行 - \# dd 删除#行 - dg 删除到结尾 - dgg 删除到开头 - d 相当于d$ - 复制 - y,也可以跟字符跳转结合 - y$ - y0 - y^ - yw - ye - yb - yy 一正行 - #yy 复制#行 - yg 复制到结尾 - ygg 复制到开头 - y 复制整行 - 粘贴 - p 如果是整行的话,则粘贴到当前光标所在行的下一行,否则粘贴到光标的后面 - p 如果是整行的话,则粘贴到当前光标所在行的上一行,否则粘贴到光标的前面 - 改变,删除以后并将模式切换成插入模式 - c 可以跟光标的跳转做结合 - c$ - c0 - c^ - cw - ce - cb - #command - cc 删除正行并插入 - c 相当于c$ - #[i|i|a|a|o|o]string esc 将string粘贴#次 - 搜索 - /pattern 从当前光标往下搜索 - ?pattern 从当前光标往上搜索 - n 同命令相同的方向 - n 同命令相反的方向 - 撤销 - u 撤销最近的修改 - \# u 撤销最近的#次修改 - ctrl +r 撤销之前的撤销动作 - \. 重复最后一次操作 - #. 最后一次操作重复执行#次
命令扩展模式
地址定界 :start,end \# 具体到第#行 #,# 第#行到第#行 \#,+n 从第#开始,到第#+n行结束 1,+2 ==>1,3 . 表示当前光标所在的行 $ 表示最后一行 $-1 表示倒数第二行 % 表示全文 /pat1/,/pat2/ 从第一个pat1匹配到的地方,到pat2第一次匹配到的地方 #,/pat/ 从第#行开始,到第一次被pat匹配到的地方 /pat/,$ 从第一次被pat匹配到的到结尾 可以使用的命令 - d - y - w file 重新另存为文件 - r file 将文件的内容写到匹配到的下一行
查找并替换
- 要使用地址定界来进行查找 - s 在扩展命令模式下使用为替换 - 格式: s/要查找的内容/要替换的内容/装饰器 - 要查找的内容可以使用正则 - 替换的内容不能为正则 - 可以为分组:%s/\(nfs.*\)/#\1/ - \1表示第一个分组内的内容 - \2 - \3 - & 可以代表前面匹配到的内容 - 装饰器 - i 忽略大小写 - g 表示全部替换 - gc 每一次替换之前都要询问是否替换 - 分隔符还可以使用 - @ - #
可视化
- v 面向字符 - v 面向行的 - ctrl +v 面向块 - 可以结合所有的跳转键进行结合 - 对突出显示部分可以使用删除、复制、变更、过滤、替换、另存为等等
打开多个文件
vim file1 file2 file3 :next 下一个 :prev 上一个 :first 第一个 :last 最后一个 :qall 退出全部 :wall 保存全部 :wqall 保存并退出全部 :xall 保存并退出全部
使用多个窗口
vim -o 水平分隔 vim -o 垂直分隔 切换ctrl+w 加上上下左右箭头
单文件切割
ctrl+w,s 水平切割 ctrl+w,v 垂直切割 ctrl+w,q 取消相邻的窗口 ctrl+w,o 取消全部窗口
vim工作特性
配置文件 - 全局有效:/etc/vimrc - 对当前用户有效: ~/.vimrc - 行号:set nu 取消 set nonu - 忽略大小写(搜索) set ic 取消set noic - 自动缩进(同上一行) set ai 取消set noai - 设置高亮显示(搜索到的内容) set hls 取消set nohls - 语法高亮 syntax on 取消 syntax off - 文件格式 - windows格式 set fileformat=dos - unix set fileformat=unix - 添加标识线: set cul 取消标识线 set nocul - 获取帮助: set all - 获取帮助信息: - :help - :help topic - vimtutor
find
是linux里面的一个实时查找工具,通过制定路径完成文件查找 find [options] ..... [查找路径] [查找条件] [处理动作] 查找路径:查找的位置,默认是当前文件夹 查找条件:制定查找的标准,文件名、大小、类型、日期等等 处理动作:对符合条件的文件做什么操作,默认是输出到屏幕上
查找条件
- 根据文件名查找 - -name 指定名称,可以使用正则 - -iname 忽略大小写 - -links n 引用次数为n的文件 - -regex 后面跟完整路径,而不是文件名, 必须整个路径完全匹配 - 制定搜索的层级 - -maxdepth level 最大的搜索深度,指定的目录为第1层 - -mindepth level 最小的搜索深度,包括level层 - 根据属主、属组来查找 - -user username 查找属主为username的文件 - -group groupname 查找属组为groupname的文件 - -uid id 查找属主为id的文件 - -gid id 查找属组为id的文件 - -nouser 查找没有属主的文件 - -nogroup 查找没有属组的文件 - 根据文件类型 -type - d 目录 - f 文件 - l 符号链接 - s 套接字 - b 块设备 - c 字符设备 - p 管道文件 - 空文件或者空目录 - -empty - 条件 - 与 -a - 或 -o - 非 -not - 摩根定律 - 非(a或者b) 非a 且非b - 非(a且b)非a或非b - 排除目录 - -path [root@localhost test]#find /etc -name *_config /etc/ssh/ssh_config /etc/ssh/sshd_config [root@localhost test]#find /etc -path /etc/ssh -name *_config - 按照大小来查找 - -size # (#-1,#] 不包括#-1,包括# - -size -# [0,#-1] 包括#-1 - -size +# (#,......) - 按照时间来查找 - -atime # [#,#+1) - -atime -# (0,#) - -atime +# [#+1,....] - 查找7天以后的文件 find -atime +7 - -mtime - -ctime - 以分钟为单位 - -amin - -mmin - -cmin
处理动作
- -print 默认的处理动作,显示在屏幕上 - -ls 类似于ls -l 显示长格式 - -delete 删除查找到的文件 - -fls file 将查找的结果以长格式保存到文件中 - -ok command {} \; 对每一个查找到的文件执行command命令,在执行命令之前要先提示用户是否要执行 - -exec command {} \; 对查到的每一个文件执行command命令,不需要确认,一次性交给后面命令处理
xargs
- 有的命令不支持管道 - 命令参数过长 - xargs 将管道前面的内容一条一条的交给后面命令处理 - 一般会跟find使用
grep
- linux 三
上一篇: 操作系统前世今生