1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
pwd: printing working directory
显示当前工作目录
[root@localhost ~]# pwd
/root
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# pwd
/etc/sysconfig/network-scripts
cd:change directory
cd: 切换回家目录;
注意:bash中, ~表示家目录;
[root@localhost network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@localhost network-scripts]# cd
[root@localhost ~]# pwd
/root
cd ~:切换回自己的家目录
[root@localhost ~]# su - bei
Last login: Sun Nov 18 09:00:34 EST 2018 on :0
[bei@localhost ~]$ cd /etc/sysconfig/network-scripts/
[bei@localhost network-scripts]$ pwd
/etc/sysconfig/network-scripts
[bei@localhost network-scripts]$ cd
[bei@localhost ~]$ pwd
/home/bei
[bei@localhost ~]$ cd ~
[bei@localhost ~]$ pwd
/home/bei
cd ~USERNAME:切换至指定用户的家目录;
[root@localhost ~]# pwd
/root
[root@localhost ~]# cd ~bei
[root@localhost bei]# pwd
/home/bei
cd -:在上一次所在目录与当前目录之间来回切换;
[root@localhost /]# cd /etc/sysconfig/
[root@localhost sysconfig]# pwd
/etc/sysconfig
[root@localhost sysconfig]# cd /
[root@localhost /]# pwd
/
[root@localhost /]# cd -
/etc/sysconfig
[root@localhost sysconfig]# pwd
/etc/sysconfig
ls: list,
列出指定目录下的内容
ls [OPTION]... [FILE]...
-a: 显示所有文件,包括隐藏文件
-A:显示除.和..之外的所有文件;
-l: --long, 长格式列表,即显示文件的详细属性信息;
-rw-r--r--. 1 root root 8957 10月 14 19:34 boot.log
-:文件类型,-, d, b, c, l, s, p
rw-r--r--
rw-:文件属主的权限;
r--:文件属组的权限;
r--:其它用户(非属主、属组)的权限;
1:数字表示文件被硬链接的次数;
root:文件的属主;
root:文件的属组;
8957:数字表示文件的大小,单位是字节;
10月 14 19:34 :文件最近一次被修改的时间;
boot.log:文件名
[root@localhost ~]# ls -la
total 48
dr-xr-x---. 5 root root 256 Nov 27 20:33 .
dr-xr-xr-x. 17 root root 246 Nov 22 09:31 ..
-rw-------. 1 root root 1646 May 9 2018 anaconda-ks.cfg
-rw-------. 1 root root 4264 Nov 27 10:30 .bash_history
-rw-r--r--. 1 root root 18 Dec 28 2013 .bash_logout
-rw-r--r--. 1 root root 176 Dec 28 2013 .bash_profile
-rw-r--r--. 1 root root 176 Dec 28 2013 .bashrc
drwx------. 4 root root 31 May 9 2018 .cache
drwx------. 4 root root 30 May 9 2018 .config
-rw-r--r--. 1 root root 100 Dec 28 2013 .cshrc
drwx------. 3 root root 25 May 9 2018 .dbus
-rw-r--r--. 1 root root 1694 May 9 2018 initial-setup-ks.cfg
-rw-------. 1 root root 35 Nov 19 09:27 .lesshst
-rw-r--r--. 1 root root 129 Dec 28 2013 .tcshrc
-rw-------. 1 root root 3739 Nov 21 08:52 .viminfo
-rw-------. 1 root root 134 Nov 27 20:33 .Xauthority
[root@localhost ~]# ls -lA
total 48
-rw-------. 1 root root 1646 May 9 2018 anaconda-ks.cfg
-rw-------. 1 root root 4264 Nov 27 10:30 .bash_history
-rw-r--r--. 1 root root 18 Dec 28 2013 .bash_logout
-rw-r--r--. 1 root root 176 Dec 28 2013 .bash_profile
-rw-r--r--. 1 root root 176 Dec 28 2013 .bashrc
drwx------. 4 root root 31 May 9 2018 .cache
drwx------. 4 root root 30 May 9 2018 .config
-rw-r--r--. 1 root root 100 Dec 28 2013 .cshrc
drwx------. 3 root root 25 May 9 2018 .dbus
-rw-r--r--. 1 root root 1694 May 9 2018 initial-setup-ks.cfg
-rw-------. 1 root root 35 Nov 19 09:27 .lesshst
-rw-r--r--. 1 root root 129 Dec 28 2013 .tcshrc
-rw-------. 1 root root 3739 Nov 21 08:52 .viminfo
-rw-------. 1 root root 134 Nov 27 20:33 .Xauthority
-h, --human-readable:对文件大小单位换算;换算后结果可能会非精确值;
[root@localhost ~]# ls -lh
total 8.0K
-rw-------. 1 root root 1.7K May 9 2018 anaconda-ks.cfg
-rw-r--r--. 1 root root 1.7K May 9 2018 initial-setup-ks.cfg
-d:查看目录自身而非其内部的文件列表;
[root@localhost ~]# ls -ld /etc/sysconfig/
drwxr-xr-x. 6 root root 4096 May 9 2018 /etc/sysconfig/
[root@localhost ~]# ls -ld /var
drwxr-xr-x. 20 root root 282 May 9 2018 /var
-r: reverse, 逆序显示;
[root@localhost ~]# ls -l
total 8
-rw-------. 1 root root 1646 May 9 2018 anaconda-ks.cfg
-rw-r--r--. 1 root root 1694 May 9 2018 initial-setup-ks.cfg
[root@localhost ~]# ls -lr
total 8
-rw-r--r--. 1 root root 1694 May 9 2018 initial-setup-ks.cfg
-rw-------. 1 root root 1646 May 9 2018 anaconda-ks.cfg
-R: recursive,递归显示;
[root@localhost ~]# ls -R /tmp/
/tmp/:
a1 a2 beige q_y q_z test x_y x_z
/tmp/a1:
a aaaa b
/tmp/a1/a:
/tmp/a1/b:
/tmp/a2:
/tmp/beige:
a bin etc sbin usr var
cat:concatenate
文件文本查看工具;
cat /etc/fstab
[root@localhost ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed May 9 09:16:30 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=e72d0a11-4e6d-4864-b644-d9c54faee1d9 /boot xfs defaults 0 0
/dev/mapper/centos-home /home xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
cat /etc/passwd
[root@localhost ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
cat [OPTION]... [FILE]...
-n:给显示的文本行编号;
-E: 显示行结束符$;
[root@localhost ~]# cat -n /etc/inittab
1 # inittab is no longer used when using systemd.
2 #
3 # ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
4 #
5 # Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
6 #
7 # systemd uses 'targets' instead of runlevels. By default, there are two main targets:
8 #
9 # multi-user.target: analogous to runlevel 3
10 # graphical.target: analogous to runlevel 5
11 #
12 # To view current default target, run:
13 # systemctl get-default
14 #
15 # To set a default target, run:
16 # systemctl set-default TARGET.target
17 #
[root@localhost ~]# cat -n -E /etc/inittab
1 # inittab is no longer used when using systemd.$
2 #$
3 # ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.$
4 #$
5 # Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target$
6 #$
7 # systemd uses 'targets' instead of runlevels. By default, there are two main targets:$
8 #$
9 # multi-user.target: analogous to runlevel 3$
10 # graphical.target: analogous to runlevel 5$
11 #$
12 # To view current default target, run:$
13 # systemctl get-default$
14 #$
15 # To set a default target, run:$
16 # systemctl set-default TARGET.target$
17 #$
tac:
tac [OPTION]... [FILE]...
文件文本查看工具(倒序查看);
tac /etc/fstab
[root@localhost ~]# tac /etc/fstab
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/mapper/centos-home /home xfs defaults 0 0
UUID=e72d0a11-4e6d-4864-b644-d9c54faee1d9 /boot xfs defaults 0 0
/dev/mapper/centos-root / xfs defaults 0 0
#
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
# Accessible filesystems, by reference, are maintained under '/dev/disk'
#
# Created by anaconda on Wed May 9 09:16:30 2018
# /etc/fstab
#
file:
查看文件内容类型;
file [FILE]...
[root@localhost ~]# file /etc/
/etc/: directory
[root@localhost ~]# file /etc/inittab
/etc/inittab: ASCII text
2、使用命令行展开功能,创建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b,在/tmp目录下创建目录:x_y, x_z, q_y, q_z
[root@localhost tmp]# mkdir -pv /tmp/a{1/{a,b},2}
mkdir: created directory ‘/tmp/a1’
mkdir: created directory ‘/tmp/a1/a’
mkdir: created directory ‘/tmp/a1/b’
mkdir: created directory ‘/tmp/a2’
[root@localhost ~]# mkdir -pv /tmp/{x,q}_{y,z}
mkdir: created directory ‘/tmp/x_y’
mkdir: created directory ‘/tmp/x_z’
mkdir: created directory ‘/tmp/q_y’
mkdir: created directory ‘/tmp/q_z’
[root@localhost ~]# tree /tmp/
/tmp/
├── a1
│ ├── a
│ └── b
├── a2
├── q_y
├── q_z
├── x_y
└── x_z
3、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
元数据信息包括:文件的大小,权限,属主属组,时间戳,inode等属性。
使用stat命令进行查看
stat命令:
stat - display file or file system status
stat FILE...
[root@localhost ~]# stat /etc/inittab
File: ‘/etc/inittab’
Size: 511 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 67584797 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:etc_t:s0
Access: 2018-11-27 20:48:41.756740156 -0500
Modify: 2017-08-03 19:57:52.000000000 -0400
Change: 2018-05-09 09:19:49.652980165 -0400
Birth: -
touch命令:
touch - change file timestamps
touch [OPTION]... FILE...
-c: 指定的文件路径不存在时不予创建;
-a: 仅修改access time;
-m:仅修改modify time;
-t STAMP
[[CC]YY]MMDDhhmm[.ss]
[root@localhost tmp]# stat txt
File: ‘txt’
Size: 6 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 68157363 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2018-11-27 21:31:34.171067178 -0500
Modify: 2018-11-27 21:31:34.171067178 -0500
Change: 2018-11-27 21:31:34.171067178 -0500
Birth: -
[root@localhost tmp]# touch -a txt
[root@localhost tmp]# stat txt
File: ‘txt’
Size: 6 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 68157363 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2018-11-27 21:31:54.010439894 -0500
Modify: 2018-11-27 21:31:34.171067178 -0500
Change: 2018-11-27 21:31:54.010439894 -0500
Birth: -
[root@localhost tmp]# touch -m txt
[root@localhost tmp]# stat txt
File: ‘txt’
Size: 6 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 68157363 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2018-11-27 21:31:54.010439894 -0500
Modify: 2018-11-27 21:32:14.870831792 -0500
Change: 2018-11-27 21:32:14.870831792 -0500
Birth: -
4、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22
[root@localhost tmp]# touch tfile-$(date +%Y-%m-%d-%H-%M-%S)
[root@localhost tmp]# ls
tfile-2018-11-27-21-43-06
[root@localhost tmp]# ll
total 0
-rw-r--r--. 1 root root 0 Nov 27 21:43 tfile-2018-11-27-21-43-06
[root@localhost tmp]#
5、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
[root@localhost tmp]# mkdir /tmp/mytest1
[root@localhost tmp]# cp -r /etc/p*[^0-9] /tmp/mytest1
[root@localhost tmp]# ls -l /tmp/mytest1/
drwxr-xr-x. 2 root root 4096 Nov 27 23:26 pam.d
-rw-r--r--. 1 root root 2056 Nov 27 23:26 passwd
-rw-r--r--. 1 root root 2056 Nov 27 23:26 passwd-
-rw-r--r--. 1 root root 1362 Nov 27 23:26 pbm2ppa.conf
-rw-r--r--. 1 root root 2872 Nov 27 23:26 pinforc
drwxr-xr-x. 10 root root 116 Nov 27 23:26 pki
drwxr-xr-x. 2 root root 28 Nov 27 23:26 plymouth
drwxr-xr-x. 5 root root 52 Nov 27 23:26 pm
-rw-r--r--. 1 root root 6300 Nov 27 23:26 pnm2ppa.conf
drwxr-xr-x. 2 root root 6 Nov 27 23:26 popt.d
drwxr-xr-x. 2 root root 154 Nov 27 23:26 postfix
drwxr-xr-x. 3 root root 219 Nov 27 23:26 ppp
drwxr-xr-x. 2 root root 105 Nov 27 23:26 prelink.conf.d
-rw-r--r--. 1 root root 233 Nov 27 23:26 printcap
-rw-r--r--. 1 root root 1795 Nov 27 23:26 profile
drwxr-xr-x. 2 root root 4096 Nov 27 23:26 profile.d
-rw-r--r--. 1 root root 6545 Nov 27 23:26 protocols
drwxr-xr-x. 2 root root 79 Nov 27 23:26 pulse
drwxr-xr-x. 2 root root 23 Nov 27 23:26 purple
drwxr-xr-x. 2 root root 35 Nov 27 23:26 python
[root@localhost tmp]# ls -ld /etc/p*[^0-9]
drwxr-xr-x. 2 root root 4096 May 9 2018 /etc/pam.d
-rw-r--r--. 1 root root 2056 May 9 2018 /etc/passwd
-rw-r--r--. 1 root root 2056 May 9 2018 /etc/passwd-
-rw-r--r--. 1 root root 1362 Jun 9 2014 /etc/pbm2ppa.conf
-rw-r--r--. 1 root root 2872 Jun 10 2014 /etc/pinforc
drwxr-xr-x. 10 root root 116 May 9 2018 /etc/pki
drwxr-xr-x. 2 root root 28 May 9 2018 /etc/plymouth
drwxr-xr-x. 5 root root 52 May 9 2018 /etc/pm
-rw-r--r--. 1 root root 6300 Jun 9 2014 /etc/pnm2ppa.conf
drwxr-xr-x. 2 root root 6 Jun 10 2014 /etc/popt.d
drwxr-xr-x. 2 root root 154 May 9 2018 /etc/postfix
drwxr-xr-x. 3 root root 219 May 9 2018 /etc/ppp
drwxr-xr-x. 2 root root 105 May 9 2018 /etc/prelink.conf.d
-rw-r--r--. 1 root root 233 Jun 7 2013 /etc/printcap
-rw-r--r--. 1 root root 1795 Nov 5 2016 /etc/profile
drwxr-xr-x. 2 root root 4096 May 9 2018 /etc/profile.d
-rw-r--r--. 1 root root 6545 Jun 7 2013 /etc/protocols
drwxr-xr-x. 2 root root 79 May 9 2018 /etc/pulse
drwxr-xr-x. 2 root root 23 May 9 2018 /etc/purple
drwxr-xr-x. 2 root root 35 May 9 2018 /etc/python
6、创建用户tom,指定UID为5001,指定家目录为/tmp/tom, 指定shell为/bin/zsh, 指定基本组为tom,附加组为jack
[root@localhost tmp]# useradd -u 5001 -d /tmp/tom -s /bin/zsh -g tom -G jack tom
[root@localhost tmp]# id tom
uid=5001(tom) gid=1002(tom) groups=1002(tom),1001(jack)
[root@localhost tmp]# tail -1 /etc/passwd
tom:x:5001:1002::/tmp/tom:/bin/zsh
7、常用的用户以及文件管理命令有哪些,并演示命令以及用法。
/etc/group 用户组数据库文件
group:password:gid:user_list
groupadd命令:添加组
groupadd [选项] group_name
-g GID:指定GID;默认是上一个组的GID+1;
-r: 创建系统组;
[root@localhost ~]# groupadd -g 5000 beibei
[root@localhost ~]# tail -1 /etc/group
beibei:x:5000:
[root@localhost ~]# tail -1 /etc/group
sysgroup:x:986:
groupmod命令:修改组属性
groupmod [选项] GROUP
-g GID:修改GID;
-n new_name:修改组名;
[root@localhost ~]# cat /etc/group|grep beibei
beibei:x:5000:
[root@localhost ~]# groupmod -g 5001 beibei
[root@localhost ~]# cat /etc/group|grep beibei
beibei:x:5001
[root@localhost ~]# groupmod -n newbeibei beibei
[root@localhost ~]# cat /etc/group|grep beibei
newbeibei:x:5001:
[root@localhost ~]#
groupdel命令:删除组
groupdel [选项] GROUP
useradd命令:创建用户
useradd [选项] 登录名
-u, --uid UID:指定UID;
-g, --gid GROUP:指定基本组ID,此组得事先存在;
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:指明用户所属的附加组,多个组之间用逗号分隔;
-c, --comment COMMENT:指明注释信息;
-d, --home HOME_DIR:以指定的路径为用户的家目录;通过复制/etc/skel此目录并重命名实现;指定的家目录路径如果事先存在,则不会为用户复制环境配置文件;
-s, --shell SHELL:指定用户的默认shell,可用的所有shell列表存储在/etc/shells文件中;
-r, --system:创建系统用户;
注意:创建用户时的诸多默认设定配置文件为/etc/login.defs
useradd -D:显示创建用户的默认配置;
useradd -D 选项: 修改默认选项的值;
修改的结果保存于/etc/default/useradd文件中;
usermod命令:修改用户属性
usermod [选项] 登录
-u, --uid UID:修改用户的ID为此处指定的新UID;
-g, --gid GROUP:修改用户所属的基本组;
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:修改用户所属的附加组;原来的附加组会被覆盖;
-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:解锁用户的密码;
userdel命令:删除用户
userdel [选项] 登录
-r:删除用户时一并删除其家目录;
练习1:创建用户gentoo,UID为4001,基本组为gentoo,附加组为distro(GID为5000)和peguin(GID为5001);
[root@localhost ~]# tail /etc/group
ntp:x:38:
stapusr:x:156:
stapsys:x:157:
stapdev:x:158:
tcpdump:x:72:
bei:x:1000:bei
jack:x:1001:
sysgroup:x:986:
distro:x:5000:
peguin:x:5001:
[root@localhost ~]# useradd -u 4001 -G distro,peguin gentoo
[root@localhost ~]# id gentoo
uid=4001(gentoo) gid=4001(gentoo) groups=4001(gentoo),5000(distro),5001(peguin)
练习2:创建用户fedora,其注释信息为"Fedora Core",默认shell为/bin/tcsh;
[root@localhost ~]# clear
[root@localhost ~]# useradd -c "Fedora Core" -s /bin/tcsh fedora
[root@localhost ~]# id fedora
uid=4002(fedora) gid=4002(fedora) groups=4002(fedora)
[root@localhost ~]# tail -1 /etc/passwd
fedora:x:4002:4002:Fedora Core:/home/fedora:/bin/tcsh
练习3:修改gentoo用户的家目录为/var/tmp/gentoo;要求其原有文件仍能被用户访问;
[root@localhost ~]# usermod -d /var/tmp/gentoo gentoo
[root@localhost ~]# cat /etc/passwd|grep gentoo
gentoo:x:4001:4001::/var/tmp/gentoo:/bin/bash
[root@localhost ~]# cd /home/gentoo/
[root@localhost gentoo]# pwd
/home/gentoo