用户及文件目录命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用户及文件目录命令相关的知识,希望对你有一定的参考价值。
问题一、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。常用的文件管理类命令:cp、 mv、 rm、file、ls、touch、more、less、head、tail、stat
1、cp命令:
cp--copy的简写,复制文件和目录的命令;
命令格式:
cp [OPTION]... [-T] SOURCE DEST----单源复制
如果DEST不存在,直接创建一个文件,复制源文件的数据流至DEST;
例如,复制/etc/fstab文件到/tmp目录下,如果/tmp没有一个叫fstab的文件,就先创建一个fstab文件,然后将fstab的数据流复制到/tmp的fstab中:
[[email protected] ~]# cp /etc/fstab /tmp/
[[email protected] ~]# ll /tmp/fstab
-rw-r--r-- 1 root root 465 Mar 25 16:51 /tmp/fstab
如果DEST是已存在的非目录文件,则覆盖;
例如,再复制/etc/fstab文件到/tmp目录下,就会覆盖第一次复制的文件,从时间上可看出来:
[[email protected] ~]# ll /tmp/fstab
-rw-r--r-- 1 root root 465 Mar 25 16:51 /tmp/fstab
[[email protected] ~]# cp /etc/fstab /tmp/fstab
cp: overwrite ‘/tmp/fstab’? y
[[email protected] ~]# ll /tmp/fstab
-rw-r--r-- 1 root root 465 Mar 25 16:58 /tmp/fstab
如果DEST是目录文件,则先在DEST目录下创建一个源文件同名的文件,并复制其流。
例如:
[[email protected] ~]# cp /etc/ntp.conf /tmp/
[[email protected] ~]# ll /tmp/ntp.conf
-rw-r--r-- 1 root root 2000 Mar 29 20:49 /tmp/ntp.conf
cp [OPTION]... SOURCE... DIRECTORY---->多源复制
cp [OPTION]... -t DIRECTORY SOURCE... ---->多源复制
[[email protected] ~]# cp /etc/yum.conf /etc/vimrc /tmp
[[email protected] ~]# ll /tmp/yum.conf /tmp/vimrc
-rw-r--r-- 1 root root 1993 Mar 29 20:53 /tmp/vimrc
-rw-r--r-- 1 root root 970 Mar 29 20:53 /tmp/yum.conf
OPTIONS:
-i:交互式复制,覆盖之前询问
[[email protected] ~]# cp -i /etc/ntp.conf /tmp
cp: overwrite ‘/tmp/ntp.conf’? y
[[email protected] ~]# ls /tmp/ntp.conf
/tmp/ntp.conf
-f:强行覆盖,覆盖时不询问
[[email protected] ~]# cp -f /etc/ntp.conf /tmp
[[email protected] ~]#
-r:递归复制目录
[[email protected] ~]# cp -r /etc/yum.repos.d/ /tmp/yum
[[email protected] ~]# ll /tmp/yum
total 0
drwxr-xr-x 2 root root 187 Mar 29 21:08 yum.repos.d
[[email protected] ~]# tree /tmp/yum
/tmp/yum
`-- yum.repos.d
? |-- CentOS-Base.repo
? |-- CentOS-CR.repo
? |-- CentOS-Debuginfo.repo
? |-- CentOS-fasttrack.repo
? |-- CentOS-Media.repo
? |-- CentOS-Sources.repo
? `-- CentOS-Vault.repo
1 directory, 7 files
-a:复制源文件的所有属性,实现归档,一般用于备份;
-rw-------. 1 root root 107 Mar 27 13:37 yum.log
[[email protected] ~]# cp -a /var/log/yum.log /tmp
[[email protected] ~]# ll /tmp/yum.log
-rw-------. 1 root root 107 Mar 27 13:37 /tmp/yum.log
\#可看到,yum.log 在源文件中的元数据复制到tmp目录下后,都没变化;
2、mv命令:
? ---移动或重命名文件;
移动目录时,直接跟目录名,不需要加R选项,也就是移动文件和目录是一样的。
[[email protected] ~]# mv /tmp/yum/ ./
[[email protected] ~]# ll yum
total 0
drwxr-xr-x 2 root root 187 Mar 29 21:08 yum.repos.d
OPTIONS:
-i:交互式,移动覆盖前询问
[[email protected] ~]# mv -i /tmp/yum/yum.repos.d/CentOS-Base.repo ./yum/yum.repos.d/CentOS-Base.repo
mv: overwrite ‘./yum/yum.repos.d/CentOS-Base.repo’? y
[[email protected] ~]#
-f:force 强制覆盖;
[[email protected] ~]# mv -f /tmp/yum/yum.repos.d/CentOS-Sources.repo ./yum/yum.repos.d/
[[email protected] ~]#
3、rm命令:
NAME
? rm-remove files or directories --删除文件或目录
SYNOPSIS
? rm [OPTION] ... FILE...
OPTIONS
-r:删除目录
[[email protected] ~]# rm -r /tmp/yum/yum.repos.d/
rm: descend into directory ‘/tmp/yum/yum.repos.d/’? y
rm: remove regular file ‘/tmp/yum/yum.repos.d/CentOS-CR.repo’? y
rm: remove regular file ‘/tmp/yum/yum.repos.d/CentOS-Debuginfo.repo’? y
rm: remove regular file ‘/tmp/yum/yum.repos.d/CentOS-Media.repo’? y
rm: remove regular file ‘/tmp/yum/yum.repos.d/CentOS-Vault.repo’? y
rm: remove regular file ‘/tmp/yum/yum.repos.d/CentOS-fasttrack.repo’? y
rm: remove directory ‘/tmp/yum/yum.repos.d/’? y
[[email protected] ~]#
-f:强制删除
[[email protected] ~]# rm -rf ./yum/
[[email protected] ~]#
4、file命令:
----查看文件类型命令
[[email protected] ~]# file /etc/passwd
/etc/passwd: ASCII text
[[email protected] ~]# file /etc/
/etc/: directory
[[email protected] ~]# file /dev/tty44
/dev/tty44: character special
5、ls 命令
? ----list directory contents 列出列表,
SYNOPSIS
? ls [OPTION]...[FILE]
OPTIONS
-a:列出所有文件,包括隐藏文件
[[email protected] ~]# ls -a /var/log
. lastlog secure-20190317
.. libvirt secure-20190324
anaconda maillog speech-dispatcher
audit maillog-20190303 spooler
boot.log maillog-20190310 spooler-20190303
boot.log-20190228 maillog-20190317 spooler-20190310
boot.log-20190306 maillog-20190324 spooler-20190
-A:显示除.和..的所有文件
[[email protected] ~]# ls -A /var/log
anaconda libvirt secure-20190317
audit maillog secure-20190324
boot.log maillog-20190303 speech-dispatcher
boot.log-20190228 maillog-20190310 spooler
boot.log-20190306 maillog-20190317 spooler-20190303
-l:long 长格式列表,显示文件详细属性信息,相当于ll;
[[email protected] ~]# ls -l /usr
total 256
dr-xr-xr-x. 2 root root 49152 Mar 27 13:37 bin
drwxr-xr-x. 2 root root 6 Apr 11 2018 etc
drwxr-xr-x. 2 root root 6 Apr 11 2018 games
drwxr-xr-x. 9 root root 4096 Oct 16 10:29 include
dr-xr-xr-x. 41 root root 4096 Oct 16 10:29 lib
dr-xr-xr-x. 142 root root 77824 Oct 16 10:31 lib64
-h:对文件大小单位换算,一般和-l一块使用
[[email protected] ~]# ls -lh /usr
total 256K
dr-xr-xr-x. 2 root root 48K Mar 27 13:37 bin
drwxr-xr-x. 2 root root 6 Apr 11 2018 etc
drwxr-xr-x. 2 root root 6 Apr 11 2018 games
drwxr-xr-x. 9 root root 4.0K Oct 16 10:29 include
dr-xr-xr-x. 41 root root 4.0K Oct 16 10:29 lib
dr-xr-xr-x. 142 root root 76K Oct 16 10:31 lib64
drwxr-xr-x. 45 root root 12K Oct 16 10:29 libexec
drwxr-xr-x. 12 root root 131 Oct 16 10:25 local
dr-xr-xr-x. 2 root root 20K Oct 16 10:29 sbin
drwxr-xr-x. 231 root root 8.0K Oct 16 10:29 share
-d:查看指定目录的自身属性,一般和-l一块使用
[[email protected] ~]# ls -ld /etc/
drwxr-xr-x. 139 root root 8192 Mar 29 10:11 /etc/
-r:逆序显示
[[email protected] ~]# ll -r /etc
total 1420
drwxr-xr-x. 2 root root 187 Mar 28 15:45 yum.repos.d
-rw-r--r--. 1 root root 970 Apr 13 2018 yum.conf
drwxr-xr-x. 6 root root 100 Oct 16 10:26 yum
drwxr-xr-x. 2 root root 21 Oct 16 10:26 xml
drwxr-xr-x. 2 root root 6 Apr 11 2018 xinetd.d
drwxr-xr-x. 6 root root 116 Oct 16 10:28 xdg
drwxr-xr-x. 6 root root 103 Oct 16 10:26 X11
-rw-r--r--. 1 root root 0 Jun 10 2014 wvdial.conf
drwxr-xr-x. 2 root root 33 Oct 16 10:27 wpa_supplicant
-R:递归显示
[[email protected] ~]# ll -R /var/log
/var/log/samba:
total 0
drwx------. 2 root root 6 Apr 13 2018 old
/var/log/samba/old:
total 0
/var/log/speech-dispatcher:
total 0
/var/log/sssd:
total 0
/var/log/tuned:
total 8
-rw-r--r--. 1 root root 7159 Mar 5 09:24 tuned.log
6、touch 命令
NAME
touch - change file timestamps--修改文件的时间戳,可用于创建文件;
[[email protected] ~]# touch /tmp/touch.test
[[email protected] ~]# ll /tmp/touch.test
-rw-r--r-- 1 root root 0 Mar 29 22:06 /tmp/touch.test
SYNOPSIS
touch [OPTION]... FILE...
OPTIONS
-a:仅修改access time;
[[email protected] ~]# stat /tmp/touch.test
File: ‘/tmp/touch.test’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd00h/64768d Inode: 67976088 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-03-29 22:09:05.609128074 +0800
Modify: 2019-03-29 22:09:05.609128074 +0800
Change: 2019-03-29 22:09:05.609128074 +0800
Birth: -
[[email protected] ~]# touch -a /tmp/touch.test
[[email protected] ~]# stat /tmp/touch.test
File: ‘/tmp/touch.test’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd00h/64768d Inode: 67976088 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-03-29 22:09:25.882986471 +0800
Modify: 2019-03-29 22:09:05.609128074 +0800
Change: 2019-03-29 22:09:25.882986471 +0800
Birth: -
-m:仅修改modify time;
[[email protected] ~]# touch -m /tmp/touch.test
[[email protected] ~]# stat /tmp/touch.test
File: ‘/tmp/touch.test’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd00h/64768d Inode: 67976088 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-03-29 22:09:25.882986471 +0800
Modify: 2019-03-29 22:11:12.518241679 +0800
Change: 2019-03-29 22:11:12.518241679 +0800
Birth: -
-t:STAMP,可指定时间戳,格式:[[CC]YY]MMDDhhmm[.ss]
[[email protected] ~]# touch -t 201903290830.33 /tmp/touch.test
[[email protected] ~]# stat /tmp/touch.test
File: ‘/tmp/touch.test’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd00h/64768d Inode: 67976088 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-03-29 08:30:33.000000000 +0800
Modify: 2019-03-29 08:30:33.000000000 +0800
Change: 2019-03-29 22:14:02.791052405 +0800
Birth: -
7、more命令:分屏查看文件内容的命令
格式:
more FILENAME
[[email protected] ~]# more /etc/rc.d/init.d/functions
\# -*-Shell-script-*-
\#
\# functions This file contains functions to be used by most or all
\# shell scripts in the /etc/init.d directory.
\#
TEXTDOMAIN=initscripts
\# Make sure umask is sane
umask 022
\# Set up a default search path.
PATH="/sbin:/usr/sbin:/bin:/usr/bin"
export PATH
if [ $PPID -ne 1 -a -z "$SYSTEMCTL_SKIP_REDIRECT" ] && \
8、less命令:分屏查看文件内容的命令
格式:
less FILENAME:
[[email protected] ~]# less /etc/rc.d/init.d/functions
注:more和less的区别是 more翻到文件的最后一行后,会自动退出;less而不会,man命令其实调用的是less命令;
10、head:查看文件头几行的命令,默认是前10行;
格式:head FILE
[[email protected] ~]# head /etc/rc.d/init.d/functions
\# -*-Shell-script-*-
\#
\# functions This file contains functions to be used by most or all
\# shell scripts in the /etc/init.d directory.
\#
TEXTDOMAIN=initscripts
\# Make sure umask is sane
umask 022
OPTIONS
-n #: 指定查看#行;
[[email protected] ~]# head -n 5 /etc/rc.d/init.d/functions
\# -*-Shell-script-*-
\#
\# functions This file contains functions to be used by most or all
\# shell scripts in the /etc/init.d directory.
\#
11、tail命令:
查看文件的后n行;
格式:
tail [option] ifle
[[email protected] ~]# tail /etc/fstab
\#
\# /etc/fstab
\# Created by anaconda on Tue Oct 16 10:22:23 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=9a3bd9e0-b338-4cee-8a0c-ab1ad4d4a80f /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
[[email protected] ~]#
-n # :查看后#行;
[[email protected] ~]# tail -2 /etc/fstab
UUID=9a3bd9e0-b338-4cee-8a0c-ab1ad4d4a80f /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
[[email protected] ~]#
-f:查看完成后不退出,一般用于监控日志等;Ctrl+c退出
[[email protected] ~]# ll /var/log/secure-20190310
-rw------- 1 root root 4140 Mar 8 17:38 /var/log/secure-20190310
[[email protected] ~]# tail -f /var/log/secure-20190310
Mar 5 20:50:25 magedu sshd[10449]: Accepted password for root from 172.16.200.88 port 63255 ssh2
Mar 5 20:50:26 magedu sshd[10449]: pam_unix(sshd:session): session opened for user root by (uid=0)
Mar 5 21:30:46 magedu sshd[10449]: pam_unix(sshd:session): session closed for user root
Mar 6 17:25:58 magedu sshd[2027]: pam_unix(sshd:session): session closed for user root
Mar 7 09:36:33 magedu sshd[31722]: Accepted password for root from 172.16.0.249 port 10712 ssh2
Mar 7 09:36:33 magedu sshd[31722]: pam_unix(sshd:session): session opened for user root by (uid=0)
Mar 7 16:20:13 magedu sshd[18305]: Accepted password for root from 172.16.251.149 port 53805 ssh2
Mar 7 16:20:13 magedu sshd[18305]: pam_unix(sshd:session): session opened for user root by (uid=0)
Mar 7 20:00:39 magedu sshd[18305]: pam_unix(sshd:session): session closed for user root
Mar 8 17:38:08 magedu sshd[31722]: pam_unix(sshd:session): session closed for user root
12、stat命令:显示文件时间戳
[[email protected] ~]# stat /etc/passwd
File: ‘/etc/passwd’
Size: 2837 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 67976084 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-03-30 10:11:22.003980561 +0800
Modify: 2019-03-29 10:11:22.332144545 +0800
Change: 2019-03-29 10:11:22.332144545 +0800
Birth: -
问题二、使用命令行展开功能,创建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b,在/tmp目录下创建目录:x_y, x_z, q_y, q_z
[[email protected] ~]# mkdir -p /tmp/{a1/{a,b},a2}
[[email protected] ~]# tree /tmp/
/tmp/
|-- a1
| |-- a
| `-- b
|-- a2
[[email protected] ~]# mkdir -v /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’
问题三、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
文件的元数据包括:文件类型、文件权限、文件被链接的次数 、属主、属组、文件大小、时间戳、文件名等;
可以使用 ls -l File_Name 命令查看,例如:
[[email protected] ~]# ll -rd /var/log
drwxr-xr-x. 19 root root 4096 Mar 24 03:10 /var/log
d--是文件类型,代表的是此文件是目录;还有其它的文件类型
? -:代表的是文件
? l:的意思是链接文件,相当于Windows中的快捷方式;
? p:是管道;
? b:块设备文件;
? c:字符设备文件;
? s:套接字文件;
rwxr-xr-x--是文件的权限规定;权限有三类:r--读,w--写,x--执行;分三组:属主、属组、其他,每组三位;-代表的是没有;例如:rwxr-xr-x前三位的rwx代表文件的属主有读写执行的权限。中间三位r-x代表文件属主的属组有读执行的权限;后三位r-x代表即不是属主也不是属组的其他用户权限是读和执行;
19--是代表这个文件被链接的次数;
root--是代表文件属主的名称;
root--是代表文件属主的属组的名称;
4096--是代表文件的大小;
Mar 24 03:10--是代表文件的最后修改的时间;
/var/log--是文件名;
可能通过 stat命令来查看文件的元数据:
例:
[[email protected] ~]# stat /var/log
File: ‘/var/log’
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: fd00h/64768d Inode: 37059 Links: 19
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-03-24 03:10:02.285254964 +0800
Modify: 2019-03-24 03:10:02.293254907 +0800
Change: 2019-03-24 03:10:02.293254907 +0800
Birth: -
时间戳的时间主要有三个:
访问:Access Time,访问的时间;
修改:Modify Time:修改文件数据的时间;
改变Change Time:元数据发生改变的时间;
如果要修改时间戳的时间,用touch命令:
? touch -a File_Name 修改访问时间;
? touch -m File_Name 修改修改时间;
问题四、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
[[email protected] ~]# touch /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)
[[email protected] ~]# ll /tmp/tfile-2019-03-26-21-20-27
-rw-r--r-- 1 root root 0 Mar 26 21:20 /tmp/tfile-2019-03-26-21-20-27
问题五、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
[[email protected] ~]# mkdir /tmp/mytest1
[[email protected] ~]# cp -r /etc/p*[^[:digit:]] /tmp/mytest1/
[[email protected] ~]# ll /tmp/mytest1/
total 48
drwxr-xr-x 2 root root 4096 Mar 26 21:34 pam.d
-rw-r--r-- 1 root root 2526 Mar 26 21:34 passwd
-rw-r--r-- 1 root root 2485 Mar 26 21:34 passwd-
-rw-r--r-- 1 root root 1362 Mar 26 21:34 pbm2ppa.conf
-rw-r--r-- 1 root root 2872 Mar 26 21:34 pinforc
drwxr-xr-x 10 root root 116 Mar 26 21:34 pki
drwxr-xr-x 2 root root 28 Mar 26 21:34 plymouth
drwxr-xr-x 5 root root 52 Mar 26 21:34 pm
-rw-r--r-- 1 root root 6300 Mar 26 21:34 pnm2ppa.conf
drwxr-xr-x 2 root root 6 Mar 26 21:34 popt.d
drwxr-xr-x 2 root root 154 Mar 26 21:34 postfix
drwxr-xr-x 3 root root 219 Mar 26 21:34 ppp
drwxr-xr-x 2 root root 105 Mar 26 21:34 prelink.conf.d
-rw-r--r-- 1 root root 233 Mar 26 21:34 printcap
-rw-r--r-- 1 root root 1819 Mar 26 21:34 profile
drwxr-xr-x 2 root root 4096 Mar 26 21:34 profile.d
-rw-r--r-- 1 root root 6545 Mar 26 21:34 protocols
drwxr-xr-x 2 root root 79 Mar 26 21:34 pulse
drwxr-xr-x 2 root root 23 Mar 26 21:34 purple
drwxr-xr-x 2 root root 35 Mar 26 21:34 python
问题六、创建用户tom,指定UID为5001,指定家目录为/tmp/tom, 指定shell为/bin/zsh, 指定基本组为tom,附加组为jack
[[email protected] ~]# groupadd jack
[[email protected] ~]# useradd -u 5001 -d /tmp/tom -s /bin/zsh -G jack tom
[[email protected] ~]# tail -1 /etc/passwd
tom:x:5001:5004::/tmp/tom:/bin/zsh
[[email protected] ~]# tail -2 /etc/group
jack:x:5003:tom
tom:x:5004:
[[email protected] ~]#
问题七、常用的用户以及目录管理命令有哪些,并演示命令以及用法。
用户管理类命令:
1、useradd:添加用户
SYNOPSIS
useradd [options] LOGIN_NAME
useradd后面直接跟上要创建的用户名,就可添加一个新用户;
例:
[[email protected] ~]# useradd shared
[[email protected] ~]#
OPTIONS
-u,--uid UID:指定UID,默认自动根据前一个用户名的ID往后增加;
[[email protected] ~]# useradd -u 1345 oneday
[[email protected] ~]# tail -1 /etc/passwd
oneday:x:1345:1345::/home/oneday:/bin/bash
-g,--gid GID:指定GID,指定的组ID必须提前创建;
[[email protected] ~]# useradd -g 1345 twoday
[[email protected] ~]# tail -1 /etc/passwd
twoday:x:5009:1345::/home/twoday:/bin/bash
-G,--groups GROUP1[,GROUP2,...[,GROUPN]]:添加附加组,可同时添加多个;
[[email protected] ~]# useradd --groups oneday,testbash,tom,centos liuyue
[[email protected] ~]# cat /etc/group
centos:x:4004:liuyue
user1:x:4005:
jack:x:5003:tom
tom:x:5004:liuyue
bash:x:5005:
testbash:x:5006:liuyue
basher:x:5007:
nologin:x:5008:
gaohua:x:5009:
zhouhaicheng:x:5010:
shared:x:5011:
oneday:x:1345:liuyue
liuyue:x:5012:
-c,--comment COMMENT:添加用户的注释信息;
[[email protected] ~]# useradd -c "大管家" songhuizong
[[email protected] ~]# tail -1 /etc/passwd
songhuizong:x:5011:5013:大管家:/home/songhuizong:/bin/bash
-d,--home HOME_DIR--->指定家目录;
[[email protected] ~]# useradd -d /tmp/袁腾飞 yuantengfei
[[email protected] ~]# tail -1 /etc/passwd
yuantengfei:x:5012:5014::/tmp/袁腾飞:/bin/bash
-M,不创建主目录;
[[email protected] ~]# useradd -M weizheng
[[email protected] ~]# tail -1 /etc/passwd
weizheng:x:5013:5015::/home/weizheng:/bin/bash
[[email protected] ~]# cd /home/
[[email protected] home]# ll
total 0
drwx------ 3 bash bash 78 Mar 27 10:43 bash
drwx------ 3 basher basher 78 Mar 27 10:43 basher
drwx------ 5 centos centos 144 Mar 24 15:24 centos
drwx------ 3 fedora fedora 78 Mar 13 12:37 fedora
drwx------ 3 gaohua gaohua 78 Mar 29 10:11 gaohua
drwx------. 3 1000 1000 78 Apr 11 2018 guoxi
drwx------ 15 lijianzhi lijianzhi 316 Mar 5 15:31 lijianzhi
drwx------ 3 liuyue liuyue 78 Mar 30 22:09 liuyue
drwx------ 3 nologin nologin 78 Mar 27 10:44 nologin
drwx------ 3 oneday oneday 78 Mar 30 21:59 oneday
drwx------ 3 shared shared 78 Mar 30 21:54 shared
drwx------ 3 slackware slackware 78 Mar 5 11:50 slackware
drwx------ 3 songhuizong songhuizong 78 Mar 31 09:40 songhuizong
drwx------ 3 testbash testbash 78 Mar 27 10:43 testbash
drwx------ 3 twoday oneday 78 Mar 30 22:04 twoday
drwx------ 3 user1 user1 78 Mar 26 12:01 user1
drwx------ 3 user3 user3 78 Mar 22 17:18 user3
drwx------ 3 zhouhaicheng zhouhaicheng 78 Mar 29 10:11 zhouhaicheng
[[email protected] home]#
-D :查看默认创建用户的参数,也可修改默认参数;默认配置文件----/etc/login.defs,
[[email protected] home]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
例如:默认shell 就改为 csh
[[email protected] ~]# useradd -D -s /bin/csh
[[email protected] ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/csh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
2、修改用户命令:usermod
NAME
usermod
? - modify a user account,修改用户账户
SYNOPSIS
? -usermod [options] LOGIN
OPTIONS
-u,--uid UID:修改用户的UID ;
[[email protected] home]# grep oneday /etc/passwd
oneday:x:1345:1345::/home/oneday:/bin/bash
[[email protected] home]# usermod -u 2345 oneday
[[email protected] home]# grep oneday /etc/passwd
oneday:x:2345:1345::/home/oneday:/bin/bash
-g,--gid GID:修改基本组ID,必须事先创建;
[[email protected] home]# grep yuantengfei /etc/passwd
yuantengfei:x:5012:5012::/tmp/袁腾飞:/bin/bash
[[email protected] home]# usermod -g 5015 yuantengfei
[[email protected] home]# grep yuantengfei /etc/passwd
yuantengfei:x:5012:5015::/tmp/袁腾飞:/bin/bash
[[email protected] home]#
-G:修改用户附加组,原先附加组会被覆盖;
-a;和-G一起使作,只追加附加组,原先的附加组不会被覆盖;
[[email protected] home]# grep liuyue /etc/group
centos:x:4004:liuyue
tom:x:5004:liuyue
testbash:x:5006:liuyue
oneday:x:1345:liuyue
liuyue:x:5012:
[[email protected] home]# usermod -aG oneday tom
[[email protected] home]# grep liuyue /etc/group
centos:x:4004:liuyue
tom:x:5004:liuyue
testbash:x:5006:liuyue
oneday:x:1345:liuyue,tom
liuyue:x:5012:
-c :修改用户注释信息;
-d:修改用户家目录;
-l:修改用户名;
-s:修改用户默认shell;
[[email protected] home]# grep "songhuizong" /etc/passwd
songhuizong:x:5011:5013:大管家:/home/songhuizong:/bin/bash
[[email protected] home]# usermod -c 大奸臣 -d /home/caijing -l caijing -s /sbin/nologin songhuizong
[[email protected] home]# grep "songhuizong" /etc/passwd
[[email protected] home]# grep "caijing" /etc/passwd
caijing:x:5011:5013:大奸臣:/home/caijing:/sbin/nologin
-r:创建系统用户
[[email protected] home]# useradd -r suse
[[email protected] home]# tail -1 /etc/passwd
suse:x:988:982::/home/suse:/bin/bash
3、删除用户命令:userdel
userdel
[[email protected] home]# userdel caijing
-r:删除用户时一并删除其家目录
[[email protected] home]# cd /home/
[[email protected] home]# ll
total 0
drwx------ 3 bash bash 78 Mar 27 10:43 bash
drwx------ 3 basher basher 78 Mar 27 10:43 basher
drwx------ 5 centos centos 144 Mar 24 15:24 centos
drwx------ 3 fedora fedora 78 Mar 13 12:37 fedora
drwx------ 3 gaohua gaohua 78 Mar 29 10:11 gaohua
drwx------. 3 1000 1000 78 Apr 11 2018 guoxi
drwx------ 15 lijianzhi lijianzhi 316 Mar 5 15:31 lijianzhi
drwx------ 3 liuyue liuyue 78 Mar 30 22:09 liuyue
drwx------ 3 nologin nologin 78 Mar 27 10:44 nologin
drwx------ 3 oneday oneday 78 Mar 30 21:59 oneday
drwx------ 3 shared shared 78 Mar 30 21:54 shared
drwx------ 3 slackware slackware 78 Mar 5 11:50 slackware
drwx------ 3 5011 songhuizong 78 Mar 31 09:40 songhuizong
drwx------ 3 testbash testbash 78 Mar 27 10:43 testbash
drwx------ 3 twoday oneday 78 Mar 30 22:04 twoday
drwx------ 3 user1 user1 78 Mar 26 12:01 user1
drwx------ 3 user3 user3 78 Mar 22 17:18 user3
drwx------ 3 zhouhaicheng zhouhaicheng 78 Mar 29 10:11 zhouhaicheng
[[email protected] home]# userdel -r twoday
[[email protected] home]# ll
total 0
drwx------ 3 bash bash 78 Mar 27 10:43 bash
drwx------ 3 basher basher 78 Mar 27 10:43 basher
drwx------ 5 centos centos 144 Mar 24 15:24 centos
drwx------ 3 fedora fedora 78 Mar 13 12:37 fedora
drwx------ 3 gaohua gaohua 78 Mar 29 10:11 gaohua
drwx------. 3 1000 1000 78 Apr 11 2018 guoxi
drwx------ 15 lijianzhi lijianzhi 316 Mar 5 15:31 lijianzhi
drwx------ 3 liuyue liuyue 78 Mar 30 22:09 liuyue
drwx------ 3 nologin nologin 78 Mar 27 10:44 nologin
drwx------ 3 oneday oneday 78 Mar 30 21:59 oneday
drwx------ 3 shared shared 78 Mar 30 21:54 shared
drwx------ 3 slackware slackware 78 Mar 5 11:50 slackware
drwx------ 3 5011 songhuizong 78 Mar 31 09:40 songhuizong
drwx------ 3 testbash testbash 78 Mar 27 10:43 testbash
drwx------ 3 user1 user1 78 Mar 26 12:01 user1
drwx------ 3 user3 user3 78 Mar 22 17:18 user3
drwx------ 3 zhouhaicheng zhouhaicheng 78 Mar 29 10:11 zhouhaicheng
[[email protected] home]#
4、修改用用户密码:passwd
NAME
passwd
SYNOPSIS
passwd [--stdin] [USERNAME]
修改当前用户名密码
passwd:
[[email protected] home]# passwd
Changing password for user root.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[[email protected] home]#
修改其他用户的密码,只有root用户才能修改其他用户密码
passwd USERNAME
[[email protected] home]# passwd oneday
Changing password for user oneday.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
指定一个字符串输入给用户当密码
echo "PASSWORD" | passwd --stdin USERNAME
[[email protected] home]# echo "gentoo" | passwd --stdin gentoo
Changing password for user gentoo.
passwd: all authentication tokens updated successfully.
5、添加用户组命令:groupadd
NAME
groupadd
SYNOPSIS
groupadd [option] GROUP_NAME
OPTIONS
-g GID :指定组ID;
[[email protected] home]# groupadd -g 2510 tongguan
[[email protected] home]#
6、删除组命令:groupdel
groupdel
[[email protected] home]# groupdel tongguan
[[email protected] home]#
7、修改组命令:groupmod
groupmod
-g:修改组ID;
[[email protected] home]# grep "weizheng" /etc/group
weizheng:x:5015:
[[email protected] home]# groupmod -g 1555 weizheng
[[email protected] home]# grep "weizheng" /etc/group
weizheng:x:1555:
[[email protected] home]#
-n:修改组名
[[email protected] home]# grep "1555" /etc/group
weizheng:x:1555:
[[email protected] home]# groupmod -n caochao weizheng
[[email protected] home]# grep "1555" /etc/group
caochao:x:1555:
8、显示用户ID命令:id
NAME
id
SYNOPSIS
id [OPTION] ... [USERNAME]
-u:只显示UID
-g:只显示GID
-G:显示所有GID
[[email protected] home]# id -u weizheng
5013
[[email protected] home]# id -g weizheng
1555
[[email protected] home]# id -G liuyue
5012 4004 5004 5006 1345
9、切换用户命令
su
su USERNAME :非登录式切换,不会切换目标用户的配置文件进行初始化;
[[email protected] home]# su liuyue
您好,请你每天加油学习,欢迎入坑
[[email protected] home]$
su - USERNAME:登录式切换,会重新读取用户的匹配文件初始化登陆信息;
[[email protected] home]# su - liuyue
Last login: Sun Mar 31 16:02:28 CST 2019 on pts/0
您好,请你每天加油学习,欢迎入坑
[[email protected] ~]$
10、修改权限命令:chmod
NAME
chmod
SYNOPSIS
chmod [OPTION] MODE FILE
chmod --reference=FILE
OPTIONS
递归修改权限
-R,--recursive
[[email protected] tmp]# ll man
total 124
drwxr-xr-x 2 root root 53248 Mar 8 14:37 man1
drwxr-xr-x 2 root root 192512 Mar 8 14:37 man3
drwxr-xr-x 2 root root 16384 Mar 8 14:37 man5
drwxr-xr-x 2 root root 173 Mar 8 14:37 man7
drwxr-xr-x 2 root root 32768 Mar 8 14:37 man8
[[email protected] tmp]# chmod -R 774 man
[[email protected] tmp]# ll man
total 124
drwxrwxr-- 2 root root 53248 Mar 8 14:37 man1
drwxrwxr-- 2 root root 192512 Mar 8 14:37 man3
drwxrwxr-- 2 root root 16384 Mar 8 14:37 man5
drwxrwxr-- 2 root root 173 Mar 8 14:37 man7
drwxrwxr-- 2 root root 32768 Mar 8 14:37 man8
--reference=FILE
[[email protected] tmp]# ll man
total 124
drwxrwxr-- 2 root root 53248 Mar 8 14:37 man1
drwxrwxr-- 2 root root 192512 Mar 8 14:37 man3
drwxrwxr-- 2 root root 16384 Mar 8 14:37 man5
drwxrwxr-- 2 root root 173 Mar 8 14:37 man7
drwxrwxr-- 2 root root 32768 Mar 8 14:37 man8
[[email protected] tmp]# chmod -R --reference=/etc/fstab man
[[email protected] tmp]# ll man
total 124
drw-r--r-- 2 root root 53248 Mar 8 14:37 man1
drw-r--r-- 2 root root 192512 Mar 8 14:37 man3
drw-r--r-- 2 root root 16384 Mar 8 14:37 man5
drw-r--r-- 2 root root 173 Mar 8 14:37 man7
drw-r--r-- 2 root root 32768 Mar 8 14:37 man8
11、修改文件的用户和组:chown
chown
NAME
? chown - change file owner and group
SYNOPSIS
? chown [OPTION]... [OWNER][:[GROUP]] FILE...
? chown [OPTION]... --reference=RFILE FILE...
OPTIONS
-R --recursive:递归修改用户或组
--reference=RFILE:以某个文件为基准,修改用户和组;
[[email protected] tmp]# ll man
total 124
drw-r--r-- 2 root root 53248 Mar 8 14:37 man1
drw-r--r-- 2 root root 192512 Mar 8 14:37 man3
drw-r--r-- 2 root root 16384 Mar 8 14:37 man5
drw-r--r-- 2 root root 173 Mar 8 14:37 man7
drw-r--r-- 2 root root 32768 Mar 8 14:37 man8
[[email protected] tmp]# man chown
[[email protected] tmp]# chown -R liuyue.liuyue /tmp/man
[[email protected] tmp]# ll man
total 124
drw-r--r-- 2 liuyue liuyue 53248 Mar 8 14:37 man1
drw-r--r-- 2 liuyue liuyue 192512 Mar 8 14:37 man3
drw-r--r-- 2 liuyue liuyue 16384 Mar 8 14:37 man5
drw-r--r-- 2 liuyue liuyue 173 Mar 8 14:37 man7
drw-r--r-- 2 liuyue liuyue 32768 Mar 8 14:37 man8
[[email protected] tmp]# ll man
total 124
drw-r--r-- 2 liuyue liuyue 53248 Mar 8 14:37 man1
drw-r--r-- 2 liuyue liuyue 192512 Mar 8 14:37 man3
drw-r--r-- 2 liuyue liuyue 16384 Mar 8 14:37 man5
drw-r--r-- 2 liuyue liuyue 173 Mar 8 14:37 man7
drw-r--r-- 2 liuyue liuyue 32768 Mar 8 14:37 man8
[[email protected] tmp]# chown -R --reference=/etc/passwd /tmp/man
[[email protected] tmp]# ll man
total 124
drw-r--r-- 2 root root 53248 Mar 8 14:37 man1
drw-r--r-- 2 root root 192512 Mar 8 14:37 man3
drw-r--r-- 2 root root 16384 Mar 8 14:37 man5
drw-r--r-- 2 root root 173 Mar 8 14:37 man7
drw-r--r-- 2 root root 32768 Mar 8 14:37 man8
以上是关于用户及文件目录命令的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段15——git命令操作一个完整流程