Linux基础学习3

  • 2019 年 10 月 8 日
  • 笔记

目录

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 三?客 grep awk sed
  • grep [option] "模式" file
  • option
--color=auto 对匹配到的行添加颜色  -v 取反  -i 不区分大小写  -n 查找的内容增加行号  -c 打印匹配到的行数  -o 只显示匹配到的文字  -q 静默模式  -A # after 向下显示#行  -B # before 向上显示#行  —C # context 上下分别显示#行  -e 或者 grep -e 'user' -e 'root' passwd  -E 扩展正则表达式  -F 不使用正则表达式  -r 递归  -w 匹配整个单词

正则表达式元字符

  • 字符匹配
    • . 任意单个字符
    • [] 匹配指定范围内的任意单个字符 [0-9] [a-z] [A-Z]
    • [^] 取反
    • [:upper:] 大写字母
    • [:lower:] 小写字母
    • [:alnum:] 字母和数字
    • [:alpha:] 大小写字母
    • [:digit:] 数字
    • [:black:] 空白
    • [:punct:] 标点符号
  • 匹配次数
    • * 表示任意次数
    • .* 任意字符任意次数
    • ? 表示0或者1次
    • + 至少一次
    • {n} 表示n次
    • {m,n} 最少m次,最多n次
    • {n,} 至少n次
    • {,n} 至多n次
  • 位置锚定
    • ^ 开头
    • $结尾
    • ^$ 空行

    grep -v "^#" /etc/ssh/sshd_config |grep -v "^$" 显示不以#开头并且不是空行

  • 分组 grep "(c|C)at" a
  • 向后引用
    • 1 前面第一个括号出现的内容匹配完成之后再后面在出现一次
    • 2
  • 扩展正则表达式
    • 与正则表达式的区别是不需要转义

压缩

gzip

  • 压缩文件
gzip [option]... file  -c 将压缩结果输出到屏幕,保留原来的文件  gzip -c passwd > passwd.gz  -1-9 指定压缩比,默认9  -d 解压  zcat 不解压的情况下查看压缩比内的内容  gunzip 解压

bzip2

  • bzip [option] file
直接压缩  bunzip2 解压  -k 保留原来的文件  -d 解压  -1-9 指定压缩比  bzcat 不解压的情况下查看压缩包的内容

xz

  • xz [option] file
unxz 解压  -k 保留原来的文件  -d 解压  -1-9 指定压缩比  xzcat 不解压直接查看

zip

zip [option] zipfile 要压缩的文件  zip -r network.zip /etc/sysconfig/network-scripts  unzip network.zip

tar

归档工具

归档  tar cpvf etc.tar /etc  c 创建  v 显示过程  f 指定归档文件  p 把原来的属性也带过来  tar -r -f etc.tar /etc 追加  tar -t -f etc.tar 查看归档文件内的内容  tar xf etc.tar  解压文件  tar xf etc.tar -C  -z 使用gzip压缩  -j 使用bzip2压缩  -J 使用xz压缩  --exclude 排除文件

split

split -b 指定大小 文件(只能为文件) 切割以后的名字  -d 指定后缀为数字  -a 指定后缀几位  cat 切割后的文件 > 新文件

作 者:郭楷丰

出 处:https://www.cnblogs.com/guokaifeng/