您的位置:新葡亰496net > 电脑系统 > 新葡亰496netCentOS命令介绍综合,文件管理

新葡亰496netCentOS命令介绍综合,文件管理

发布时间:2019-09-29 17:45编辑:电脑系统浏览(122)

    The Root Filesystem(简单介绍)

      /boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader,grub)都存放于此目录

      /bin:供所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序

      /sbin:管理类的基本命令;不能关联至独立分区,OS启动机会用到的程序

      /lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)

      /lib64:专用于x86_64系统上的辅助共享库文件存放位置

      /etc:配置文件目录

      /home/USERNAME:普通用户家目录

      /root:管理员的家目录

      /media:便携式移动设备挂载点

      /mnt:临时文件系统挂载点

      /dev:设备文件及特俗文件存储位置

        b:block device,随机访问

        c:character device,线性访问

      /opt:第三方应用程序的安装位置

      /srv:系统上运行的服务用到的数据

      /tmp:临时文件存储位置

      /usr:universal shared ,read-only data 

        bin:保证系统拥有完整功能而提供的应用程序

        sbin:

        lib:32位使用

        lib64:只存在64位系统

        include:C程序的头文件(header files)

        share:结构化独立的数据,如doc,man等

        local:第三方应用程序的安装位置

          bin,sbin,lib,lib64,etc,share

      /var:variable data files

        cache:应用程序缓存数据目录

        lib:应用程序状态信息数据

        local:专用于为/usr/local下的应用程序存储可变数据;

        lock:锁文件

        log:日志目录及文件

        opt:专用于为/opt下的应用程序存储可变数据;

        run:运行中的进程相关数据,通常用于存储进程pid文件

        spool:应用程序数据池

        tmp:保存系统两次启动之间产生的临时数据

      /proc:用于输出内核与进程信息相关的虚拟文件系统

      /sys:用于输出当前系统上硬件设备相关信息虚拟文件系统

      /selinux:security enhanced Linux ,selinux 相关的安全策略等信息的存储位置

      注意点:linux所谓的大小写敏感是因为文件系统的原因,而并非linux系统本身的原因;Windows对文件后缀是有严格规定的而linux是不关心后缀的,只有在压缩打

      包那一块是关心后缀的;

      定义文件颜色需要访问:cat /etc/DIR_COLORS这个文件

    CentOS命令介绍综合

    1,显示当前使用的shell

    [[email protected] ~]# echo $SHELL
    2,显示当前系统使用的所有shell

    [[email protected] ~]# cat /etc/shells

    3,显示hash缓存

    hash:显示缓存-r:清除缓存

    4,多个命令可使用;符号分开

    5,history

    -c:清空命令历史

    -d:删除历史中指定的命令

    #:显示最近的#条历史

    -a:追加本次会话新执行的命令历史到列表至历史文件

    -n:读历史文件中未读过的行到历史列表

    -r:读历史文件附加到历史列表

    -w:保存历史列表到指定的历史文件

    -p:展开历史参数成多个行,但不存在历史列表中

    -s:展开历史参数成一行,附加在历史列表后

    6,Ctrl

    l:清屏,相当于clear命令

    c:取消命令的执行

    -a:将光标移动到命令行的最前面

    -e:将光标移动到命令行的最后面

    -u:删除光标当前位置到行首

    -k:删除光标当前位置到行尾

    7,Esc

    -b:左移一个单词

    -f:右移一个单词

    8,本地帮助文件存放位置/usr/share/doc/

    9,CentOS系统安装完成后如果没有man帮助可使用以下命令来制作数据库

    CentOS6使用:makewhatis

    CentOS7使用:mandb

    10,man命令的操作方法

    space、^v、^f、^F:向文件尾翻屏

    b、^b:向文件首部翻屏

    d、^d:向文件尾部翻半屏

    u、^u:向文件首部翻半屏

    ^n or ^e or ^j :向文件尾部翻一行

    ^y or ^p or ^k :向文件首部翻一行

    q:退出

    #:跳转至第#行

    1g:回到文件首部

    g:翻至文件尾部

    /keywork:以字符串为关键字,从当前位置向尾部搜索,不区分字符大小写

    n:下一个N:上一个

    ?keywork:以字符串为关键字,从当前位置向首部搜索,不区分字符大小写

    n:下一个N:上一个

    11,文件系统的结构

    /boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader,grub)都存放于此目录。

    /bin:供所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序。

    /sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序。

    /lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)

    /lib64:专用于x86_64系统上的辅助共享库文件存放位置

    /etc:配置文件目录

    /home/USERNAME:普通用户家目录

    /root:管理员的家目录

    /media:便携式移动设备挂载点

    /mnt:临时文件系统挂载点

    /dev:设备文件及特殊文件存储位置

    b:block device,随机访问

    c:character device,线性访问

    /opt:第三方应用程序的安装位置

    /srv:系统上运行的服务用到的数据

    /tmp:临时文件存储位置

    /usr:universal shared,read-only data

    bin:保证系统拥有完整功能而提供的应用程序

    lib:32位使用

    lib64:只存在64位系统

    include:C程序的头文件(header files)

    share:结构化独立的数据,例如doc,man等

    local:第三方应用程序的安装位置

    /var:variable data files

    cache:应用程序缓存数据目录

    lib:应用程序状态信息数据

    local:专用于为/usr/local下的应用程序存储可变数据

    lock:锁文件

    log:日志目录及文件

    opt:专用于为/opt下的应用程序存储可变数据

    run:运行中的进程相关数据;通常用于存储进程pid文件

    spool:应用程序数据池

    tmp:保存系统两次重启之间产生的临时数据

    /proc:用于输出内核与进程信息相关的虚拟文件系统

    /sys:用于输出当前系统上硬件设备相关信息虚拟文件系统

    /selinux:security enhanced linux,selinux相关的安全策略等信息的存储位置

    12,文件类型

    -:普通文件

    d:目录文件

    b:块设备

    c:字符设备

    l:符号链接文件

    p:管道文件pipe

    s:套接字文件socket

    13,ls用法

    -a:包含隐藏文件

    -l:显示额外的信息

    -R:目录递归通过

    -ld:目录和符号链接信息

    -1:文件分行显示

    -S:按从大到小排序

    -u:配合-t选项,显示并按atime从新到旧排序

    -U:不排序按目录存放顺序显示

    14,stat显示文件的三个时间戳

    access time:访问时间,atime,读取文件内容

    modify time:修改时间,mtime,改变文件内容(数据)

    change time:改变时间,ctime,元数据发生改变

    15,touch命令

    touch [OPTION]... FILE...

    -a:仅改变atime

    -m:仅改变mtime

    -t:STAMP:

    [[cc]yy]mmddhhmm[.ss]

    -c:如果文件不存在,则不予创建

    16,cp命令

    -i:交互式

    -r,R:递归复制目录及内部的所有内容

    -a:归档,相当于-dR --preserv=all

    -d:--no-dereference --preserv=links不复制原文件,只复制链接名

    -p:等同--preserv=mode,ownership,timestamp

    -v:--verbose

    -f:--force

    17,alias定义别名

    显示当前shell进程所有可用的命令别名

    [[email protected] ~]# alias
    定义别名NAME,其相当于执行命令VALUE

    [[email protected] ~]# alias NAME='VALUE'
    在命令行中定义的别名,仅对当前shell进程有效。

    如果想永久有效,要定义在配置文件中

    仅对当前用户:~/.bashrc

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

    撤消别名使用:unalias

    18,mv命令使用

    常用选项:

    -i:交互式

    -f:强制

    19,rm命令使用

    常用选项:

    -i:交互式

    -f:强制删除

    -r:递归

    20,tree显示目录树

    -d:只显示目录

    -L level:指定显示的层级数目

    -P pattern:只显示由指定pattern匹配到的路径

    21,mkdir创建目录

    -p:存在于不报错,且可自动创建所需的各目录

    -v:显示详细信息

    -m MODE:创建目录时直接指定权限

    22,rmdir删除空目录

    -p:递归删除父空目录

    -v:显示详细信息

    23,rm删除数据

    -r:递归删除目录树

    -f:强制删除不提示

    24,STDOUT和STDERR重定向到文件

    格式:命令操作符号文件名

    >:把STDOUT重定向到文件

    2>:把STDERR重定向到文件

    &>:把所有输出重定向到文件

    >:文件内容分被覆盖

    set -C:禁止将内容覆盖已有文件,但可以追加强制覆盖:>|

    set C:允许覆盖

    >>:原有内容基础上,追加内容

    2>:覆盖重定向错误输出数据流

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

    标准输出和错误输出各自定向至不同位置:格式如下;

    COMMAND > /path/to/file.out 2> /path/to/error.out

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

    &>:覆盖重定向

    &>>:追加重定向

    COMMAND > /path/to/file.out 2> &1(顺序很重要)

    COMMAND >> /path/to/file.out 2>> &1

    ():合并多个程序的STDOUT

    (cal 2007 ; cal 2008)> all.txt

    25,tr - 转换和删除字符

    tr [OPTION]...SET1 [SET2]

    选项:

    -c或--complerment:取字符集的补集

    -d或--delete:删除所有属于第一字符集的字符

    -s或--squeeze-repeats:把连续重复的字符以单独一个字符表示

    -t或--truncate-set1:将第一个字符集对应字符转化为第二字符集对应的字符

    使用<来重定向标准输入

    某些命令能够接受从文件中导入的STDIN

    $tr ‘a-z’ ‘A-Z’ </etc/issue

    该命令会把/etc/issue中的小写字符都转换成写写字符

    tr –d abc < /etc/fstab 删除fstab文件中的所有abc中任意字符

    [[email protected] ~]# cat > filea

    mage
    wangxiaochun
    按ctrl d离开,可以使用文件来代替键盘的输入
    [[email protected] ~]# cat > filea < fileb

    26,less:一页一页地查看输入

    ls -l /etc | less

    mail:通过电子邮件发送输入:
    echo "testemail" | mail -s "test"[email protected]
    lpr:把输入发送给打印机
    echo "testprint" | lpr-Pprinter_name

    1,显示当前使用的shell [[email protected] ~]# echo $SHELL 2,显示当前系统使用的所有shell [[email protected] ~]# cat /etc/shells 3,显示has...

    alias rm='mv -t /app/'

    cd

     

    pwd(printing working directory)

      显示当前shell的绝对路径

      参数:

        -L:显示连接路径(默认)

        -P:显示真实物理路径

    tree    显示目录树

    • cd xxx 更换目录
    • cd~ 回到家目录
    • cd- 回到前一目录

    Linux的基本思想:

    1.      一切皆文件。

    2.      由短小切目的单一的程序组成。

    3.      组合小程序完成大任务。

    4.      尽可能少的和用户交互。

    5.      以文本文件的形式保存所有软件的配置信息。

     

    ls(列出目录内容)

      ls -a 包含隐藏文件

      ls -l 显示额外的信息

     

      ls -R 目录递归通过

      ls -r:倒序(按首字符顺序来排;数字比字母优先级高)

      ls -ld 目录和符号链接信息
      ls -1 文件分行显示(竖着显示)
      ls –S 按从大到小排序
      ls –t 按mtime排序
      ls –u 配合-t选项,显示并按atime从新到旧排序

      ls –U 按目录存放顺序显示
      ls –X 按文件后缀排序

     

    -  d    只显示目录

    pwd

    Shell:

    Shell是指提供使用者使用界面,将用户的命令转换成二进制的形式交给应用软件。

    Shell的分类:图形界面shell(Graphical User Interface shell 即 GUI shell);

                           命令行式shell(Command Line Interface shell 即CLI shell)。

    UINX中shell的种类主要包括:sh,ksh和 bash。

     

    stat(查看文件状态)

      ctime:元数据修改,会导致时间的改变,ll需要加上--time=ctime;

      mtime:修改文件内容,会导致改变,ll默认显示mtime;

      atime:访问一次会更新时间,记录最后一次读,--time=atime

      relatime

        centos6之后引入了一种机制relatime,是为了每次读一次,不会频繁的去更新时间,这样会带来很多磁盘的I/O,因为系统写一次的时间比读要慢的多,而access就

        是要写入,所以为了避免性能的损失,relatime设置为一天以后才会去写入;还有就是mtime的时间与atime一样或者比atime新时会更新;

        

    -  L    层数

    • pwd 当前目录路径
    • pwd -P 非链接路径

    Linux的基本命令和操作:

    Linux国际化(linux internationalization,即“i18n”)

     

    [[email protected] ~]# cat /etc/sysconfig/i18n

    LANG="en_US.UTF-8"

    SYSFONT="latarcyrheb-sun16"

     

    通过修改LANG="en_US.UTF-8"来改变linux的语言环境。

     

    Locale 显示当前语言名字和值:

     

    [[email protected] ~]# locale

    LANG=en_US.UTF-8

    LC_CTYPE="en_US.UTF-8"

    LC_NUMERIC="en_US.UTF-8"

    LC_TIME="en_US.UTF-8"

    LC_COLLATE="en_US.UTF-8"

    LC_MONETARY="en_US.UTF-8"

    LC_MESSAGES="en_US.UTF-8"

    LC_PAPER="en_US.UTF-8"

    LC_NAME="en_US.UTF-8"

    LC_ADDRESS="en_US.UTF-8"

    LC_TELEPHONE="en_US.UTF-8"

    LC_MEASUREMENT="en_US.UTF-8"

    LC_IDENTIFICATION="en_US.UTF-8"

    LC_ALL=

     

    显示所有系统所支持的语言包:

    [[email protected] ~]# locale –a

     

    登出:

    [[email protected] ~]# logout

     

    每个linux可以提供多套终端,由Ctrl   Alt   Fn进行切换;其中1~6为命令行界面,7为图形化界面。

     

    未启动图形化界面时启动方法:

    [[email protected] ~]# startx &

     

    若要启动更多:

    [[email protected] ~]# startx -- :1

     

    在命令行界面上下翻屏:Shift   PgUp / PgDn

     

    在命令行界面中复制/粘贴快捷键:Ctrl   Shift  c复制;Ctrl   Shift  v 粘贴。

     

    更改开进默认进入界面:

    [[email protected] ~]# vim /etc/inittab

    id:3:initdefault: 默认进入文字界面

    id:5:initdefault: 默认进入图形界面

     

    用户密码修改:

    [[新葡亰496net,email protected] ~]# passwd 用于修改root密码 修改时需要提供旧密码

    [[email protected] ~]# passwd user 用于修改指定用户密码 以root身份修改时 无需提供旧密码

     

    切换用户SwitchUser:

    [[email protected] ~]# su student  su后不跟任何选项直接跟用户 不完全切换

    [[email protected] root]$

    [[email protected] ~]# su -l student  su后跟 –l 或 – 再加用户  完全切换

    [[email protected] ~]新葡亰496netCentOS命令介绍综合,文件管理。$

     

    查看此前所有执行过的指令:

    eg:

    [[email protected] ~]# history

        1  mount /dev/cdrom /mnt

        2  cd /mnt

        3  ls

        4  reboot

        5  ls /mnt

        6  mount /dev/cdrom /mnt

        7  ls /mnt

        8  rpm -ivh /mnt/VMwareTools-6.0.2-59824.i386.rpm

        9  cd ..

       10  wm

       11  cd ..

       12  umount /dev/mount

    ↑ ↓ 对近期执行过的指令进行切换。

    [[email protected] ~]# ! num  表示第num条命令;

    [[email protected] ~]# ! string 表示离现在最近与string想匹配的命令;

    [[email protected] ~]# !!        表示执行上一条指令;

     

    引用上一条指令中的参数(即命令作用对象):

    eg:

    [[email protected] ~]# cat /etc/sysconfig/i18n

    若此时仍想对/etc/sysconfig/i18n进行vim编辑即可输入

    [[email protected] ~]# vim !$

    [[email protected] ~]#vim 按住Alt   .

    [[email protected] ~]#vim 短按Esc   .

     

    通过环境变量HISTCONTROL设置history的记录规则:

    [[email protected] ~]#新葡亰496netCentOS命令介绍综合,文件管理。export HISTCONTROL=ignorespace 以空格开头的命令在history中不予记录;

    [[email protected] ~]#export HISTCONTROL=ignoredups 在history中出现过两次以上的命令只记录一次;

    [[email protected] ~]#export HISTCONTROL=ignoreboth 空格不予记录且命令只记录一次;

    撤销HISTCONTROL:

    [[email protected] ~]#export HISTCONTROL=

    [[email protected] ~]#unset HISTCONTROL

    清空history记录:

    [[email protected] ~]#history –c

     

    文本编辑器nano:

    [[email protected] ~]#nano 文件名 打开文本文档或创建一个文本文档

    可根据nano内组合键提示 完成文本的读取、编辑和存储。

     

    显示文件信息ls (list):

    [[email protected] ~]#ls  选项  文件路径

    -l 显示详细信息;

    -a显示所有文件(包括隐藏文件);

    -d显示文件的自身属性,而不是该目录中的文件;

    -r倒序排列;

    -R递归显示:显示目的目录下的文档以及其子文档。

     

    [[email protected] ~]#tree 文件路径

    可以显示目的文档的文件结构。详见下例

     

    创建目录:

    [[email protected] ~]#mkdir  选项  创建文档的路径

    -p同时生成目的目录及其父目录

    -v创建时显示过程

    eg:

    [[email protected] ~]# mkdir -pv a/b/c

    mkdir: created directory `a'

    mkdir: created directory `a/b'

    mkdir: created directory `a/b/c'

    [[email protected] ~]# tree a

    a

    `-- b

        `-- c

     

    2 directories, 0 files

     

    删除目录:

    [[email protected] ~]#rmdir

    只能删除空目录。

     

    移动文件:

    [[email protected] ~]#mv 源文件 目的路径

    eg:

    x向相对路径下的./a/y移动 x为目录 y为非目录文件 提示不能覆盖

    [[email protected] a]# touch y 

    [[email protected] ~]# mkdir x

    [[email protected] ~]# mv x ./a/y

    mv: cannot overwrite non-directory `./a/y' with directory `x'

     

    mv基本可以这么总结:

    文件→目录 进入该目录下

    目录→目录 进如该目录下

    文件→文件 提示是否覆盖 (root默认mv=mv –v,mv –f 即可不提示覆盖信息)

    目录→文件 系统报错

     

    文件复制:

    [[email protected] ~]#cp 选项 参数

    -p连同档案的属性一起复制到新目录下

    -r,-R递归复制 recursive 复制连带子目录中内容

    -i覆盖提示

    -a =-prd

    cp的基本总结如下:(文件目录不能直接cp)

    目录→目录 进如该目录下

    文件→文件 提示是否覆盖 (cp: overwrite `xxxx'?,root默认cp=cp –v,cp –f 即可不提示覆盖信息)

    文件→目录 报错(xxxx : Not a directory)

    目录→文件 报错(cp: cannot overwrite non-directory `c' with directory `a')

     

    [[email protected] ~]#mv a b c d

    指将abc 3个文件 移动至d目录下(注意此时d一定需是目录,否则报错)

     

    [[email protected] ~]#mv a b

    相同路径下使用mv命令,视为重命名文件。

     

    查看文件的三个时间属性:

    [[email protected] ~]# stat a

      File: `a'

      Size: 4096             Blocks: 16         IO Block: 4096   directory

    Device: fd00h/64768d    Inode: 1110922     Links: 3

    Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)

    Access: 2011-07-18 21:53:12.000000000 0800

    Modify: 2011-07-18 21:49:46.000000000 0800

    Change: 2011-07-18 21:49:46.000000000 0800

     

    Atime:最后一次的访问时间;

    Mtime:最后一次的内容修改时间;

    Ctime:最后一次的属性变化时间。(权限等属性变化,且基本atime mtime变换 都会导致ctime变化)

     

    修改文件的Mtime和Atime:

    [[email protected] ~]# touch  选项  文件名

    -a 将当前系统时间设置为atime;

    -m 将当前系统时间设置为mtime

    -t  时间[CC]YY]MMDDhhmm[.ss] 使用自定义时间同时修改atime mtime

     

    文件的删除:

    [[email protected] ~]#rm 选项 文件

    -i删除前询问(root用户默认rm=rm –i)

    -r,-R 递归删除recursive 删除目录下的所有内容

    -f 强行删除force 删除前不在询问

    eg:

    [[email protected] ~]#rm –rf /  输此命令有惊喜!

     

    改变目录ChangeDirectory:

    [[email protected] ~]#cd

    [[email protected] ~]#cd ~ 以上两条都是直接回到家目录

    [[email protected] ~]#cd ..回到上一级

    [[email protected] ~]#cd – 后退,类似电视遥控器的“返回”

    eg:

    [[email protected] ~]# cd -

    /etc/sysconfig                   回到之前的目录

    [[email protected] sysconfig]# cd -

    /root                          又重新回到家目录

    [[email protected] ~]# cd -

    /etc/sysconfig                   再次回到之前的目录

     

    显示当前目录:

    [[email protected] sysconfig]# pwd

    /etc/sysconfig

     

    文件通配符

      *:匹配0个或多个;
      ?:任何单个字符(包括汉字也算一个字符);
      ~:家目录
      ~wang:去wang的家,root可以任意去别人家,普通用户不能去root家;
      ~-:上一个目录,用于用ls这类命令去直接打开上一次目录的;
      ~ :同.
      ^:非
      [0-9]:匹配数字范围的其中一个(只能是正序的;)  
      不连续就挨个写,比如135[135];
      注:[a-b]与[ab]是有区别的;
      [a-b]他是aAb这样的排序下去的,所以[a-c]:就是有aAbBc这些,同样的[A-B]就是为AbB(小大小大),而[ab]就是指单单的a与b;
      所以以上的方法显示纯小写字母,大写字母是不可能了的那么怎么显示呢?用[:lower:]<-->a-z;[:upper:]<-->A-Z;最外面的[]的意思是中间的内容选一个的意思;
      [[:lower:]]:就是显示某个小写的字母;当然也可以与数字连用[[:lower:]123]
      [[:upper:]]:任意大写字母;
      [[:alpha:]]:任意大小写字母;
      [[:digit:]]:任意数字相当于0-9;
      [[:alnum:]]:任意数字或字母;
      [[:space:]]:水平或垂直空白字符;
      [[:punct:]]:标点符号;  

      [:print:]:可打印字符

      [:cntrl:]:控制(非打印)字符

      [:graph:]:图形字符

      [:xdigit:]:十六进制字符

     

    mkdir    创建目录

    mkdir

    常见的一级目录和功能:

    /bin

    bin即binary,指可直接执行的二进制文件。 在/bin底下的指令可以被root与一般账号所使用,主要有:cat, chmod, chown, date, mv, mkdir, cp, bash等等常用的指令。

    /boot

    这个目录主要在放置开机会使用到的档案,包括Linux核心档案以及开机选单与开机所需设定档等等。 Linux kernel常用的档名为:vmlinuz,如果使用的是grub这个开机管理程序, 则还会存在/boot/grub/这个目录。

    /dev

    在Linux系统上,任何装置与接口设备都是以档案的型态存在于这个目录当中的。 你只要透过存取这个目录底下的某个档案,就等于存取某个装置。

    /etc

    系统主要的设定文件几乎都放置在这个目录内,例如人员的账号密码文件、 各种服务的启始档等等。一般来说,这个目录下的各档案属性是可以让一般使用者查阅的, 但是只有root有权力修改。

    /home

    这是系统预设的使用者家目录(home directory)。在你新增一个一般使用者账号时, 预设的使用者家目录都会规范到这里来。

    /lib

    系统的库文件,而/lib放置的则是在开机时会用到的库文件,以及在/bin或/sbin底下的指令会调用库文件,而库文件不能直接被执行。

    /media

    /mnt

    软盘、光盘、DVD等等装置都暂时挂载于此,常见的档名有:/media/floppy, /media/cdrom等等。如果想要暂时挂载某些额外的装置,可以放置到这个目录中。这个目录的用途与/media相同只是有了/media之后,这个目录就用来暂时挂载用了。

    /usr

    第三方软件安装完成后的帮助信息等。

    /opt

    这个是给第三方软件安装时放置的目录。eg:Oracle等

    /root

    系统管理员(root)的家目录。

    /sbin

    这些指令只有root才能够调用执行的指令,其它使用者最多只能用来『查询』而已。 放在/sbin底下的为开机过程中所需要的,里面包括了开机、修复、还原系统所需要的指令。 

    /srv

    srv可以视为service的缩写,是一些网络服务启动之后,这些服务所需要存取用的数据目录。

    /tmp

    这是让一般使用者或者是正在执行的程序暂时放置档案的地方。

    /proc

    伪目录,在内核中正在执行的程序所生成的文件。

    /sys

    有系统产生,内核中硬件信息的映射,常用于系统调优。

    /var

    经常变化的文档,用户的邮件队列、打印队列的文件。

     

     

                                                       

    本文出自 “Welcome Amigo !” 博客

     

    1.一切皆文件。 2.由短小切目的单一的程序组成。 3.组合小程序完成大任务。 4.尽可能少的和用户交互。 5.以文本文件的...

    touch命令:

      作用:

        1、创建新文件;
        2、改变时间戳;(而且刷新的是3个时间)
      创建新文件目前知道3种了:
        1、touch,比较安全,就算文件存在,最多也就更改时间戳
        2、>比较危险,可能会清空文件;
        3、dd if=/dev/zero of=/PATH/TO/SOMEWHERE bs=1024 count=100,创建一个100M的空文件

      参数:

        -t:修改atime和mtime的时间戳(年月日时分秒);
        -c:文件不存在也不创建,仅仅是刷新已经存在的时间戳;
        -a:仅改变atime和ctime;
        -m:仅改变mtime和ctime;
        ctime是元数据相关的,一般内容改变了大小会变所以mtime改变会影响ctime,访问时间的改变也会影响ctime的改变;

    -p    自动创建所需的个目录

    • mkdir xxx 创建目录
    • mkdir -p xxx/xxx 创建多层目录

    cp  

      一个源文件:
        不存在:创建并将内容填充;
        文件:覆盖加改名;
        目录:目录中有同名,填充文件;没有同名,就创建同名文件,内容填充至新文件;
      多个源文件:
        不存在:提示错误
        文件:提示错误
        目录:新建同名文件,内容填充于此;
      目录(需使用-r):
        不存在:复制SRC目录下所有文件至新建同名目录;
        文件:提示错误
        目录:新建同名目录,递归复制于此

      参数:
        -f:--force
        这里的强制是指,比如你在/root下创建的文件他的所有者和属组都是root,那么如果你用普通用户去覆盖他,就需要用-f去强制执行,其原里是,删除原来文件去新建,所有者和属组的文件;
        -r/R:递归;
        -i:覆盖前提示;
        -n:如果目标存在不覆盖,注意两者顺序;
        -d:--preserv=links不复制源文件,只复制链接名;(默认cp是复制软连接真实指向的内容;)
        -preserv=all -dR<-->-a:
        -v:显示过程
        -u:--update只复制源比目标新的的文件或目标不存在的文件;
          可用于配置文件;
        --backup=numbered:文件名存在的时候,覆盖会做一次配备分,名字为原来的名字加上.~#~

        注:cp只能复制一般的文件,比如复制/dev/zero这个文件加上-a参数还可以,如果不加参数,他会不断输入0去填充你的目标文件,最终将你的磁盘的占满,所以这里有专门复制设备文件,mknod /app/zero c 1 5(为字符设备,主设备号为1,次设备号为5;)

    -v    显示详细信息

    rmdir

    rename:改名(做批量备份)

      rename [options] expression replacement file...
      例:rename '.log' '.log.bak' f*

    -m    创建目录是直接指定权限

    • rmdir xxx 删除空目录

    tree:

      参数:
        -d:只显示目录;
        -L level:指定显示的层数;
        -P pattern:显示由正则表达式匹配的;

    rmdir    删除空目录

    ls

    mkdir:

      -p:递归创建;
      -v:过程;
      -m MODE:创建目录时直接指定权限;

    -p    递归的删除父空目录

    • ls 列出文件
    • ls -a 列出包含“..”和“.”的所有文件
    • ls -A 列出不包含“..”和“.”的所有文件
    • ls -l 列出详细信息
    • ls -lh 列出容量大小(非字节)
    • ls -lS 大小排序
    • ls -lt 时间排序
    • ls -lr 反向列出
    • ls -l --fulltime 完整时间信息

    rmdir:只能删空目录

      -p:从内往外分析是否是空目录往外删;
      -v:过程;

    -v    显示详细信息

    cp

    lsof:查看进程打开的文件

      lsof|grep deleted,可以看到文件已经被删除了,但是没有被释放的,比如你vim还在编辑此文件,在这里可以查看的到;在这里能看到的都是已经删了,但是还没有释放的文件;

    对于大文件的删除:
    > /boot/bigfile:这样清空内容是最好的办法,速度也是最快的;接下来如果不需要了再rm删除;这样能马上释放文件,如果用rm直接删的话,有时候如果在使用的话,那么其实删了内存也没释放;

    watch -n 1 :1秒去执行一次,适合去监控;

    rm  -r    递归删除目录树

    • cp src dst 复制文件
    • cp src1 src2 dstdir 复制文件到目录
    • cp -r src dst 递归复制
    • cp -f src dst 强制复制
    • cp -i src dst 提示复制
    • cp -a/-pdr src dst 复制文件全部属性
    • cp -d srclink dstlink 复制链接文件

    I/O:

      程序:指令 数据;
      单单使用一些指令没有数据是没有意义的,那么我们的内存是断电易失的设备,而且容量有限,所以需要配合磁盘来使用,那么就需要用到I/O;
      打开的文件都有一个fd:file description(文件描述符),是数字;
        例子:当我们用一个shell用vim去编辑一个文件的时候,通过ps aux|grep vim;可以看到在正在使用的进程编号;然后在进入到/proc/进程编号/fd,可以看到文件描述符(高亮显示的数字4),也可以看到正在打开/root/.f1.swp;
      vim的工作特性:
        你打开vim的时候,他不是真正在用vim,而是临时的先开了/root/.f1.swp,只有你修改完存盘他才会真正的去使用vim;这个文件在运行时,可以在/root下看到,而关闭vim的时候,就看不到了;
      STDIN(0):
        默认是键盘的输入;
      STDOUT(1):
        默认是当前终端窗口输出;
      STDERR(2):
        默认是当前终端窗口输出;
        重定向的意义是改变默认I/O位置;
      >(STDOUT):
        ls > /dev/pts1;可以将输出内容到其他终端下;
        set -C:禁止覆盖已有文件,但可追加;
         >| file:强制覆盖;
        set C:允许覆盖;
        如果要多条命令追加的话,用()来括起来;
          (ls;pwd;hostname) > /app/all.log;

      /dev/null;
        用于以后写脚本时候,你不想要的在屏幕上显示的数据;

      例子:
        (echo error 1>&2) >/dev/null
          在屏幕上还是会显示,1>&2,就是把正确的跟错误的一样输出(1>&2,前面跟后一样),所以当错误的输出,所以不会去黑洞,而是在屏幕显示;
        (errcmd;hostname) 2>&1 > /app/aaa;
          系统是这样分析的,错误的结果,正确的结果 2>&1 >/app/aaa;第一层()的效果仅仅是执行的结果;然后错误的仍然照常输出,正确的经过2>&1判断下由于正确的被放到/app/aaa里去了,所以屏幕上只显示第一项
        ((errcmf;hostname) 2>&1) > /app/aaa;
          (错;对 2>&1) >/app/aaa;错变对之后是(对;对)>/app/aaa所以内容都进文件了,屏幕上无输出;
    1>&2:对变错;2>&1:错的变对的;

    df    用于显示磁盘分区上的可使用的磁盘空间

    rm

    tr:   

      处理输入信息的(转换和删除字符串的,后换前);
      默认是键盘输入,所以你输入tr,跟cat同理,都是等待键盘的输入的;所以tr和cat也可能利用<(输入重定向来)来接收文件的信息;

      参数:
        -t:截断;
        tr -t 123 ab;后面只有2个所以会截断到前面2个,3不做替换;
        -d:指定删
        tr -d 'a-z' < /etc/fstab;
          把所有小写的都删了;
        tr -dc 'a'
          会除了a都算,连按的回车也算,所以结束输入需要用ctrl d;’an‘这样是保留a和回车;
        -s:把连续出现的自动内容压缩成一个;
          tr -s " " :
          压缩了之后再用:代替空格;
          这种方法在日后的操作中非常多用,当有很多分割符的时候可以用tr来改成一个来处理;    

        -c:取反;
          tr -sc 'a';
            就是除了a都去重;

    -h    以KB以上的单位来显示

    • rm xxx 删除文件
    • rm -f xxx 强制删除
    • rm -r xxx 递归删除
    • rm -i xxx 提示删除

    tee:

      在屏幕上显示又输出到文件;
        相当于有多了一条路,如T字路,多一条屏幕输出的路,又可对其进行操作了;功能更强大了;
      -a:这个命令不加-a参数是覆盖的,-a是追加;

      指定文件描述符:exec 8<> f1
        指定f1文件的fd为8;
        ll /proc/$$/fd(他相当于是软连接指向f1);
          $$是当前进程;这样可以看到刚刚指定的f1的fd为8;
      取消指定的符号描述符:
        exec 8>&-

     

    -a    查看全部文件系统

    mv

    -T    文件系统类型

    • mv src dst 移动文件
    • mv src1 src2 dstdir 移动文件到目录
    • mv -f src dst 强制移动
    • mv -i src dst 提示移动

    -i    列出inode信息而不是块使用情况

    cat

    watch    定期执行程序,显示全屏输出

    • cat xxx 查看文件
    • cat -n xxx 显示行号
    • cat -T xxx 显示tab

    -n    指定更新间隔

    tac

    ln目标链接名字文件之间建立链接(硬链接)

    • tac xxx 反向查看文件

    -s    使符号链接,而不是硬链接(软链接)

    nl

    stat选项文件名显示文件或文件系统状态

    • nl xxx 显示行号查看文件

    shred选项文件名覆盖文件以隐藏其内容,并可选地删除它

    more

    -n    覆盖次数,默认3次

    • more xxx 查看文件

    -u    覆盖后删除

    less

    -v    查看过程

    • less xxx 查看文件

    -z    用零添加最后的覆盖来隐藏粉碎

    head

    例:shred  -zvun  10

    • head xxx 打印第一页
    • head -n 10 xxx 打印前10行

    readlink      查看链接文件路径

    tail

    file文件名确定文件类型 (看首部信息,不关心文件后缀)

    • tail xxx 打印最后一页
    • tail -n 10 xxx 打印最后10行
    • tail -f xxx 持续监测文件尾

    -b    不显示文件名

    od

    -f    把需要处理的东西存在一个文件,读取文件的内容,适合批处理

    • od -t x xxx 16进制查看文件
    • od -c xxx ASCII字符显示

    -F    使用指定分隔符号替换输出文件名后默认的”:”分隔符

    touch

    -L    查看对应软链接对应文件的文件类型

    • touch -a xxx 创建文件/仅修改访问时间atime(access time)
    • touch -c xxx 仅修改状态修改时间ctime(status time)
    • touch -m xxx 创建文件/仅修改修改时间mtime(modification time)
    • touch xxx 创建文件/修改mtime和atime
    • touch -d "2 days ago" xxx 创建文件/修改文件mtime和atime,ctime为当前时间
    • touch -t 0712310159 xxx 创建文件/修改文件mtime和atime(YYMMDDhhmm),ctime为当前时间

    dd  if=/dev/zero of =/boot/bigfile bs=1M count=500  可控的添加文件内容

    umask

    lsof  |  grep deleted  查看哪些文件已删除但未释放空间

    • umask 默认创建权限(减掉的权限值)
    • umask 022 修改默认创建权限为rwxr-xr-x

    killall进程关掉进程

    lsattr

    ps  aux|grep  vim    查看进程

    • lsattr xxx 列出隐藏属性

    ls  -il    显示节点编号

    chattr

    echo  f{1..50000} | xargs touch    创建大批量文件

    • chattr S 增加隐藏属性 每次修改都会自动sync
    • chattr -a 减去隐藏属性 只能增加不能删除不能修改 root专用
    • chattr =i 设置隐藏属性 不能增加修改删除引用 root专用

    watch  -n 1 -df -i

    file

    通常rm删除大文件未必会立即释放空间,所以建议先使用  >  清空文件内容,在使用rm 删除文件。

    • file xxx 查看文件基本类型

    Centos 6使用的文件系统 ext4  Centos7使用的文件系统 xfs

    which

    文件分为两部分元数据(文件的属性 )和用户数据(即文件数据块,数据块是记录文件真是内容的地方)。元数据中的inode号才是文件的唯一标识而非文件名,文件名(存在于数据块中)只是方便人的使用和记忆。

    • which cmdxxx 查找命令位置

    数据的位置:

    find

    直接指针(有12个,0-11)直接指向数据块(4K),数据低于48K可以通过直接指针直接找到

    • find . -mtime n 查找修改时间n天前的文件
    • find . -ctime -n 查找状态时间n天内的文件
    • find . -atime n 查找访问时间n天的文件
    • find . -user xxx 查找xxx用户的文件
    • find . -name xxx 查找文件名为xxx的文件
    • find . -name xxx* 查找文件名开头xxx的文件
    • find . -size 2c 查找2byte以上的文件
    • find . -size -2k 查找2k以下的文件
    • find . -type s 查找类型为s的文件

    间接指针:直接指向的是指针块(4K),消耗4个字节来描述数据块的位置

    whereis

    节点编号会被重复利用

    • whereis xxx 查找二进制文件、man文件、源文件(从/var/lib/mlocate中)

    centos6 根的节点编号是 2  (挂载点都是为2)

    locate

    centos7的节点编号是64

    • locate xxx 查找包含xxx的文件(从/var/lib/mlocate中)
    • locate *xxx 查找xxx结尾的文件(从/var/lib/mlocate中)
    • locate xxx* 查找xxx开头的文件(从/var/lib/mlocate中)

    每个分区分配自己的节点编号,不同分区节点编号可以一样,同一个文件不能拥有不同的节点编号

    updatedb

    文件名不在节点表里,存在于文件夹的文件内容中(数据块中)

    • 更新/var/lib/mlocate

    链接数:一个节点编号对应的有几个文件名

    删除文件只是删除节点信息,并没有把数据删除

    硬链接:可以存放在同一目录上,也可以在不同目录上(不允许跨分区创建)

    软链接大小是链接路径的大小

    软链接和硬链接区别:

    1.本质不同:硬链接是同一个文件。软链接不是同一个文件

    2.删除:删除一个硬链接的文件并不影响有相同inode的文件使用。删除软链接的原始文件则软链接失效

    3.创建:链接创建完成连接数会增加。软链接则不会

    4.跨分区:硬链接不可以跨分区创建。软链接可以

    5.目录:硬链接不 可以创建目录。软链接可以

    软链接:源文件的路径是相对路径,一定是相对于软链接文件的路径,而非相对于当前工作目录的路径

    程序:指令 数据

    打开的文件都有一个fd: file descriptor (文件描述符)

    I/O重定向:改变默认

    STDOUT和STDERR可以被重定向到文件

    命令 操作符号 文件名

    支持的操作符号包括:

    >      把STDOUT重定向到文件

    2>      把STDERR重定向到文件

    &>      把所有输出重定向到文件

    >      文件内容会被覆盖

    set –C 禁止将内容覆盖已有文件,但可追加

    >| file 强制覆盖

    set C 允许覆盖

    >> 原有内容基础上,追加内容

    <    标准输入重定向

    /dev/null    垃圾箱

    ls /misc/

    systemctl enable autofs ; systemctl start auttofs      让auttofs可用,auttofs可用了 /misc/cd  才可用

    ls  -l  /proc/进程号/fd/

    ():合并多个程序的STDOUT

    例如:

    (ls;pwd;hostname) >> f3.log  多条命令同时重定向一个文件中

    (errcmd;hostname) > /app/true.log  2> /app/error.log    正确的信息和错误信息分开重定向

    (errcmd;hostname) > /app/true.log  2>&1    等同于    &>    等同于下面

    ((errcmd;hostname) 2>&1) > /app/true.log    错的变成对的,在重定向到文件

    (echo error 1>&2) 2> /dev/nul    对的变成错的,错的重定向到 垃圾箱

    linux和windows的文本格式不一样,linux一个符号来标识换行,Windows两个符号来标识 (0d  0a)

    tr    转换和删除字符

    -c    取补集(除了)

    例:tr  -sc  'a'    除了a全都压缩

    aaabbbcccaaa

    aaabcaaa

    例:tr  -dc  'a'    除了a全删,ctrl d才能结束

    abcabcabc

    aaa

    例:tr  -dc  ‘an’    保留a和回车

    -d    删除

    -s    连续重复字符会被压缩(2个以上)

    -t

    t    表示tab键

    n    换行

    r    表示回车键

    例:tr -d 'n'  <  f1    删除回车并重定向 f1

    tr  'n' ' '  <  f1    换行替换成空格重定向 f1

    tr -d 'r' < win.txt > newin.txt    windows文本格式转换为linux

    dos2unix    windows文本格式转换为linux

    unix2dos    linux文本格式转换为windows

    cat  -A win.txt(windows文本)

    a^M$

    b^M$

    c^M$

    ^M$

    ^M$

    例:

    hexdump  -c win.txt

    mail  -s邮件标题  收件人发邮件

    mail    接受邮件    输入主题名查看

    单行重定向,

    多行重定向 <<

    例:cat  > f1 << EOF(end of file)    统一提交

    aaabbbbccc

    bbbbbccccc

    EOF

    命令 | 命令 |命令  管道符号(只能处理标准输出)

    例: ls | tr 'a-z' 'A-Z'

    F1

    F2

    例: who | tr 'a-z' 'A-Z'

    ROOT    PTS/0        2017-11-14 17:33 (192.168.27.1)

    ROOT    PTS/1        2017-11-14 21:32 (192.168.27.1)

    LIYIHANG TTY2        2017-11-14 21:27

    例:error  2>&1 | tr 'a-z' 'A-Z'  (通过 2>&1把错误输出转换为正确输出)

    BASH: ERROR: COMMAND NOT FOUND...

    error  |& tr 'a-z' 'A-Z'  等同    error  2>&1 | tr 'a-z' 'A-Z'

    例:error  |& tr 'a-z' 'A-Z' | tr -d 'O'

    BASH: ERRR: CMMAND NT FUND...

    例:ls -R /etc/ | more    管道符号配合 more 分段查看

    tee    重定向到多个目标    (因为屏幕上可以显示,所以可以做第二次处理)

    -s    追加到给定的文件,不要覆盖

    例:who | tee  f1 | tr -d r

    oot    pts/0        2017-11-14 17:33 (192.168.27.1)

    oot    pts/1        2017-11-14 21:32 (192.168.27.1)

    liyihang tty2        2017-11-14 21:27

    例:who | tee who.out |grep liyihang        grep(搜索)

    liyihangtty2        2017-11-14 21:27

    删除Windows文本文件中的‘^M’

    本文由新葡亰496net发布于电脑系统,转载请注明出处:新葡亰496netCentOS命令介绍综合,文件管理

    关键词: