第三周

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

1.cat

功能:有从磁盘创建文件的功能(但不具备编辑功能),但主要功能还是2个或者以上文件的合并。

常配合使用参数:

-n 或--number 由1 开始对所有输出的行数编号。

-b 或--number-nonblank 和-n 相似,只不过对于空白行不编号。

使用方法:

cat –n diannaob1>diannaob2,把diannaob1里的内容加上行号以后并入diannaob2。

cat –b diannaob1 diannaob2>>diannaob3,对diannaob1和diannaob2里的内容加上行号(空白行不加)并入diannaob3。

2.chattr

功能:给指定文件添加,去掉,赋予属性。

常配合使用参数:

-R 递归处理,将指定目录下的所有文件及子目录一并处理。

-v<版本编号> 设置文件或目录版本。

-V 显示指令执行过程。

+<属性> 开启文件或目录的该项属性。

-<属性> 关闭文件或目录的该项属性。

=<属性> 指定文件或目录的该项属性。

a:让文件或目录仅供附加用途。

b:不更新文件或目录的最后存取时间。

c:将文件或目录压缩后存放。

d:将文件或目录排除在倾倒操作之外。

i:不得任意更动文件或目录。

s:保密性删除文件或目录。

S:即时更新文件或目录。

u:预防以外删除。

使用方法:

比如diannaob1这个文件为了方式被其他linux用户删除,可以给其添加预防以外删除属性。

chattr +u diannaob1

3.chgrp

功能:更改目录或者文件所属的群组。

使用方法:

比如把diannaob1文件移动到diannaob组里:

chgrp diannaob diannaob1

4.cmp

功能:用来比较文件之间的不同,如果相同不返回任何信息,不同的地方列出字符和列数编号。

常配合使用参数:

-c或--print-chars  除了标明差异处的十进制字码之外,一并显示该字符所对应字符。

-i<字符数目>或--ignore-initial=<字符数目>  指定一个数目。

-l或--verbose  标示出所有不一样的地方。

-s或--quiet或--silent  不显示错误信息。

-v或--version  显示版本信息。

--help  在线帮助。

使用方法:

比如比较文件diannaob1和diannaob2有什么同

cmp diannaob1 diannaob2

配合使用的参数加在cmp和文件之间。

5.file

功能:辨识文件类型。

常配合使用参数:

-b  列出辨识结果时,不显示文件名称。

-c  详细显示指令执行过程,便于排错或分析程序执行的情形。

-f<名称文件>  指定名称文件,其内容有一个或多个文件名称呢感,让file依序辨识这些文件,格式为每列一个文件名称。

-L  直接显示符号连接所指向的文件的类别。

-m<魔法数字文件>  指定魔法数字文件。

-v  显示版本信息。

-z  尝试去解读压缩文件的内容。

使用方法:

比如要辨别diannaob1的文件类型

File diannaob1 文件位置

6.find

功能:根据各种需求(名称、类别、时间、大小、权限等)在指定的目录内寻找符合要求的文件。

常配合使用参数:

-mount, -xdev : 只检查和指定目录在同一个档案系统下的档案,避免列出其它档案系统中的档案

-amin n : 在过去n 分钟内被读取过

-anewer file : 比档案file 更晚被读取过的档案

-atime n : 在过去n 天过读取过的档案

-cmin n : 在过去n 分钟内被修改过

-cnewer file :比档案file 更新的档案

-ctime n : 在过去n 天过修改过的档案

-empty : 空的档案-gid n or -group name : gid 是n 或是group 名称是name

-ipath p, -path p : 路径名称符合p 的档案,ipath 会忽略大小写

-name name, -iname name : 档案名称符合name 的档案。iname 会忽略大小写

-size n : 档案大小是n 单位,b 代表512 位元组的区块,c 表示字元数,k 表示kilo bytes,w 是二个位元组。-type c : 档案类型是c 的档案。

d: 目录

c: 字型装置档案

b: 区块装置档案

p: 具名贮列

f: 一般档案

l: 符号连结

使用方法:

将目前目录及其子目录下所有延伸档名是c 的档案列出来。

find . -name "*.c"

将目前目录其其下子目录中所有一般档案列出

find . -ftype f

将目前目录及其子目录下所有最近20 分钟内更新过的档案列出

find . -ctime -20

7.git

功能:文字模式下的文件管理员,进入之后,可以进行各种文件的操作。

常配合使用参数:

F1 :执行info指令,查询指令相关信息,会要求您输入欲查询的名称。

F2 :执行cat指令,列出文件内容。

F3 :执行gitview指令,观看文件内容。

F4 :执行vi指令,编辑文件内容。

F5 :执行cp指令,复制文件或目录,会要求您输入目标文件或目录。

F6 :执行mv指令,移动文件或目录,或是更改其名称,会要求您输入目标文件或目录。

F7 :执行mkdir指令,建立目录。

F8 :执行rm指令,删除文件或目录。

F9 :执行make指令,批处理执行指令或编译程序时,会要求您输入相关命令。

F10 :离开git文件管理员。

8.cut

功能:用于从文件或者标准输入中读取内容并截取每一行的特定部分并送到标准输出。

配合使用参数:

-b 字节(bytes)

-c 字符(characters)

-f 域(fields)

使用方法:

如日期:dc oct 10 21:15:54 PDT 2012

date |cut –b 1-4    输出dc o,表示取前4个字节,其中空格也算一个字节。

date |cut –c 1-4    输出dc o,看似跟-b没有区别,但是如果日期换成汉字就有区别了,因为一个汉字算3个字节。

多个定位之间用逗号隔开:

date |cut –b 1-4,6  输出前4个字节和第6个字节:dc ot

分割域:

如:

service1:pts/0:Oct 9 20:27: (211.95.114.235)

service2:pts/1:Oct 9 21:06: (218.80.203.242)

service3:pts/2:Oct 9 14:35: (218.80.203.242)

service4:pts/3:Oct 9 21:07: (218.80.213.242)

service5:pts/4:Oct 9 21:07: (218.80.213.242)

service6:pts/5:Oct 9 21:45: (58.31.205.19)

cut –d: -f1 f.txt 把f.txt这个文件按:分割成域,取域1

输出:

service1

service2

service3

service4

service5

service6

linux学习:准信培训中心(training.zhunxin.net)

2.in

功能:创建连接(类似于window下创建超链接)

使用方法:

把将目录/usr/menggc/mub l下的文件m2.c链接到目J/usr/1iu下的文件a2.c

In /usr/menggc/mub l/m2.c J/usr/1iu/a2.c  本来J/usr/1iu目录下没有a2.c文件,当链接成功时就会出现a2.c文件。

In 选项源文件目标文件

9.less

功能:查看文件

使用方法:

Less 文件名

Less的作用和more差不多,不同的是less 允许使用者往回卷动,查看已经看过的部分。

10.locate

使用权限:所有使用者

使用方式:

    locate [-q] [-d ] [--database=]

   locate [-r ] [--regexp=]

   locate [-qv] [-o ] [--output=]

   locate [-e ] [-f ] <[-l ] [-c]><[-U ] [-u]>

  locate [-Vh] [--version] [--help]

说明:

  locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的资料库,之后当寻找时就只需查询这个资料库,而不必实际深入档案系统之中了。在一般的distribution 之中,资料库的建立都被放在contab 中自动执行。

  一般使用者在使用时只要用

  # locate your_file_name

  的型式就可以了。参数:

  -u

  -U

  建立资料库,-u 会由根目录开始,-U 则可以指定开始的位置。

  -e

  将排除在寻找的范围之外。

  -l

  如果是1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到的档案。这会始速度减慢,因为locate 必须至实际的档案系统中取得档案的权限资料。

  -f

  将特定的档案系统排除在外,例如我们没有到理要把proc 档案系统中的档案放在资料库中。

  -q

  安静模式,不会显示任何错误讯息。

  -n

  至多显示个输出。

  -r

  使用正规运算式做寻找的条件。

  -o

  指定资料库存的名称。

  -d

  指定资料库的路径

  -h

  显示辅助讯息

  -v

  显示更多的讯息

  -V

  显示程式的版本讯息范例:

  locate chdrv:寻找所有叫chdrv 的档案

  locate -n 100 a.out:寻找所有叫a.out 的档案,但最多只显示100 个

  locate -u:建立资料库

11.more

使用权限:所有使用者

使用方式:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]

说明:类似cat ,不过会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与vi 相似),使用中的说明文件,请按h 。

参数:

      -num 一次显示的行数

  -d 提示使用者,在画面下方显示[Press space to continue, q to quit.] ,如果使用者按错键,则会显示[Press h for instructions.] 而不是哔声

  -l 取消遇见特殊字元^L(送纸字元)时会暂停的功能

  -f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)

  -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容

  -c 跟-p 相似,不同的是先显示内容再清除其他旧资料

  -s 当遇到有连续两行以上的空白行,就代换为一行的空白行

  -u 不显示下引号(根据环境变数TERM 指定的terminal 而有所不同)

  +/ 在每个档案显示前搜寻该字串(pattern),然后从该字串之后开始显示

  +num 从第num 行开始显示

  fileNames 欲显示内容的档案,可为复数个数

范例:

  more -s testfile 逐页显示testfile 之档案内容,如有连续两行以上空白行则以一行空白行显示。

  more +20 testfile 从第20 行开始显示testfile 之档案内容。

12.mv

使用权限:所有使用者

使用方式:

  mv [options] source dest

  mv [options] source... directory

说明:将一个档案移至另一档案,或将数个档案移至另一目录。

参数:-i 若目的地已有同名档案,则先询问是否覆盖旧档。

范例:

  将档案aaa 更名为bbb:

  mv aaa bbb

  将所有的C语言程式移至Finished 子目录中:

  mv -i *.c

13.rm

使用权限:所有使用者

使用方式:rm [options] name...

说明:删除档案及目录。

把计:

  -i 删除前逐一询问确认。

  -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。

  -r 将目录及以下之档案亦逐一删除。

  范例:

  删除所有C语言程式档;删除前逐一询问确认:

  rm -i *.c

  将Finished 子目录及子目录中所有档案删除:

  rm -r Finished

14.split

使用权限:所有使用者

使用方式:split [OPTION] [INPUT [PREFIX]]

说明:将一个档案分割成数个。而从INPUT 分割输出成固定大小的档案,其档名依序为PREFIXaa, PREFIXab...;PREFIX 预设值为`x。若没有INPUT 档或为`-,则从标准输入读进资料。

匡兜:

  -b, --bytes=SIZE

  SIZE 值为每一输出档案的大小,单位为byte。

  -C, --line-bytes=SIZE

  每一输出档中,单行的最大byte 数。

  -l, --lines=NUMBER

  NUMBER 值为每一输出档的列数大小。

  -NUMBER

  与-l NUMBER 相同。

  --verbose

  于每个输出档被开启前,列印出侦错资讯到标准错误输出。

  --help

  显示辅助资讯然后离开。

  --version

  列出版本资讯然后离开。

  SIZE 可加入单位: b 代表512, k 代表1K, m 代表1 Meg。

  范例:

  PostgresSQL 大型资料库备份与回存:

  因Postgres 允许表格大过你系统档案的最大容量,所以要将表格dump 到单一的档案可能会有问题,使用split进行档案分割。

  % pg_dump dbname | split -b 1m - filename.dump.

  重新载入

  % createdb dbname

  % cat filename.dump.* | pgsql dbname

15.touch

使用权限:所有使用者

使用方式:

  touch [-acfm]

  [-r reference-file] [--file=reference-file]

  [-t MMDDhhmm[[CC]YY][.ss]]

  [-d time] [--date=time] [--time={atime,access,use,mtime,modify}]

  [--no-create] [--help] [--version]

  file1 [file2 ...]

说明:

  touch 指令改变档案的时间记录。ls -l 可以显示档案的时间记录。

参数:

  a 改变档案的读取时间记录。

  m 改变档案的修改时间记录。

  c 假如目的档案不存在,不会建立新的档案。与--no-create 的效果一样。

  f 不使用,是为了与其他unix 系统的相容性而保留。

  r 使用参考档的时间记录,与--file 的效果一样。

  d 设定时间与日期,可以使用各种不同的格式。

  t 设定档案的时间记录,格式与date 指令相同。

  --no-create 不会建立新档案。

  --help 列出指令格式。

  --version 列出版本讯息。

范例:

  最简单的使用方式,将档案的时候记录改为现在的时间。若档案不存在,系统会建立一个新的档案。

  touch file

  touch file1 file2

  将file 的时间记录改为5 月6 日18 点3 分,公元两千年。时间的格式可以参考date 指令,至少需输入MMDDHHmm ,就是月日时与分。

  touch -c -t 05061803 file

  touch -c -t 050618032000 file

  将file 的时间记录改变成与referencefile 一样。

  touch -r referencefile file

  将file 的时间记录改成5 月6 日18 点3 分,公元两千年。时间可以使用am, pm 或是24 小时的格式,日期可以使用其他格式如6 May 2000 。

  touch -d "6:03pm" file

  touch -d "05/06/2000" file

  touch -d "6:03pm 05/06/2000" file

16.cp

使用权限:所有使用者

使用方式:

  cp [options] source dest

  cp [options] source... directory

说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。

把计:

  -a 尽可能将档案状态,权限等资料都照原状予以复制。

  -r 若source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。

  -f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。

范例:

  将档案aaa 复制(已存在),并命名为bbb:

  cp aaa bbb

将所有的C语言程式拷贝至Finished 子目录中:

  cp *.c Finished

17.ln

使用权限:所有使用者

使用方式:ln [options] source dist,其中option 的格式为:

  [-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}]

  [--help] [--version] [--]

  说明:Linux/Unix 档案系统中,有所谓的连结(link),我们可以将其视为档案的别名,而连结又可分为两种:硬连结(hard link)与软连结(symbolic link),硬连结的意思是一个档案可以有多个名称,而软连结的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬连结是存在同一个档案系统中,而软连结却可以跨越不同的档案系统。

  ln source dist 是产生一个连结(dist)到source,至于使用硬连结或软链结则由参数决定。

  不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。

  -f:链结时先将与dist 同档名的档案删除-d:允许系统管理者硬链结自己的目录-i:在删除与dist 同档名的档案时先进行询问-n:在进行软连结时,将dist 视为一般的档案-s:进行软链结(symbolic link)-v:在连结之前显示其档名-b:将在链结时会被覆写或删除的档案进行备份-S SUFFIX:将备份的档案都加上SUFFIX 的字尾-V METHOD:指定备份的方式--help:显示辅助说明--version:显示版本

范例:

  将档案yy 产生一个symbolic link:zz

  ln -s yy zz

  将档案yy 产生一个hard link:zz

  ln yy xx

2、使用命令行展开功能,创建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b,在/tmp目录下创建目录:x_y, x_z, q_y, q_z

mkdir -p /tmp/a1/{a,b} tmp/a2

mkdir -p /tmp/x_{y,z} /tmp/q_{y,z}

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

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

mkdir -p /tmp/tfile-`date + %Y-%m-%e-%H-%M-%S`

(注意:`为键盘的~号按键;注意date与+之间有空格)

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

cp -a /etc/p*[^0-9] /tmp/mytest1

6、创建用户tom,指定UID为5001,指定家目录为/tmp/tom, 指定shell为/bin/zsh, 指定基本组为tom,附加组为jack

useradd tom -u 5001 -d /tmp/tom -s /bin/zsh -g tom -G jack

7、常用的用户以及文件管理命令有哪些,并演示命令以及用法。

1.useradd [参数]

参数详解:

-u:UID

-g:指定所属用户组GID

-G:指定所属附加组

-d:家目录

-s:指定命令解释器Shell

-c:描述信息

-e:指定用户失效时间

2.添加用户到组

usermod -G [组名]  [用户名]

3.修改用户名

usermod -l  [新用户名]  [旧用户名]


4.删除用户

userdel -r [用户名]

-r:删除用户组

5.用户信息查看命令                                                         

pwck   检测/etc/passwd文件

检测用户的设置文件是否正常。直接输入命令,后面不用带参数

vipw    编辑/etc/passwd文件

这个命令与vi最大的区别就是编辑的时候锁定文件。如果多人对passwd文件

都有编辑权限,那么多人同时编辑就会造成混乱。使用vipw编辑passwd文件时,别

人就无法打开passwd文件。

id        查看用户ID和组信息,直接输入命令,后面不用带参数

su [用户名]     切换用户(只切换身份,shell、目录等环境还是原来的环境)

su - [用户名]    切换的时候也会把环境切换为新用户的环境

passwd -S [用户名]    查看用户密码状态(S大写)

who、w    查看当前登录用户信息

6.用户禁用与恢复

禁用

usermod -L username

passwd -l username

恢复

usermod -U username

passwd -u username

当用户被禁用后,密码在shadwo文件中依然存在,只是前面多了两个叹号(!!),因为验证端改变了密码所以无法登陆。解锁之后,密码前面的两个叹号会去掉。

(通过vi编辑文件,一样可以禁用用户。)

7.用户组常用操作

  添加用户组

groupadd  [用户组名]

删除用户组:

groupdel [用户组名]

修改用户组信息

groupmod -n  [新组名] [旧组名]

用户组信息查看命令                                                                 

groups     查看用户隶属于哪些用户组

newgrp    切换用户组(不是组成员,知道组密码一样可以切换)

grpck       用户组配置文件检测

chgrp       修改文件所属组

vigr         编辑/etc/group文件(锁定文件)

与vipw用法一样,在编辑group文件时,禁止其他人编辑。防止多人写操作,造成写混乱。

8.用户组管理命令

gpasswd命令

gpasswd [选项] 组名

选项:

  -a, --add USER              将用户添加到组

  -d, --delete USER            将用户从组中删除

  -h, --help                  显示帮助信息

  -r, --remove-password        移除组密码

  -R, --restrict                限制组权限(如禁止切换到该组)

  -M, --members USER,...        设置组成员列表

  -A, --administrators ADMIN,..    设置管理员权限的用户列表

你可能感兴趣的:(第三周)