美文网首页
第二周作业

第二周作业

作者: wbyyy | 来源:发表于2018-12-18 18:24 被阅读0次

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

cp命令:实现文件复制

源文件:目标文件:

AME

       COPY - copy data between a file and atable

SYNOPSIS

       COPY table_name [ ( column_name [, ...]) ]

           FROM { 'filename' | STDIN }

           [ [ WITH ] ( option [, ...] ) ]

       COPY { table_name [ ( column_name [,...] ) ] | ( query ) }

           TO { 'filename' | STDOUT }

           [ [ WITH ] ( option [, ...] ) ]

单源复制:cp 【option】….【-T】SOURCE DEST

如果DEST不存在,则事前创建此文件,并复制源文件的数据流至DEST中。

如果DEST存在:

(1)如果DEST是非目录文件,可能有数据,结果是原来文件的内容会被覆盖;则会覆盖目标文件;

(2)如果DEST是目录文件,则先在DEST目录下创建一个与源文件同名的文件,并复制其数据;

多源复制:cp 【option】…SOURCE

….Directory

Cp 【option】…-t Directory  SOURCE….

(1)如果DEST不存在,错误;

(2)如果DEST存在,

如果DEST是非目录文件,错误;

如果DEST是目录文件:分别复制每个文件至目录中,并保持原名;

NAME

       cp - copy files and directories

SYNOPSIS

       cp [OPTION]... [-T] SOURCE DEST

       cp [OPTION]... SOURCE... DIRECTORY

       cp [OPTION]... -t

DIRECTORY

SOURCE...

参数:

-i:交互式复制:即覆盖之前提醒用户确认

-f:强制覆盖目标文件

-r:或-R:递归复制目录;

-d:复制符号链接文件本身,而非其指向的源文件

-a:-dR  归档实现归档;

--preserv=

mode:权限

ownership:属主和属组

timestamp:时间戳

comntext:安全标签

xatter:扩展属性;

links:符号链接

all:上述所有属性

范例1:

[root@gz01-sys-sdn-test01 mytest3]# cp /etc/issue ./

[root@gz01-sys-sdn-test01 mytest3]# ll

total 4

-rw-r--r-- 1 root root 23 Dec 18 16:48 issue

[root@gz01-sys-sdn-test01 mytest3]# cp /etc/issue hi.txt

[root@gz01-sys-sdn-test01 mytest3]# ll

total 8

-rw-rw-rw- 1 root root 0 Dec 18 16:00 1.txt

-rw-r--r-- 1 root root 23 Dec 18 16:49 hi.txt

范例2:

#

cp -r /var/log ./

范例3:

[root@gz01-sys-sdn-test01 mytest3]# cp /etc/issue

./abc

[root@gz01-sys-sdn-test01 mytest3]# cp -a

/etc/issue ./abc

cp: overwrite ‘./abc’? y

[root@gz01-sys-sdn-test01 mytest3]#

[root@gz01-sys-sdn-test01 mytest3]#

[root@gz01-sys-sdn-test01 mytest3]# ll -l abc

-rw-r--r-- 1 root root 23 Dec  9  2015abc

[root@gz01-sys-sdn-test01 mytest3]# ll -l

/etc/issue

-rw-r--r-- 1 root root 23 Dec  9  2015/etc/issue

mv命令:用于移动文件或目录

NAME

       mv - move (rename) files

SYNOPSIS

       mv [OPTION]... [-T] SOURCE DEST

       mv [OPTION]... SOURCE... DIRECTORY

       mv [OPTION]... -t DIRECTORY SOURCE...

常用选项:

-i:交互式

-f:force

rm命令:remove 删除文件

NAME

       rm - remove files or directories

SYNOPSIS

       rm [OPTION]... FILE...

 # rm -rf

常用选项:

-i:interactive 交互式

-f:force

-r:recursive

删除目录:rm -rf /PATH/TO/DIR

危险命令:rm -rf  /

注意:所有不用的文件建议不要直接删除,mv到某个目录

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

mkdir -pv

/tmp/{a1/{a,b},a2}

tree /tmp/

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

1.文件的元数据是指文件的属性、大小、创建时间、访问时间、属主属组等信息。

文件的数据分两种:一种元数据,既属性数据;一种就是数据本身;可使用stat命令查看文件的元数据:

]# stat /etc/passwd

文件:"/etc/passwd"

大小:2483 块:8 IO 块:4096 普通文件

设备:fd00h/64768d Inode:136755684 硬链接:1

权限:(0644/-rw-r–r–) Uid:( 0/ root) Gid:(

0/ root)

环境:systemu:objectr:passwdfilet:s0

最近访问:2016-09-22 22:07:14.897045766 +0800

最近更改:2016-09-20 18:10:23.223086880 +0800

最近改动:2016-09-20 18:10:23.227086888 +0800

创建时间:-

其中:

file:文件名;

size:文件大小

block:文件占了多少个数据块

IO

Block:文件所占数据块的块大小

Device:硬件,既说明该文件在硬盘的那个柱面

Inode:节点号

links:链接

Access(第一个):权限

Uid:该文件所属的属主

Gid:该文件所属的属组

context:安全上下文

Access(第二个):文件上一次的访问时间

Modify:文件上一次修改的时间

Change:文件上一次属性更改的时间

2)修改文件的时间戳信息:

可以使用touch命令更改文件的时间戳:

状态信息有3个时间戳:

Access time:访问时间:atime:通过cat,more等读取其文件内容

Modify time:修改时间:mtime:即:改变文件内容

Change time:改变时间:ctime:即:元数据发生改变

touch命令:文件的时间戳管理工具

NAME

       touch - change file timestamps

SYNOPSIS

       touch [OPTION]... FILE...

修改时间戳;

-c:指定的文件路径不存在时不予创建

-a:仅修改access time

-m:仅修改modify time

-t:STAMP:

[[CC]YY]MMDDhhmm[.ss]

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

#

touch tfile-$(date +%F-%H-%M-%S)

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

# mkdir /tmp/mytest1

# cp -r

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

6、创建用户tom,指定UID为5001,指定家目录为/tmp/tom,

指定shell为/bin/zsh, 指定基本组为tom,附加组为jack

[root@gz01-sys-sdn-test01

test1]# useradd tom -u 5001 -d /tmp/tom -s /bin/zsh -G jack

[root@gz01-sys-sdn-test01

test1]# tail -1 /etc/passwd

tom:x:5001:5004::/tmp/tom:/bin/zsh

[root@gz01-sys-sdn-test01

test1]# grep jack /etc/group

jack:x:5003:tom

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

相关命令:useradd;userdel;usermod;passwd

groupadd;groupdel;groupmod;gpasswd;

chage;chsh;id;su

1、groupadd命令:添加组:

NAME

       groupadd - create a new group

SYNOPSIS

       groupadd [options] group

groupadd 【选项】group_name

groupadd [选项] 组

创建一个新的组。Groupadd命令使用命令行中指定的值加上系统默认值创建新的组账户。新组将根据需要输入系统。

groupadd [-g gid] [-o]]

[-r] [-f] groupname

-g gid:指定组ID号。

-o:允许组ID号,不必惟一。

-r:加入组ID号,低于499系统账号。

-f:加入已经有的组时,发展程序退出

-g GID:指定 GID:默认是上一个组的GID+1

-r:创建系统组

范例1:

[root@gz01-sys-sdn-test01

test1]# groupadd leader

[root@gz01-sys-sdn-test01

test1]# tail -2 /etc/group

mytest1:x:3007:

leader:x:3008:

范例2:

参数:-g- 指定GID

建立组ID(GID)是344的新组,会在/etc/passwd文件中显示

[root@gz01-sys-sdn-test01

test1]# groupadd -g 314 mysql

[root@gz01-sys-sdn-test01

test1]# tail -2 /etc/group

leader:x:3008:

mysql:x:314:

2、groupmod命令:修改组属性:

NAME

       groupmod - modify a group definition onthe system

SYNOPSIS

       groupmod [options] GROUP

参数:groupmod【选项】GOUP

-g:GID:修改组的GID;

-n:new_name:修改组名;

groupmod

用于修改系统已存在的组账号。格式如下:groupmod [options] GROUP

范例1:

leader 组更名为 leaders

#

groupmod -n leaders leader

#

grep leader /etc/group

leaders:x:504:

leaders 组的 GID 改为 3000

groupmod -g 3000 leaders

grep leader /etc/group

leaders:x:3000:

3、groupdel命令:删除组:

groupdel 用于删除系统已存在的组账号。格式如下:groupdel GROUP

其中:GROUP 为要删除的组账户名

参数:groupdel【选项】GOUP

范例1:

[root@gz01-sys-sdn-test01

test1]# groupdel mysql1

[root@gz01-sys-sdn-test01

test1]# tail -2 /etc/group

mysql:x:314:

cjh:x:344:

[root@gz01-sys-sdn-test01

test1]# grep mysql1 /etc/group

[root@gz01-sys-sdn-test01

test1]# grep mysql1 /etc/gshadow

4、useradd命令:创建用户

useradd命令用来建立用户帐号和创建用户的起始目录,使用权限是超级用户。

NAME

       useradd - create a new user or updatedefault new user information

SYNOPSIS

       useradd [options] LOGIN

       useradd -D

       useradd -D [options]

格式:

useradd [-d home] [-s shell] [-c

comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name

useradd [-u UID] [-g 初始群组] [-G 次要群组] [-mM]    [-c 说明栏] [-d 家目录绝对路径] [-s shell] 使用者账号名

useradd参数:

Useradd【选项】登录名

-u,--uid UID:指定UID:

-g,--gid Goup :指定基本组ID;此组需要事先存在;否则创建可能会失败

-c,--comment:指明注释信息,

-G,--groups GOUP1【,GROUP2,….[GROUP  n]]]:指明用户所属的附加组,多个组之间使用逗号 进行分隔;

-d:--home HOME_DIR:以指定的路径为用户的家目录,通过复制/etc/skel此目录并重命名实现,指定的家目录路径如果事先存在,则不会为用户复制环境配置文件;

-s:--shell SHELL:指定用户的默认shell,可用的所有shell列表/etc/shell文件

-r:--system:创建系统用户;

Useradd -D:线上创建用户的默认配置

Useradd -D 选项:修改默认选项的值

]#

cat /etc/login.defs

注意:创建用户时的诸多默认配置文件为/etc/login.defs

修改的结果保存于/etc/default/useradd 文件中;

范例1:新增用户docker1

[root@gz01-sys-sdn-test01

shell]# useradd docker1

[root@gz01-sys-sdn-test01

shell]# tail -1 /etc/passwd

docker1:x:1005:2001::/home/docker1:/bin/bash

[root@gz01-sys-sdn-test01

shell]# tail -1 /etc/group

docker1:x:2001:

范例2:指定用户的-u,--uid UID:指定UID

[root@gz01-sys-sdn-test01

shell]# useradd -u 3000 openstack

[root@gz01-sys-sdn-test01

shell]# tail -1 /etc/passwd

openstack:x:3000:3000::/home/openstack:/bin/bash

范例3:-g,--gid Goup :指定基本组ID;此组需要事先存在;否则创建可能会失败

-g:新账户主组的名称或ID,需要存在;

备注:-g :后面接的那个组名就是我们上面提到的 initial group ,该群组的 GID 会被放置到 /etc/passwd 的第四个字段内。

[root@gz01-sys-sdn-test01

test1]# useradd -g cloud cloudstack

useradd: group 'cloud'

does not exist

[root@gz01-sys-sdn-test01

test1]# groupadd cloud

[root@gz01-sys-sdn-test01

test1]# tail -1 /etc/group

cloud:x:3012:

[root@gz01-sys-sdn-test01

test1]# useradd -g cloud cloudstack

[root@gz01-sys-sdn-test01

test1]# tail -5 /etc/passwd

cloudstack:x:3010:3012::/home/cloudstack:/bin/bash

[root@gz01-sys-sdn-test01

test1]# useradd test2

[root@gz01-sys-sdn-test01

test1]# grep 'test2' /etc/passwd

test2:x:3013:3015::/home/test2:/bin/bash

[root@gz01-sys-sdn-test01

test1]# grep 'test2' /etc/group

test2:x:3015:

-G会覆盖现有组,所以如果追加附加组通常使用-aG,a表示append

范例4:

-G,--groups GOUP1【,GROUP2,….[GROUP  n]]]:指明用户所属的附加组,多个组之间使用逗号 进行分隔;

备注:-G:是用户加入到现有的组中;

注意:乍一看,-g与-G没有什么区别,其实-g是会在你的passwd的第四项当中写入你指定的组,但是在/etc/group当中不会新建一个关于你的用户名的内容项,而-G则不同,它会在useradd

visitor的基础上再把你加入到-G后面指定的群组当中,这是在/etc/group当中存在你的用户名的内容项,这就是两者之间的差别。

[root@gz01-sys-sdn-test01

shell]# useradd -G mygrp archlinux

[root@gz01-sys-sdn-test01

shell]# tail -1 /etc/passwd

archlinux:x:3003:3003::/home/archlinux:/bin/bash

[root@gz01-sys-sdn-test01

shell]#

[root@gz01-sys-sdn-test01

shell]# tail /etc/group

gentoo:x:1002:

slackware:x:1003:

centos:x:1004:

leader:x:1005:

grp1:x:2000:

docker1:x:2001:

openstack:x:3000:

mogilefs:x:3001:

mygrp:x:3002:archlinux

archlinux:x:3003:

范例5:

-d:--home HOME_DIR:以指定的路径为用户的家目录,通过复制/etc/skel此目录并重命名实现,指定的家目录路径如果事先存在,则不会为用户复制环境配置文件;

[root@gz01-sys-sdn-test01shell]# useradd -d /tmp/moosefs moosefs

[root@gz01-sys-sdn-test01

shell]# tail -1 /etc/passwd

moosefs:x:3005:3005::/tmp/moosefs:/bin/bash

[root@gz01-sys-sdn-test01

shell]# ls /tmp

conf.d               sysstat-10.1.5-12.el7.x86_64.rpm

cpumhz               systemd-private-a3a3085122b84598a500b5a2f8eaa7a7-named.service-ZaohWv

fstab.out            systemd-private-a3a3085122b84598a500b5a2f8eaa7a7-ntpd.service-e0WWcC

function              system.rel

functions.out         system-release

issue2.txt            test

issue3.err            tmux-0

issue3.out            x

issue.tee            yum_save_tx.2018-12-05.05-01.k8GBRj.yumtx

issue.txt            yum_save_tx.2018-12-06.04-46.3T93JG.yumtx

kernel_log_push.flag  yum_save_tx.2018-12-07.04-53.Zvevik.yumtx

kernel_log_push.log   yum_save_tx.2018-12-08.05-00.cixgHM.yumtx

log                  yum_save_tx.2018-12-09.04-44.W5JTzT.yumtx

magedu.com           yum_save_tx.2018-12-10.04-44.YUEuI_.yumtx

man                  yum_save_tx.2018-12-11.04-54.hUw76e.yumtx

moosefs              yum_save_tx.2018-12-12.04-59.mCTZSh.yumtx

mysysroot            yum_save_tx.2018-12-13.04-47.AoSog_.yumtx

Scripts              yum_save_tx.2018-12-14.05-00.NWZsr6.yumtx

[root@gz01-sys-sdn-test01

shell]# ls /tmp/moosefs/ -a

.  .. .bash_logout  .bash_profile  .bashrc .mozilla  .zshrc

范例6:-s:--shell SHELL:指定用户的默认shell,可用的所有shell列表/etc/shell文件

[root@gz01-sys-sdn-test01

shell]# useradd -s /bin/csh keystone

[root@gz01-sys-sdn-test01

shell]# tail -1 /etc/passwd

keystone:x:3007:3007::/home/keystone:/bin/csh

5、usermod命令:修改用户属性

NAME

       usermod - modify a user account

SYNOPSIS

       usermod [options] LOGIN

参数:usermod【选项】登录

-u,--uid UID:修改用户的ID为此处指定的新UID

-g,--gid GROUP:修改用户所属的基本组;

-G,---G, --groups

GROUP1[,GROUP2,...[,GROUPN]]]

修改用户所属的附加组,原来的附加组会被覆盖,如果不覆盖,则使用-a选项

-a,--append:与G一起使用,用于为用户追加新的附加组;

-c,--comment

COMMENT:修改注释信息;

-d,--home HOME_DIR:修改用户的家目录;用户原有的文件不会被转移至新位置;

-m,--move-home,只能与-d选项一起使用,用于将原来的家目录移动为新的家目录;

-l,--login

NEW_LOGIN:修改用户名;

-s,--shell SHELL:修改用户的默认shell;

-L,--lock:锁定用户密码;

-U,--unlock:解锁用户的密码:

范例1:

-G,---G, --groups GROUP1[,GROUP2,...[,GROUPN]]]

修改用户所属的附加组,原来的附加组会被覆盖,如果不覆盖,则使用-a选项

[root@gz01-sys-sdn-test01

test1]# usermod -G sudo tester2

[root@gz01-sys-sdn-test01

test1]# grep 'sudo' /etc/group

sudo:x:3021:tester5,tester2

范例2:-l,--login NEW_LOGIN:修改用户名;

[root@gz01-sys-sdn-test01

test1]# usermod -l testuser22 tester2

[root@gz01-sys-sdn-test01

test1]# grep 'testuser22' /etc/passwd

testuser22:x:3019:100::/home/tester2:/bin/bash

范例3:

-G,---G, --groups GROUP1[,GROUP2,...[,GROUPN]]]

修改用户所属的附加组,原来的附加组会被覆盖,如果不覆盖,则使用-a选项

[root@gz01-sys-sdn-test01

test1]# grep 'sudo' /etc/group

sudo:x:3021:tester5,testuser22

[root@gz01-sys-sdn-test01

test1]# usermod tester5 -G mysql

[root@gz01-sys-sdn-test01

test1]# grep 'mysql' /etc/group

mysql:x:314:tester5

[root@gz01-sys-sdn-test01

test1]# grep 'sudo' /etc/group

sudo:x:3021:testuser22

范例4:

[root@gz01-sys-sdn-test01

test1]# usermod -a -G sudo tester3

[root@gz01-sys-sdn-test01

test1]# grep 'sudo' /etc/group

sudo:x:3021:testuser22,tester3

6、userdel命令:删除用户

Userdel 【选项】登录

-r:删除用户时一并删除其家目录

范例1:-r:删除用户时一并删除其家目录

#

userdel -r tester10

6、passwd命令:密码管理命令

NAME

       passwd - update user's authenticationtokens

SYNOPSIS

       passwd [-k] [-l] [-u [-f]] [-d] [-e] [-nmindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]

(1)passwd:修改用户自己的密码,

(2)passwd USERNAME:修改指定用户的密码,仅root有此权限

-l, -u:锁定和解锁用户;

-d:清除用户密码串;

-e:过期期限;日期;

-i:非活动期限;

-n:密码的最短使用期限;

-w:警告期限;

--stdin:

echo "password" | passwd --stdin username

范例1:

[root@gz01-sys-sdn-test01

shell]# echo "magedu" | passwd --stdin docker

Changing

password for user docker.

passwd:

Authentication token manipulation error

7、gpasswd命令:组密码管理命令

组密码文件:

]#

cat /etc/gshadow

gpasswd【选项】group

-a USENAME:向组中添加用户;

-d USERNAME:从组中移除用户

8、newgrp命令:临时切换指定的组为基本组

Newgrp【-】【group】

-:会模拟用户重新登录以实现重新初始化其工作环境

9、chage命令:更改用户密码过期信息

Chage【选项】登录

-d:

-w:

-E:

-m

-M

10、id命令:显示用户的真实有效ID

Id【选项】。。。【user】

-u:仅显示有效的ID

-g:仅仅显示用户的基本组ID

-G:仅显示用户所属的所有组的ID

-n:显示名字而非ID

11、su命令:swtich user:切换用户

登录式切换:会通过读取目标用户的配置文件来重新初始化

Su - username

Su -l username

非登录式切换:不会读取目标用户的配置文件进行初始化

Su usename

注意:管理员可无密码切换至其他任何用户

-c 'command' :仅以指定用户的身份运行此处指定的命令

[root@gz01-sys-sdn-test01

shell]# su - docker -c 'whoami'

相关文章

网友评论

      本文标题:第二周作业

      本文链接:https://www.haomeiwen.com/subject/seolkqtx.html