2021/1/31 Linux学习2

软连接和硬连接

  • 硬链接 (ln ):对一个文件其多个文件名(不同名称)
  • 软连接(ln -s):原始文件一般用相对路径,相对路径一定相对于软链接文件的路径
  • List item
  • 硬连接和软连接的区别:
    1.是否是同一文件(影视,软不是)
    2.能否跨分区
    3.链接数增长
    4.inode number 是否相同
    5.原始文件删除,链接文件是否可以访问?
    6.大小?
    7.支持目录?(硬链接不支持目录)
    8.相对路径?(软连接支持文件夹,硬不支持)
  • touch命令
    -a 仅改变atime和ctime
    -m 仅改变mtime和ctime
    -t 指定atime和mtime的时间戳
    -c 如果文件不存在,则不予以创建

文件重定向和管道

  • linux中 “>”表示覆盖原文件内容(文件的日期也会自动更新),“>>”表示追加内容(会另起一行,文件的日期也会自动更新)。
  • rename 用字符串替换的方式批量改变文件名
  • cp 文件名{,.bak}(文件备份)
  • reset 这个命令将完全刷新终端屏幕,之前的终端输入操作信息将都会被清空
  • file:查看文件内容(比cat好)
  • 把输出和错误重新定向到文件
    1.支持的操作符包括:“>”,“2>”,"&>".
    2.使用">"文件内容会被覆盖。set -C可禁止内容覆盖原有文件;set +C允许覆盖。
  • tr命令可以对来自标准输入的字符进行替换、压缩和删除
  • 单行重定向: cat>f1
  • 多行重定向: cat > f1 <<EOF
  • 管道(|):将命令一的标准输出作为命令二的标准输入
    例子:whoami | tr ‘a-z’ ‘A-Z’
    errocmd 2>&1 | tr ‘a-z’ ‘A-Z’(前面是错误命令)
    errocmd |& tr ‘a-z’ ‘A-Z’(前面是错误命令)
  • SDTERR默认不能通过管道转发,可利用2》&1或者|&实现
  • less 一页一页的查看输出
    ls -l /etc | less
  • mail 通过电子邮件发送输入(mail -s “” +要发送到的目录 以.结束)
    echo “test email” | mail -s “test” user@example.com
  • lpr:把输入发送给打字机
  • tee :重定向到多个目标
    命令1 | tee [-a] 文件名 | 命令2(把命令1的STDOUT保存在文件中,作为命令2的输入)(-a追加)

文件查找和压缩

  • locate命令:搜索文件(无法找出刚创建的文件,依赖数据库)
    -i 不区分大小写搜索
    -n N 只列举前N个匹配项目
    -r 使用正则表达式
  • find命令:搜索文件(速度略慢)
    1.语法:find [option][查找路径] [查找条件] [处理动作]
    2.查找路径:找到具体目标路径
    3.查找条件:指定的查找标准,默认找出指定路径下的所有文件
    4.处理动作:对符合条件的文件做操作,默认输出至屏幕
  • find查找条件
    1.指搜索层级: -maxdepth level 最大搜索目录深度,指定目录为第一级;
    -mindepth level 最小搜索深度
    2.先处理目录内文件,在处理目录: -depth
    3.根据文件名和inode查找:-name “文件名称”:支持使用glob
    –iname “文件名称”:不区分大小写字母
    –inum n 按inode号的文件
    –links n 链接数为n的文件
  • 根据文件类型查找
    f:普通文件
    d:目录文件
    l:符号链接文件
    s:套接字文件
    b:块设备文件
    c:字符设备文件
    p:管道文件
  • 文件或空目录
    –empty
    find/app -type d -empty

Linux用户和组管理

  • 查看用户相关的id信息
    id [option]… [user]:-u:显示UID
    -g:显示GID
    -G:显示用户所属的组的ID
    -n:显示名称,需配合ugG使用
  • 设置密码
    passwd [options] username
    gpasswd -a 增加
    gpasswd -d 删除
    -d:删除指定用户密码
    -l:锁定指定用户
    -u:解锁指定用户
    -e:强制用户下次登陆修改密码
    -f:强制操作
    -n:指定最短使用期限
    -x:最大使用期限
    -w:提前多少天开始警告
    -i:非活动期限
  • 用户添加命令
    useradd [选项] 用户名
    -u UID :手工指定用户的UID;
    -d 家目录:手工指定用户的家目录;
    -c 用户说明:手工指定用户的用户说明;
    -g 组名:手工指定用户的初始组;
    -G 组名:指定用户的附加组
    -s shell:手工指定用户登陆的shell,默认是/bin/bash
  • usermod:修改用户信息
  • userdel:删除用户
  • change:修改用户密码状态
    -l :列出用户的详细密码状态
    -d 日期:修改密码最后一次的更改日期 shadow3字段
    -m 天数:两次密码修改间隔(4字段)
    -M天数:密码有效期(5字段)
    -W天数:密码过期前警告天数(6字段)
    -I(i天数):密码过后宽限天数(7字段)
    -E(日期):账号失效时间(8字段
  • groupadd:组添加命令
  • groupmod:修改组属性
  • groupdel:删除组
  • groupmems:修改和查看组成员
  • chown:修改文件所属主
  • chgrp:修改文件所属组
  • chmod:修改文件权限
  • vipw 和vigr:编辑文件并有检查功能
  • su su - 完全切换和不完全切换

Linux文本处理,正则表达式和Vim

  • 文本查看命令:cat,tac,rev
  • more:分页查看文件
  • less:一页一页的查看文件或者STDIN输出
  • 显示文本前后内容
    1.head [option]…[file]…
    (1)-c#:指定获取前#字节
    (2)-n#:指定获取前#行
    (3)-#:指定行数
    2.tail [option]…[file]…
    (1) -c#:指定获取后#字节
    (2)-n#:指定获取后#行
    (3)-#:指定行数
  • 按行列抽取文本cut和和并文件paste
    1.cut [option]…[file]…
    (1)-d:指明分隔符,默认为tab
    (2)-c:按字符切割
  • 收集文本统计数据wc
    -l:只计数行数
    -w:只计数单词总数
    -c:只计数字节总数
    -m:只计数字符总数
    -L:显示文件最长行的长度
  • 文本排序sort
    sort [options] files
    -r:执行反方向整理
    -R:随机排序
    -n:执行按数字大小整理
    -f:忽略字符串的字符大小写
    -u:选项删除输出中的重复行
  • uniq命令:从输入中删除相接的重复行
    -c:显示每行重复出现的次数
    -d:仅显示重复过的行
    -u:仅显示不曾重复的行
  • 文本处理三剑客
    1.grep常用命令
    grep root passwd 搜索passwd文件中的root
    grep “^root” passwd 搜索passwd文件中以root开头的
    grep “root$” passwd 搜索passwd文件中以root结尾的
    grep -i root passwd 忽略大小写搜索passwd文件
    grep -Ei “root|ROOT” passwd 同时匹配多个条件
    2.sed
    sed [option] command file
    (1)Command:
    a :新增行, a 的后面可以是字串,而这些字串会在新的一行出现(目前的下一行);
    c :取代行, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行;
    d :删除行,因为是删除,所以 d 后面通常不接任何参数,直接删除地址表示的行;
    i :插入行, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
    p :列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行;
    s :替换,可以直接进行替换的工作,通常这个 s 的动作可以搭配正规表示法
    (2)option:
    -n :使用安静(silent)模式。在一般 sed 的用法中,所有来自stdin的数据一般都会被列出到终端上。加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
    -e :直接在命令列模式上进行 sed 的动作编辑;
    -f :直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作;
    -r :sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法)
    -i :直接修改读取的文件内容,而不是输出到终端。
    3.awk报告生成器
  • getent:帮助用户administrative databases中查找相关信息

Vim

  • vim [option]…[file]
    +#:打开文件后,让光标处于第#行的行首,+默认行尾
    +/PATTERN:打开文件后,直接让光标处于第一个被pattern匹配到的行的行首
    -b file:二进制方式打开文件
    -a file1 file2:比较多个文件
    -m file:只读打开文件
  • vim三种主要模式(esc退出)
    命令模式:默认模式,移动光标,剪切粘贴文本
    插入模式或编辑模式:修改文本
    扩展命令模式:保存,退出等
  • 插入模式
    i ##光标所在位置插入
    I ##光标所在行的行首插入
    A ##光标所在行行尾插入
    a ##光标所在字符的下个字符插入
    s ##删除光标所在字符插入
    S ##删除光标所在行插入
    o ##光标所在行的下一行插入
    O ##光标所在行的上一行插入
  • 关闭文件
    :q #退出,在打开文件后没有对文件做任何修改时可使用
    :wq #退出保存,在对文件修改后并保存内容时使用
    :q! #强制退出,在对文件做修改后要放弃修改时使用
    :wq! #强制退出保存,在对属于自己的文件或你时root用户时使用
  • 命令光标跳转
    h:左移光标一个字符
    l:右移光标一个字符
    k:光标上移一行
    j:光标下移一行
    ^:光标移动至行首
    0 数字"0",光标移至文章的开头
    G 光标移至文章的最后
    $ 光标移动至行尾
  • 命令模式翻屏操作
    Ctrl+f 向前翻屏
    Ctrl+b 向后翻屏
    Ctrl+d 向前翻半屏
    Ctrl+u 向后翻半屏
  • vi命令
    i 在光标位置前插入字符
    a 在光标所在位置的后一个字符开始增加
    o 插入新的一行,从行首开始输入
    ESC 从输入状态退至命令状态
    x 删除光标后面的字符
    #x 删除光标后的#个字符
    X(大写X) 删除光标前面的字符
    #X 删除光标前面的#个字符
    dd 删除光标所在的行
    #dd 删除从光标所在行数的#行
    yw 复制光标所在位置的一个字
    #yw 复制光标所在位置的#个字
    yy 复制光标所在位置的一行
    #yy 复制从光标所在行数的#行
    p 粘贴
    u 取消操作
    cw 更改光标所在位置的一个字
    #cw 更改光标所在位置的#个字
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值