文件管理类相关命令

一、文件查看类命令:

1cat 查看文件内容

使用格式:cat  [选项文件名

                         -n  给输出的内容加上行号

                         -e  显示非打印字符及结束符如$

[root@localhostyum.repos.d]# cat -n CentOS-Base.repo

    1   # CentOS-Base.repo

    2   #

    3   # The mirror system uses theconnecting IP address of the client and the

[root@localhostyum.repos.d]# cat -e CentOS-Base.repo

# CentOS-Base.repo$

#$

# The mirror system uses the connecting IPaddress of the client and the$

[root@localhostyum.repos.d]# cat -ne CentOS-Base.repo

    1   # CentOS-Base.repo$

    2   #$

    3   # The mirror system uses theconnecting IP address of the client and the$

2、分屏显示

1more   分屏显示文件内容( 查看至文件尾部自动退出)

使用格式:more  文件名

[root@localhostyum.repos.d]# more CentOS-Base.repo

#released updates

[updates]

name=CentOS-$releasever - Updates

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra

#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

--More--(49%)

快捷键:b   向上翻一屏        空格键   向下翻一屏,翻至尾部直接退出文件显示

       ctrl  d 向上翻半屏       没有ctrl  u 也没有关键字查询

2)、less 分屏显示文件内容

使用格式:less 文件名

less快捷键的使用与man手册快捷键的使用基本一致。

ctrl d     向下翻半屏                ctrl u 向上翻半屏

空格键    向下翻一屏               b        向上翻一屏

回车键    向下翻一行                k       向上翻一行

#G        跳转至第#             1G     跳转至文件首部

/关键字   从首部至尾部查询关键字    n  下一个关键字            N下一个关键字

?关键字  从尾部至首部查询关键字    n  下一个关键字            N 下一个关键字

退出

3tail 查看文件尾部多少行

使用格式:tail  [选项文件名

-n   #   -#   查看文件尾部#

               -f   监视一个文件有没有新增内容(主要用于日志查看)

[root@localhostyum.repos.d]# tail -n 3 CentOS-Base.repo

gpgcheck=1

enabled=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6(此处为空格)

[root@localhostyum.repos.d]# tail -3 CentOS-Base.repo

gpgcheck=1

enabled=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 [root@localhost yum.repos.d]# tail -fCentOS-Base.repo

当文件增长时,输出后续添加的数据,因此有实时监视的效果,用Ctrl+c来终止

注:tail后不跟任何选项时,默认查看文件的尾部10行。

4head 查看文件首部多少行

使用格式:head   [选项文件名

-n   #   -#   查看文件首部#

[root@localhostyum.repos.d]# head -3 CentOS-Base.repo

# CentOS-Base.repo

#

# The mirror system uses the connecting IPaddress of the client and the

注:head后不跟任何选项时,默认查看文件的首部10行。

[root@localhostyum.repos.d]# head CentOS-Base.repo

# CentOS-Base.repo

#

# The mirror system uses the connecting IPaddress of the client and the

# update status of each mirror to pickmirrors that are updated to and

# geographically close to the client.  You should use this for CentOS updates

# unless you are manually picking othermirrors.

#

# If the mirrorlist= does not work for you,as a fall back you can try the

# remarked out baseurl= line instead.

#

练习1:查看文件CentOS-Base.repo首部15

[root@localhostyum.repos.d]# head -15 CentOS-Base.repo

练习2:查看文件CentOS-Base.repo尾部11

[root@localhostyum.repos.d]# tail –n 11 CentOS-Base.repo

Linux文件类型

     - :普通文件            d :目录文件

     c:字符设备文件          b:块设备文件

     l:链接文件              p:管道文件

     ssocket文件(套接字文件)

文件:元数据 :文件属性信息(大小、类型、属主、属组、时间戳等)

 数据 文件内容

时间戳:最近一次被access的时间(read        access time      atime

              最近一次被modify的时间(write       modify time    mtime

              最近一次被change的时间(metadatachange time     ctime

5stat  查看文件的元数据

使用格式:stat  文件名

[root@localhostyum.repos.d]# stat CentOS-Base.repo

 File: `CentOS-Base.repo'

 Size: 1992         Blocks: 8          IO Block: 4096   regular file

Device: fd00h/64768d     Inode: 1967808     Links:1

Access: (0644/-rw-r--r--)  Uid: (   0/    root)   Gid: (   0/    root)

Access: 2015-04-08 14:23:19.343998796 -0400

Modify: 2015-04-07 05:24:00.819995966 -0400

Change: 2015-04-07 05:24:00.823996188 -0400

6touch  文件的时间戳管理工具

使用格式:touch  [选项文件名

                        -a    仅修改文件的atime 

                        -m    仅修改文件的mtime

                         -c    不创建空文件

                             -t    [[CC]YY]MMDDhhmm[.ss]  创建一个新的时间

                                                

[root@localhostyum.repos.d]# touch -a CentOS-Base.repo

[root@localhostyum.repos.d]# stat CentOS-Base.repo

  File: `CentOS-Base.repo'

 Size: 1992         Blocks: 8          IO Block: 4096   regular file

Device: fd00h/64768d     Inode: 1967808     Links:1

Access: (0644/-rw-r--r--)  Uid: (   0/    root)   Gid: (   0/    root)

Access: 2015-04-08 15:41:18.893983801 -0400

Modify: 2015-04-07 05:24:00.819995966 -0400

Change: 2015-04-08 15:41:18.893983801 -0400

[root@localhostyum.repos.d]# touch -m CentOS-Base.repo

[root@localhostyum.repos.d]# stat CentOS-Base.repo

 File: `CentOS-Base.repo'

 Size: 1992         Blocks: 8          IO Block: 4096   regular file

Device: fd00h/64768d     Inode: 1967808     Links:1

Access: (0644/-rw-r--r--)  Uid: (   0/    root)   Gid: (   0/    root)

Access: 2015-04-08 15:41:18.893983801 -0400

Modify: 2015-04-08 15:42:31.467995736 -0400

Change: 2015-04-08 15:42:31.467995736 -0400

[root@localhost yum.repos.d]# touch aa

[root@localhost yum.repos.d]# ls

aa CentOS-Base.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Vault.repo

[root@localhostyum.repos.d]# touch -c bb

[root@localhost yum.repos.d]# ls

aa CentOS-Base.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Vault.repo

[root@localhostyum.repos.d]# touch -t 201504030830.20 CentOS-Base.repo (给CentOS-Base.repo文件创建一个新的时间是20154383020秒)

[root@localhostyum.repos.d]# stat CentOS-Base.repo

 File: `CentOS-Base.repo'

 Size: 1992         Blocks: 8          IO Block: 4096   regular file

Device: fd00h/64768d     Inode: 1967808     Links:1

Access: (0644/-rw-r--r--)  Uid: (   0/    root)   Gid: (   0/    root)

Access: 2015-04-03 08:30:20.000000000 -0400

Modify: 2015-04-03 08:30:20.000000000 -0400

Change: 2015-04-08 15:45:43.597000856 -0400
注:ctime有一个保护机制使得其他时间戳在修改时ctime不会随之改变。

7cp   [选项]   源文件(文件、目录)  目标文件(文件、目录)

cp              /etc           /root

情况一:源文件是文件,目标文件是文件 :目标文件存在,文件内容会被覆盖

                                               目标文件不存在,创建文件,文件内容是源文件内容

情况二:源文件是文件,目标文件是个目录,(这个目录必须存在,否则是错误用法)产生的结果就是将源文件复制到 目标目录下

情况三:源文件是目录,必须使用选项才能把目录复制到目标目录下

cp 常用选项

  -r    复制目录,会实现递归复制

  -d  复制不跟随符号链接指向的源文件,即复制的是符号链接文件本身,而非指向的文件

  -a   相当于 -r + -d

  -i    提示是否进行覆盖

  -f    强制覆盖(不建议使用)

[root@localhost/]# cp -r /etc/yum /tmp

[root@localhost/]# ls /tmp

aa jiuren  jiuren2  jiuren3 mylinux  yum  yum.log yum.repos.d

[root@localhost/]# ls /etc/yum

pluginconf.d  protected.d vars  version-groups.conf

[root@localhost/]# ls /tmp/yum

pluginconf.d  protected.d vars  version-groups.conf

[root@localhost~]# cp -d /etc/system-release /tmp

[root@localhost~]# ls /tmp

aa jiuren  jiuren2  jiuren3 mylinux  system-release  yum yum.log  yum.repos.d

[root@localhost tmp]# ll  system-release

lrwxrwxrwx 1 root root 14 Apr  8 16:11 system-release -> centos-release

8mv文件移动

使用格式:mv  [选项]   源文件  目标文件

                          -i   提示是否会覆盖

                          -f  强制移动(不建议使用)

[root@localhost tmp]# ls

aa jiuren  jiuren2  jiuren3 mylinux  system-release  yum yum.log  yum.repos.d

[root@localhost tmp]# mv system-release aa

mv: overwrite `aa'? y

[root@localhost tmp]# ls

aa jiuren  jiuren2  jiuren3 mylinux  yum  yum.log yum.repos.d

[root@localhost tmp]# ll aa

lrwxrwxrwx 1 root root 14 Apr  8 16:11 aa -> centos-release

9rm  删除文件

使用格式:rm  [选项]   文件名

                        -r   递归删除文件,而且可以删除目录

                       -f   强制删除文件

                      -I  提示是否删除文件

root@localhost tmp]# rm -r aa

rm: remove symbolic link `aa'? y

[root@localhost tmp]# ls

jiuren jiuren2  jiuren3  mylinux yum  yum.log  yum.repos.d

建一个回收站机制:

/tmp 创建一个目录 hsz,在想删除文件或目录时,先将文件或目录mvhsz下,看系统是否会受到影响。

二、bash基本特性, 输入输出重定向及管道

1、输出:

      标准输出   1

      错误输出   2

输入:  

      标准输入   0

2、重定向  :改变(输入、输出)的形式 

        >>    输出  以追加的形式  1>>   2>>默认是标准输出

        >     输出   覆盖的形式  1>    2>     默认是标准输出

        &>>标准输出和错误输出以追加的形式一起输出

        &>  标准输出和错误输出以覆盖的形式一起输出

         <<    输入

[root@localhost tmp]# echo aa>>yum.log

[root@localhost tmp]# cat yum.log

aa

[root@localhost tmp]# echo bb> yum.log

[root@localhost tmp]# cat yum.log

bb

[root@localhost tmp]# cat <<abc(输入内容以abc表示输入结束)

> aaa

> bbb

> abc

aaa

bbb

3、管道 |   把一个命令的输出 作为另一个命令的输入

 

命令1  | 命令2  | 命令3…

[root@localhost /]# who|head -1(查看当前用户中的第一个用户)

root    tty1         2015-04-08 13:28

命令 tr  转换

例:tr a-z”“A-Z”把小写a-z转换成A-Z

[root@localhost /]# who|head -1|tr"a-z" "A-Z"(查看当前用户中的第一个用户并把其中的小写字母改成大写字母)

ROOT    TTY1         2015-04-08 13:28

练习1    /etc/passwd  文件的内容的前十行转换为大写输出

head /etc/passwd | tr 'a-z' 'A-Z'

练习2    将当前系统的所登录的所有用户的前一个的信息转换为大写输出

who |  head -1 | tr 'a-z'  'A-Z'

三、bash特性 ,命令别名

alias 别名=“真实命令”该别名知识临时设置即退出系统后在登陆系统就没有该设置

unalias 别名     临时取消别名

修改别名文件位置:

~/.bashrc 仅对当前用户有效

/etc/bashrc 对所有用户有效

[root@localhost /]# alias cdnet="cd/etc/sysconfig/network-scripts/"

[root@localhost /]# cdnet

[root@localhost network-scripts]#

[root@localhost /]# type rm

rm is aliased to `rm -i'

[root@localhost /]# unalias rm

[root@localhost /]# type rm

rm is /bin/rm

四、bash特性 ,快捷键

Ctrl a   跳转至命令首部

Ctrl e  跳转至命令尾部

Ctrl u   删除从命令首部至光标处的所有字符

Ctrl l   清屏

Ctrl k   删除命令尾部至光标处的所有字符