Linux的文件管理类命令

2016-09-29  本文已影响0人  琴琴唄

一、Linux上的文件管理类命令有哪些,其常用的使用方法?
1、ls:显示目录下的文件
-a:显示所有文件,包括隐藏文件(以 . 开头的文件)
-l:详细列出文件的属性等信息
-d:仅列出目录本身,而不是列出目录内的文件数据
[root@system2 tmp]# ls
anaconda.log packaging.log

2、cd:切换目录
cd / # 切换到根目录
cd .. # 回到上一级目录(回到父目录)
cd - # 回到上次切换时的目录
[root@system2 tmp]# cd .. # .表示当前目录,所以还是在tmp目录
[root@system2 /]# # ..表示上一层目录,所以此时就进入到了/目录下

3、pwd:显示当前所在的工作目录
[root@system2 tmp]# pwd #显示当前目录
/tmp

4、touch:创建空文件, 或修改文件时间戳
touch [-amt] [文件]
-a # 只更改存取时间
-m # 只更改修改时间
-t # 更改为自定义时间戳
[root@system2 tmp]# touch niqin
[root@system2 tmp]# ls
anaconda.log niqin

5、mkdir:创建新目录
mkdir [目录名] # 后面目录名自己定义
-p # 创建多级目录
[root@system2 tmp]# mkdir test #创建一个新目录
[root@system2 tmp]# ls
anaconda.log niqin storage.log test

6、cp:复制文件或目录
cp [-aR] [目录名] [目的路径]
-a # 复制所有文件
-r # 复制目录
-f #为强制 (force) 的意思
-p #连同文件的属性一起复制过去,而非使用默认属性
-i #若目的文件(destination)已经存在时,在覆盖时会先询问是否真的覆盖
[root@system2 tmp]# cp /var/log/wtmp wtmp
[root@system2 tmp]# ls -l /var/log/wtmp wtmp
-rw-rw-r--. 1 root utmp 8832 Sep 28 23:22 /var/log/wtmp
-rw-r--r--. 1 root root 8832 Sep 28 23:38 wtmp

7、mv:移动文件或目录, 或重命名
mv [源文件或目录] [目的路径或名称]
[root@system2 tmp]# mv bashrc test1/bashrc #将文件bashrc移动到目录/tmp/test1/

8、rm:删除文件或目录
rm [-rf] [文件或目录]
-r # 删除目录
-f # 强制删除不提示
[root@system2 tmp]# rm -rf niqin #加了选项-f直接强制删除目录以及里面所有文件

9、cat:显示文件内容
cat [文件名]
[root@system2 tmp]# cat 123
123456

10、more:分页显示文件内容
more [文件名]
(空格)或f # 显示下一页
(Enter) # 显示下一行
q # 退出

11、head:显示文件前几行
head [-num] [文件名]
-num # 显示文件的前num行

12、tail:显示文件后几行
tail [-num] [文件名]
-num # 显示文件的后num行

二、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及演示?
在shell中, 每执行一次命令, 都会产生一个命令返回值, 保存在bash的特殊环境变量 $? 中.
这个特殊的返回值, 叫做命令执行的状态返回值。
注意,命令执行状态返回值和命令的执行结果间的区别。不管命令是否成功执行,都会有相关数
据显示,但是命令执行状态返回值却是不同的
[root@system2 tmp]# echo $?
0 #状态返回值为0, 表示命令执行成功
[root@system2 tmp]# lnn
bash: lnn: command not found...
Similar command is: 'ln'
[root@system2 tmp]# echo $?
127 #状态返回值为1-255, 表示命令有错误
[root@system2 tmp]#

三、命令行展开
1、创建、tmp目录下的:a_c,a_d,b_c,b_d
~: 展开结果为用户的家目录
{}: 可以承载一个逗号分割的路径列表, 自动展开成为多个路径

创建/tmp目录下的 a_c, a_d, b_c, b_d

[root@system2 tmp]# touch {a,b}_{c,d}
[root@system2 tmp]# ls
b_d
a_c hsperfdata_root
a_d

2、创建/tmp/mylinux目录下的:

Paste_Image.png

[root@system2 tmp]# mkdir -p mylinux/{bin,boot/grub,dev,etc/{rc.d/inin.d,s
ysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/
{bin,sbin},var/{lock,log,run}}
[root@system2 tmp]# tree 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

四、文件的元数据信息有哪些?分别表示什么含义如何查看?如何修改文件的时间戳信息?
在linux系统中, 每一个目录或文件都有一个索引节点相对应, 而在索引节点表中包含文件系统所有的文件列表,
每个索引节点的表中, 包含有文件的信息(元数据), 每个表中包含的信息有:
1、文件类型, 权限, UID, GID
2、链接数
3、文件大小和时间戳
4、指向磁盘上数据块的指针
5、有关文件的其他数据

查看一个文件元数据的方法:
[root@system2 etc]# stat services
File: ‘services’
Size: 670293 Blocks: 1312 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 8391762 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:etc_t:s0
Access: 2016-05-18 10:54:06.707010331 +0800
Modify: 2013-06-07 22:31:32.000000000 +0800
Change: 2016-05-13 18:09:34.661861195 +0800

修改一个文件的时间戳:
touch [-amt] [文件]
-a # 只更改存取时间
-m # 只更改修改时间
-t # 更改为自定义时间戳

[root@system2 tmp]# touch -a txt #使用-a参数,修改访问时间
[root@system2 tmp]# touch -m -t 201609281001.20 txt #使用-m -t把时间改为指定的时间
[root@system2 tmp]# stat txt #mtime已更改为上面指定的时间
File: ‘txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd00h/64768d Inode: 27300250 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2016-09-28 23:10:49.614753942 +0800
Modify: 2016-09-28 10:01:20.000000000 +0800
Change: 2016-09-28 23:12:25.449747209 +0800

五、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?

给ls -l 取别名:

alias lsl='ls -l'

所谓管道符, 就是"|", 它可以引用前面的命令的输出结果并给后面的命令使用
[root@system2 ~]# cat /etc/inittab |grep id

六、显示/var目录下以 l 开头, 以一个小写字母结尾, 且中间至少出现一位数字(可以有其他字符)的文件或目录?
[root@system2 ~]# ls -d /var/1[0-9][[:lower:]]

七、显示/etc目录, 以任意一个数字开头, 且以非数字结尾的文件或目录?
[root@system2 ~]# ls -d /etc/[0-9]*[^0-9]

八、显示/etc目录下, 以非字母开头, 后面跟了一个字母一级其他任意长度任意字符的文件或目录?
[root@system2 ~]# ls -d /etc/[^a-z][a-z]*

九、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22?
[root@system2 ~]# touch /tmp/tfile-${date +%Y-%m-%d-%H-%M-%S}

十、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中?
[root@system2 ~]# mkdir /tmp/mytest1
[root@system2 ~]# cp -r /etc/p*[^0-9]/tmp/mytest1

十一、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中?
[root@system2 ~]# mkdir /tmp/test2
[root@system2 ~]# cp -r /etc/*.d /tmp/mytest2

十二、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中?
[root@system2 ~]# mkdir /tmp/test3
[root@system2 ~]# cp /etc/[1mn]*.conf /tmp/mytest3

上一篇下一篇

猜你喜欢

热点阅读