小白学Linux之文件目录管理

1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。

(1)目录管理命令
——ls:列出指定目录下的内容
格式:ls [OPTION]… [FILE]…
-a:显示所有文件包括隐藏文件
-A:显示除.和..之外的所有文件
-l,–long:显示文件的详细属性信息
-h:对文件大小进行单位换算,可能影响精度
-d:查看目录本身而非其内部的文件
-r:逆序显示文件
-R:递归显示文件
示例:ls -lah / –详细显示/目录下的所有文件(包括隐藏文件)
ls -ldh /etc –详细显示/etc目录本身
ls -lhv / –倒序显示/目录下所有文件(包括隐藏文件)
ls -R /etc    –递归显示/etc下所有文件
——mkdir:创建目录
格式:mkdir [OPTION]… DIRECTORY…
-p:自动按需创建父目录
-m:创建目录时给定权限
示例:mkdir -p /data/test/A/B –在/data目录下递归创建/test/A/B三个目录
mkdir -m 711 -p /data/MODE/A –在/data目录下递归创建MODE/A两个目录同时指定目录A的权限为711
——rmdir:删除目录
格式:rmdir [OPTION]… DIRECTORY…
-p:删除目录后如果其父目录为空,则一并删除
示例:rmdir -p /data/test/A –删除A目录后,test目录为空,一并删除
——cd:切换目录
示例:cd ..:切换到上级目录
cd ~:切换回自己的家目录
cd -:在上一次目录与当前目录直接来回切换
——pwd:显示当前目录
(2)文件管理命令
——cp:复制
格式:单源复制:cp [OPTION]… [-T] SOURCE DEST(如果DEST不存在则创建,存在则覆盖)
多源复制:cp [OPTION]… SOURCE… DIRECTORY(DEST必须为directory)
-i:交互式复制,即覆盖前提醒用户确认
-f:强制覆盖目标文件
-r,-R:递归复制目录
示例:cp -if /data/[1-3].txt /data/test –test必须为目录,把三个文件一起复制到test中
cp -r /data /practice –把data目录及目录下的内容一起复制到practice中
——mv:剪切
格式:单源复制:mv [OPTION]… [-T] SOURCE DEST(如果DEST不存在则创建,存在则覆盖)
多源复制:mv [OPTION]… SOURCE… DIRECTORY(DEST必须为directory)
-i:交互式复制,即覆盖前提醒用户确认
-f:强制覆盖目标文件
示例:mv -i /data/[1-3].txt /practice –把/data目录下三个txt文件剪切到/practice下
——rm:删除
格式:rm [OPTION]… FILE…
-i:交互式复制,即覆盖前提醒用户确认
-f:强制覆盖目标文件
-r,-R:递归处理,将制定目录下的所有文件包括目录一并删除
示例:rm -rf /practice –递归删除/practice目录
(3)文本内容管理命令
——cat:正向查看文本内容
格式:cat [OPTION]… [FILE]…
-n:给显示的文本行编号
-E:显示行结束符号$
示例:cat -n /etc/fstab –查看/etc/fatab内容并显示行号
——tac:倒叙查看文本内容
格式:tac [OPTION]… [FILE]…
示例:tac /etc/passwd –倒叙查看文本内容
——head:显示文本内容,默认显示头10行
格式:head [OPTION]… [FILE]…
-n #:显示文本头#行内容
示例:head -5 /etc/passwd –显示/etc/passwd文件头5行内容
——tail:显示文本内容,默认显示后10行
格式:tail [OPTION]… [FILE]…
-n #:显示文本后#行内容
-f:查看文件尾部内容结束后不退出,跟随显示新增的行
示例:tail -8 /etc/passwd –显示/etc/passwd文件后8行内容
——more:分屏显示文本内容,每次显示一屏显示完停止
格式:more [options] file […]
Space键:显示文本下一屏内容
Enter键:只显示文本下一行内容
b键:显示文本上一屏内容
q键:退出
——less:分屏显示文本内容,不主动退出
格式:less [options] file […]
Space键:显示文本下一屏内容
Enter键:只显示文本下一行内容
b键:显示文本上一屏内容
q键:退出

2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。

1)bash命令执行后通过状态返回值来确定执行结果:

成功:返回0

失败:返回1-255

注意,命令执行完成后,其状态返回值保存于bash的特殊变量“$?”中。

示例:

# ls
etcls.sh gentoo love.txt tmpmk.sh varls.sh
# echo $?
0
# lsss -l
bash: lsss: command not found…
# echo $?
127

(2)bash命令行展开:

~:自动展开为当前用户的家目录

~USERNAME:自动展开为指定用户的家目录

{}:{}内容可为一个用,隔开的路径列表,将其展开为多个路径

示例:

1

2

3

4

5

6

# cd ~walterhuang

# pwd

/home/walterhuang

# cd ~

# pwd

/root

本文福利:关注薇信工宗号:程序员交流互动平台,回复【大数据】可获取大数据基础视频教程一套

3、请使用命令行展开功能来完成以下练习:

(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d

小白学Linux之文件目录管理

[root@steven /]# tree /tmp

/tmp

├── {a.b}_c

├── {a.b}_d

├── a_c

├── a_d

├── anaconda.log

├── b_c

├── b_d

├── hsperfdata_root

│ └── 3020

├── ifcfg.log

├── ks-script-I7ulJS

├── packaging.log

├── program.log

├── sensitive-info.log

├── ssh-ggmmcun7M2BM

│ └── agent.11391

├── storage.log

├── systemd-private-7cf910eca45f4f549e6aedea59621ea4-colord.service-8uAM7m

│ └── tmp

├── systemd-private-7cf910eca45f4f549e6aedea59621ea4-cups.service-pIEqBq

│ └── tmp

├── systemd-private-7cf910eca45f4f549e6aedea59621ea4-rtkit-daemon.service-mjBcd2

│ └── tmp

├── systemd-private-7cf910eca45f4f549e6aedea59621ea4-vgauthd.service-iJNR3j

│ └── tmp

├── systemd-private-7cf910eca45f4f549e6aedea59621ea4-vmtoolsd.service-218DG7

│ └── tmp

│ └── vmware-root

├── systemd-private-9f23cd16f00b4d20a1b3c420966121bf-colord.service-4x1aYA

│ └── tmp

├── systemd-private-9f23cd16f00b4d20a1b3c420966121bf-cups.service-u3q3ET

│ └── tmp

├── systemd-private-9f23cd16f00b4d20a1b3c420966121bf-rtkit-daemon.service-v8D8sb

│ └── tmp

├── systemd-private-9f23cd16f00b4d20a1b3c420966121bf-vgauthd.service-hxgT2L

│ └── tmp

├── systemd-private-9f23cd16f00b4d20a1b3c420966121bf-vmtoolsd.service-ZMqjfn

│ └── tmp

│ └── vmware-root

├── systemd-private-cafce9ab2e2743d19dd3e1671cc7d9e5-colord.service-xlXrbZ

│ └── tmp

├── systemd-private-cafce9ab2e2743d19dd3e1671cc7d9e5-cups.service-Brq3gW

│ └── tmp

├── systemd-private-cafce9ab2e2743d19dd3e1671cc7d9e5-rtkit-daemon.service-LphkWd

│ └── tmp

├── systemd-private-cafce9ab2e2743d19dd3e1671cc7d9e5-vgauthd.service-FQDYHD

│ └── tmp

├── systemd-private-cafce9ab2e2743d19dd3e1671cc7d9e5-vmtoolsd.service-rVcWpU

│ └── tmp

│ └── vmware-root

├── tracker-extract-files.1000

├── yum.log

├── yum_save_tx.2018-08-23.09-22.Sm_fbn.yumtx

└── yum_save_tx.2018-08-27.09-58.FnoJau.yumtx

(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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

# mkdir -pv /tmp/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: 已创建目录 "/tmp/mylinux"

mkdir: 已创建目录 "/tmp/mylinux/bin"

mkdir: 已创建目录 "/tmp/mylinux/boot"

mkdir: 已创建目录 "/tmp/mylinux/boot/grub"

mkdir: 已创建目录 "/tmp/mylinux/dev"

mkdir: 已创建目录 "/tmp/mylinux/etc"

mkdir: 已创建目录 "/tmp/mylinux/etc/rc.d"

mkdir: 已创建目录 "/tmp/mylinux/etc/rc.d/init.d"

mkdir: 已创建目录 "/tmp/mylinux/etc/sysconfig"

mkdir: 已创建目录 "/tmp/mylinux/etc/sysconfig/network-scripts"

mkdir: 已创建目录 "/tmp/mylinux/lib"

mkdir: 已创建目录 "/tmp/mylinux/lib/modules"

mkdir: 已创建目录 "/tmp/mylinux/lib64"

mkdir: 已创建目录 "/tmp/mylinux/proc"

mkdir: 已创建目录 "/tmp/mylinux/sbin"

mkdir: 已创建目录 "/tmp/mylinux/sys"

mkdir: 已创建目录 "/tmp/mylinux/tmp"

mkdir: 已创建目录 "/tmp/mylinux/usr"

mkdir: 已创建目录 "/tmp/mylinux/usr/local"

mkdir: 已创建目录 "/tmp/mylinux/usr/local/bin"

mkdir: 已创建目录 "/tmp/mylinux/usr/local/sbin"

mkdir: 已创建目录 "/tmp/mylinux/var"

mkdir: 已创建目录 "/tmp/mylinux/lock"

mkdir: 已创建目录 "/tmp/mylinux/log"

mkdir: 已创建目录 "/tmp/mylinux/run"

# tree /tmp/mylinux/

/tmp/mylinux/

├── bin

├── boot

│   └── grub

├── dev

├── etc

│   ├── rc.d

│   │   └── init.d

│   └── sysconfig

│   └── network-scripts

├── lib

│   └── modules

├── lib64

├── lock

├── log

├── proc

├── run

├── sbin

├── sys

├── tmp

├── usr

│   └── local

│   ├── bin

│   └── sbin

└── var


本文福利:关注薇信工宗号:程序员交流互动平台,回复【大数据】可获取大数据基础视频教程一套

4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。

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

使用aliase可以查看当前shell的的别名。aliase=value可以定义命令别名

(1) alias

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

(2) alias NAME='VALUE'

定义别名NAME,其相当于执行命令VALUE;

注意:在命令行中定义的别名,仅对当前shell进程有效;如果想永久有效,要定义在配置文件中;

  仅对当前用户:~/.bashrc

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

    撤消别名:unalias

unalias [-a] name [name …]

6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。

  [root@localhost ~]# ls -l  /var/1*[0-9]*[a-z]

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

[root@localhost ~]# ls -l  /etc/[0-9]*[^0-9]

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

 [root@localhost ~]# ls /etc/[^a-zA-Z][a-zA-Z]*

9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。

 [root@localhost ~]# touch /tmp/tfile-date +%Y-%m-%d-%H-%M-%S

10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。

 [root@localhost ~]#cp /etc/p*[^0-9] /tmp/mytest1/

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

 [root@localhost ~]#cp /etc/*.d /tmp/mytest2/ 

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

 [root@localhost ~]#cp /etc/{1,m,n}*.conf /tmp/mytest3/

在这里我还是要推荐下我自己建的大数据学习交流裙:805127855, 裙 里都是学大数据开发的,如果你正在学习大数据 ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有大数据开发相关的),包括我自己整理的一份2018最新的大数据进阶资料和高级开发教程,欢迎进阶中和进想深入大数据的小伙伴。
 

猜你喜欢

转载自blog.csdn.net/cryacq2798/article/details/83819893