文件管理类相关命令
一、文件查看类命令:
1、cat 查看文件内容
使用格式: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、分屏显示
(1)more 分屏显示文件内容( 查看至文件尾部自动退出)
使用格式: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 下一个关键字
q 退出
3、tail 查看文件尾部多少行
使用格式: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行。
4、head 查看文件首部多少行
使用格式: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:管道文件
s:socket文件(套接字文件)
文件:元数据 :文件属性信息(大小、类型、属主、属组、时间戳等)
数据 : 文件内容
时间戳:最近一次被access的时间(read) access time 简 atime
最近一次被modify的时间(write) modify time 简mtime
最近一次被change的时间(metadata)change time 简ctime
5、stat 查看文件的元数据
使用格式: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
6、touch 文件的时间戳管理工具
使用格式: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文件创建一个新的时间是2015年4月3日8点30分20秒)
[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不会随之改变。
7、cp [选项] 源文件(文件、目录) 目标文件(文件、目录)
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
8、mv文件移动
使用格式: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
9、rm 删除文件
使用格式: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,在想删除文件或目录时,先将文件或目录mv到hsz下,看系统是否会受到影响。
二、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 删除命令尾部至光标处的所有字符