Linux基本内容介绍(2)

Linux文件管理命令介绍

Linux的文件管理命令,包括ls,cd,mkdir,rmdir,mv,cp,rm,cat,tac,head,more,less,tail,下面分别对每一个命令的使用方法具体介绍

  • ls
    ls [OPTION]… [FILE]… 用于展示目录内容
     -a 展示目录所有文件,包括以”.”开头的隐藏文件
     -l 显示完整的文件属性信息
     -h 将文件大小转换成易读的格式,例如K,M,G,需要和-l选项联合使用
     -t 按照时间顺序由后到前排列文件
     -r 在排序的时候逆序排列
     -S 排序的时候按照文件大小排序
     -i 显示文件的inode号
     -R 递归展示文件夹下所有子目录内容
    示例:
    (1)显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
ls /var|grep -E "^l.*[[:digit:]].*[[:lower:]]$"

  (2)显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。

ls /etc|grep -E "^[[:digit:]].*[^[:digit:]]$"```

  (3)显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。

ls /etc|grep -E "^[^[:alpha:]][[:alpha:]]"
  • cd
    cd [-L|-P ] [dir] 由当前目录切换到目的目录
     -P 如果目标目录是符号链接,直接切换到符号链接指向的目录
     -L 如果目录目录是符号链接,直接切换到符号链接代表的目录,而非直接指向的目录
    cd -  返回进入此目录前的一个目录
    cd 返回用户家目录
    cd ~USERNAME 进入USERNAME用户的家目录
    cd .. 返回上级目录
    cd !$ 将上个命令的参数作为cd的参数使用
  • mkdir
    mkdir [OPTION]… DIRECTORY… 创建文件夹
     -p 如果父目录不存在,自动创建
    示例:
    (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
mkdir /tmp/{{a,b}_{c,d}}

  (2)、创建/tmp/mylinux目录下的:
mylinux/
├── bin
├── boot
│ └── grub
├── dev
├── etc
│ ├── rc.d
│ │ └── init.d
│ └── sysconfig
│ └── network-scripts
├── lib
│ └── modules
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── usr
│ └── local
│ ├── bin
│ └── sbin
└── var
├── lock
├── log
└── run

mkdir -p /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,s{bin,ys},tmp,usr/local/{s,}bin,var/{lock,log,run}}
  • rmdir
    rmdir [OPTION]… DIRECTORY… 删除空文件夹
     -p 删除文件夹和它的所有上级文件夹
     -v 输入详细的处理每个文件夹的过程
  • mv
    mv src dest 移动目录的时候不需要额外选项
     -f 强制覆盖
     -t -t后面跟随的是目标地址,所有文件都移动到-t后的目录中
  • cp
    cp [OPTION]… SOURCE… DIRECTORY 复制一个或多个文件到指定目录
    cp [OPTION]… -t DIRECTORY SOURCE… 复制一个或多个文件到参数-t后的指定目录中
     -P  当源文件为链接文件时,复制后的为链接文件,而非链接指向的文件
     -L 当源文件为链接文件时,复制后为链接指向的文件
     -r 递归复制文件夹
    示例:
    (1)复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
cp -r /etc/p*[^[:digit:]] /tmp/mytest1  

  (2)复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。

cp /etc/*.d /tmp/mytest2/

  (3)复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

cp -r /etc/[l,m,n]*.conf /tmp/mytest3/
  • rm
    rm [OPTION]… FILE… 删除文件或者文件夹
     -r 删除文件夹
     -f 强制删除 
     -i 每次删除时提示
  • cat
    cat [OPTION]… [FILE]… 将文件首尾相接的输出到标准输出
     -E 显示行尾符$s
     -n 显示行号
     -T 将tab符号显示为^I
  • tac
    tac [OPTION]… [FILE]… 文件首尾相接的以反序的方式输出到标准输出

  • head
    head [OPTION]… [FILE]… 输出文件的第一部分到标准输出
     -n K 默认输出10行,指定后输出K行,K前有“-”时,输出除最后K行的每一行

  • more
    more [-dlfpcsu] [-num] [+/pattern] [+linenum] [file …] 用于在crt上查看文件,不能向前翻页
     +n 从第n行开始显示
     -n 定义屏幕大小n行
    常用操作
    Enter 向下n行,需要定义。默认为1行
    Ctrl+F 向下滚动一屏
    空格键 向下滚动一屏
    q 退出more

  • less
    less 用于查看文件,在more的基础上,支持向前翻页,更加灵活。
    Ctrl+F 向下滚动一屏
    Ctrl+B 向上滚动一屏
    /字符串:向下搜索”字符串”的功能
    ?字符串:向上搜索”字符串”的功能
    u 向前滚动半页
    d 向后翻半页
    h 显示帮助界面
    q 退出less 命令

  • tail
    tail [OPTION]… [FILE]… 输出文件的最后一部分
     -f 随着文件增长,实时输出文件末尾部分
     -n 输出最后K行,或者-n +k,输出第K行开始的内容

bash工作特性

命令执行返回状态

命令运行后,会有一个返回状态,存入变量$?,为0说明命令执行成功,为其他值(1-255),说明命令执行失败。
示例:

[bhps@test test]$ ls
css.txt  check.sh  result.txt
[bhps@test test]$ echo $?
0
[bhps@test test]$ lss 
-bash: lss: command not found
[bhps@test test]$ echo $?
127
[bhps@test test]$ 

命令行展开

  • ~ 自动展开为当前用户的家目录
  • {} 可承载一个以逗号分割的列表,并可以将其展开为多个路径
    示例:
mkdir test/{a,b,c,d}

命令补全

输入字符串后,按tab键,可以实现命令补全,如匹配到多个命令,则没有输出,再按一次tab键,会显示所有匹配到的命令。
收到用户补全的请求后,会进行命令查找:
- 搜索内建命令
- 根据环境变量PATH中的目录,从左到右的查找匹配的命令

[bhps@test test]$ mo
modem-manager    modinfo          module           modutil          mount            mount.fuse       mount.nfs        mountpoint       mount.tmpfs
modifyrepo       modprobe         modulecmd        more             mount.cifs       mount.glusterfs  mount.nfs4       mountstats       mount.vmhgfs

目录补全

在输入目录字符串的时候,按tab建,在给定起始路径下,逐一匹、匹配该路径下的每一个文件,如果只有一个匹配到,直接补全,如果匹配多个,需要再按一次tab来显示匹配到的项

[bhps@test ~]$ cd t
test/    test.sh  t.sh     t.txt

文件的元数据

  • 元数据概念
    文件系统由实际存储数据的块和元数据组成,元数据包括了块位图,inode(包括inode number,属主,属组,权限,创建时间,修改时间,更改时间),inode位图
  • 元数据查看
    stat filename 可以查看文件的元数据,ls -il 也可以查看文件的部分元数据(不能查看最后访问时间和更改时间)
[bhps@test test]$ stat cbss.txt 
  File: `cbss.txt'
  Size: 888861          Blocks: 1744       IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 1720643     Links: 1
Access: (0644/-rw-r--r--)  Uid: (  507/    bhps)   Gid: (    0/    root)
Access: 2011-01-01 00:00:00.000000000 +0800
Modify: 2011-04-01 00:00:00.000000000 +0800
Change: 2018-08-25 16:38:39.172434242 +0800
  • 元数据修改
  • touch
    touch [OPTION]… FILE… 用于修改文件时间戳
     -a 修改文件访问时间
     -c 不创建文件
     -m 修改文件修改时间
     -d 指定改成的时间,而不用当前时间

示例
(1)在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
##bash工作特性

touch /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S`

(2)修改文件的修改时间

[bhps@test test]$ stat cbss.txt 
  File: `cbss.txt'
  Size: 888861          Blocks: 1744       IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 1720643     Links: 1
Access: (0644/-rw-r--r--)  Uid: (  507/    bhps)   Gid: (    0/    root)
Access: 2011-01-01 00:00:00.000000000 +0800
Modify: 2018-08-25 16:30:08.925434719 +0800
Change: 2018-08-25 16:38:15.196434346 +0800
[bhps@test test]$ touch -m -d 20110401 cbss.txt   
[bhps@test test]$ stat cbss.txt 
  File: `cbss.txt'
  Size: 888861          Blocks: 1744       IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 1720643     Links: 1
Access: (0644/-rw-r--r--)  Uid: (  507/    bhps)   Gid: (    0/    root)
Access: 2011-01-01 00:00:00.000000000 +0800
Modify: 2011-04-01 00:00:00.000000000 +0800
Change: 2018-08-25 16:38:39.172434242 +0800

命令别名和命令引用

命令别名

  • alias
    没有参数或者使用参数-p的时候,显示所有的别名
    alias name 显示该名称的别名
    alias name=value 为name赋值
    示例
[bhps@test test]$ alias
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

命令的引用

命令的引用方式有两种

  • 反引号引用,COMMAND
  • 美元符号引用命令,$(COMMAND)
[bhps@test test]$ ls -l `ls cbss.txt`
-rw-r--r-- 1 bhps root 888861 Apr  1  2011 cbss.txt
[bhps@test test]$ ls -l $(ls cbss.txt)
-rw-r--r-- 1 bhps root 888861 Apr  1  2011 cbss.txt

猜你喜欢

转载自blog.csdn.net/espressomike/article/details/82050517