0723

195 阅读4分钟
  • rmdir 删除空目录

  • tree

      -l 指定显示的层级目录
      -d 只显示目录
    
  • mkdir 连续创建同一层级目录

    mkdir /data/{a,b} = /data/a,/data/b
    
  • $? 保存上一条命令执行结果

    0 成功   1~255 失败
    

文件查看类

cat tac more less tail head

文件时间戳管理工具

  • touch

查看文件状态 使用 stat

   e.g. stat a.log

每个文件都有三个时间戳

* acccess time:访问时间 简写为 atime 读取文件内容
* modify  time:修改时间  mtime 改变文件内容
* change  time:改变时间  ctime 元数据发生改变

touch 可以修改 atime 与 mtime ctime随着atime与mtime 改变而改变

* e.g. touch a.log (修改时间戳到目前的时间)
            -a 修改atime
            -m 修改mtime
            -t 指定时间修改  年月日时分.秒 
            -c 如果文件不存在 则不予创建

文件管理类

cp mv rm

  • 复制命令 cp

    cp 源a 目标b

    • 源为文件

      目标不存在 则新建目标并将内容填充
      如目标存在:
               为文件的话,则直接覆盖原文件,因此建议使用-i选项,会有提示是否覆盖。
               为目录的话,则在目录下新建同名文件,并填充。
      
    • 源为多个文件

      目标必须存在,且为目录,无其他情况
      
    • 源是目录

      此时使用选项-r 可递归复制
      如果目标不存在,则创建指定目录。复制所有文件至目标中
      如果目标存在:
                  是文件 则报错
                  是目录  在目标目录下创建同名目录并复制所有文件至目标中
      

    选项

       -i:交互式
       -r -R:递归
       -a:归档 相当于-dr --preserv=all
          -d 不追踪符号链接
          --preserv 保留某些文件属性 默认保留 mode:权限  ownership:属组属主  timestamp:时间戳 
                    其余为links:链接属性  xattr:拓展属性 context 安全上下文
                    只有在加 = 指明时才会保留其他属性
       -p:保留权限  属组属主 时间戳 相当于 --preserv=mode,ownership,timestamp
       -v:显示详细过程
       -f:强制 非交互式
    
  • 移动命令 mv

  • 删除命令 rm

文本编辑器

nano 全屏幕文本编辑器

nano a.log

bash的基础特性

命令别名 撤销别名 glob 快捷键 IO重定向及管道

  • alias 命令别名

    (1)alias

    alias不带任何参数 则会显示当前shell进程中所有命令别名

    (2)alias a='b'

    定义别名a,其相当于执行命令b

    永久有效

    仅对当前用户:~/.bashrc

    对所有用户有效:/etc/bashrc

    注意: 编辑配置文件,当前进程不会立即生效,新进程才会读取。若要当前进程生效,需要 source 配置文件 或 . 配置文件

  • unalias 撤销别名

    unalias 别名

    如果别名与原命令相同,如果要执行原命令,可使用 \命令

  • glob 通配符机制

    通配符包括:* ? []

(1) *

表示 任何长度的任何字符

(2) ?

表示 任意单个字符

(3) []

匹配指定范围内的任意单个字符 
[a-z]:不区分大小写
[A-Z]:只区分大写
[^]:取反 匹配指定范围外的任意单个字符
  • 快捷键

Ctrl+l:清屏

Ctrl+a:跳转命令开始处

Ctrl+e:跳转命令结尾处

Ctrl+u:删除首部至光标处所有内容

Ctrl+k:删除光标至尾部

*I/O重定向

改变标准位置

(1)输出:

输出重定向: > 覆盖 >> 追加

set -C:禁止将内容覆盖输出至已有文件中:

强制覆盖:>|

set +C:取消禁止内容覆盖

set -C 与 set +C 都是只对当前shell有效

2>:覆盖重定向错误输出数据流:将错误的提示输出到指定目标去

2>>:追加重定向错误输出数据流:

合并标准输出和错误输出为同一个数据流进行重定向:

&>:覆盖重定向
&>>:追加重定向

可合并写作 command > /path/to/file.out 2>&1   即 重定向输出到file.out  2> 错误输出也输出至 &1 也就是file.out

(2)输入:

输入重定向:<

创建文档:<< 键盘上键入的数据可保存在定向目标文件中

      cat >> /a/b/c.log << EOF       即打出EOF 键入即结束

tr命令:转换或删除字符

  e.g. tr abc ABC  即可同位替代 后面的替换前面的 
       tr -d abc   删除指定字符

管道 | : 第一个命令的输出送给第二个命令当输入 可以无限制往下。最后一个命令在当前进程的子shell下执行

tee命令:一路输入 产生两路输出(标准输出屏幕 和 指定的目标文件)