Linux常用命令详解
1. ls:list directory contents 【列出当前目录的所有文件和目录】 -l:use a long listing format 【显示长列表格式,比如文件的创建时间,大小等等】 [root@libaoliang xiaobao]# ls -l 命令显示内容如下 -rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc -:文件类型(第一个字符) -:普通文件(f) d:目录文件 b:块设备文件(block) c:字符设备文件(character) l:符号连接文件(symbolic link file) p:命令管道文件(pipe) s:套接字文件(socket) rwxrw-r--:文件权限(后续9位) 每3个一组(rwx)读(r)写(w)执行(x) 第一组rwx:文件拥有者的权限是读,写,执行 第二组rw-:与文件所有者同一组的用户的权限是读、写 但不能执行 第三组r--:不与文件拥有者同组的其他用户的权限是读 不能写和执行 可以用数字表示为:r=4,w=2,x=1因此 rwx=4+2+1=7 1:文件硬连接的次数,如果是目录,则是目录里包括的文件数 root:文件的属主(owner) root:文件的属组(group) 1213:文件大小(size),单位是字节 Feb 2 09:39:时间戳(timestamp):最后一次修改的时间 访问:access 修改:modify,文件内容发生改变 改变:change,metadata,元数据 abc:文件名 -h:文件大小做单位转换 -a:[--all] do not ignore entries starting with .【显示以 . 开头的隐藏文件】 . 表示当前目录 .. 表示父目录 -A:[--almost-all] do not list implied . and ..【显示隐藏文件,但是不显示. 和 ..】 -d:[--directory] list directory entries instead of contents, and do not dereference symbolic links显示目录自身属性 如果需要看目录文件信息的话,需要额外添加一个-d参数才可以 ls -ld /etc 【查看/etc目录中文件的权限与属性】 -i:[--inode] print the index number of each file 【显示每个文件的索引号inode】 -r:[--reverse] reverse order while sorting [逆序显示] -R:[--recursive] list subdirectories recursively [递归(recursive)显示]
2. cd:Change the shell working directory 【改变目录】 cd :不带参数 到登录用户的工作主目录 家目录 home directory cd ~: 切换到前用户的家目录 cd ~USERNAME:进入指定用户的家目录 cd -:在当前目录和前一次所在的目录之间来回切换
type:Display information about command type 【显示命令类型】
内部命令(shell内置)
help COMMAND
外部命令:在文件系统的某个路径下有一个与命令名称相应的可执行文件
COMMAND --help
4. man 命令 分章节: 1:用户命令(所有用户都可以使用的命名) 2:系统调用 3:库调用 4:特殊文件(设备文件) 5:文件格式(配置文件的语法) 6:游戏 7:杂项(Miscellaneous) 8:管理命令(/sbin,/usr/sbin,,/usr/local/sbin) <>:必选 []:可选 ...:可以出现多次 {}:分组 NAME:命令名称及功能简要描述 SYNOPSIS:用法说明,包括可用的选项 DESCRIPTION:命令功能的详尽说明,可能包含每一个选项的意义。 OPPTIONS:说明每一个选项的意义 FILES:此命令相关的配置文件 BUGS:bug报告相关地址 EXAMPLES:使用事例。 SEE ALSO:另外参照。 翻屏: 向后翻一屏:SPACE空格键 向前翻一屏:b 向后翻一行:ENTER,j 向前翻一行:k 查找: /keyword:向后 n:下一个 N:前一个 ?keyword:向前 n:下一个 N:前一个 退出:q
5. whatis COMMAND :显示命令摘要信息,以及出现在那些章节中
6. info COMMAND:read Info documents 【在线手册,对man的补充】
7.日历时间命令
date :print or set the system date and time 【用于显示及设置系统(软件时间)时间或日期】 格式为:"date [选项] [+指定的格式]"。 date [MMDDhhmm[[CC]YY][.ss]] 意思是指 月月日日时时分分年年年年.秒秒; 例如:date 081709202017.30 表示设置系统时间为2017年8月17日09时20分30秒 参数 作用 %t 跳格[TAB键] %H 小时(00-23) %I 小时(00-12) %M 分钟(00-59) %S 秒(00-59) %X 相当于%I:%M:%S %p %Z 显示时区 %p 显示本地AM或PM %A 星期几 (Sunday-Saturday) %a 星期几 (Sun-Sat) %B 完整月份 (January-December) %b 缩写月份 (Jan-Dec) %d 日(01-31) %j 一年中的第几天(001-366) %m 月份(01-12) %Y 完整的年份 %F full date; same as %Y-%m-%d %T time; same as %H:%M:%S date 【按照默认的格式查看当前的系统时间】 date "+%Y-%m-%d %H:%M:%S" 相当于 date "+%F %T" 【按照"年-月-日 小时:分钟:秒"的格式查看当前的系统时间】 date -s "20160901 8:30:00" 【设置当前的系统时间为2016年9月1日8点30分】
clock 或 hwclock:查看硬件时间(晶体振荡器) hwclock: -w:Set the Hardware Clock to the current System Time.【将系统时间设置为硬件时间。】 -s:Set the System Time from the Hardware Clock.【将硬件时间设置为系统时间 】
cal:calendar 日历 cal 3 2003 【查看2003年3月的月历】 cal 2008 【查看2008年年历】
echo:【用于在终端显示字符串或输出变量提取后的值】格式: echo [字符串|$变量] -n do not output the trailing newline【默认echo输出尾随的换行符,加-n选项 不输出尾随的换行符】 -e enable interpretation of backslash escapes 【启用反斜杠转义的解释】 -E disable interpretation of backslash escapes (default)【默认不启用反斜杠转义的解释】 \b backspace \n new line \t horizontal tab 【横向制表符】 \v vertical tab 【纵向制表符】 事例:echo -e "First line \n \bSecond line" 相当于 echo -e "First line \nSecond line" 【分2行显示】 printf:format and print data 【格式和打印数据,默认不输出尾随换行符,需要\n转义,跟echo的区别】 \n new line
9. mkdir:make directories【创建目录】 -p:[--parents] no error if existing, make parent directories as needed 【可创建多级目录】 -v:[--verbose] print a message for each created directory(verbose)【显示过程详细信息】 例如:mkdir -pv /mnt/test/{x/m,y} 【创建2个目录(花括号展开,将花括号中 逗号分割的 展开为2个) 相当于 mkdir -pv /mnt/test/x/m /mnt/test/y】 -m, [--mode=MODE] set file mode (as in chmod), not a=rwx - umask 【设定文件权限】 例如:mkdir -m 777 testDir1 【创建目录testDir1,并且权限为rwxrwxrwx】
10. rmdir:remove empty directories 【只能删除空目录】 -p:[--parents] remove DIRECTORY and its ancestors; e.g., ‘rmdir -p a/b/c’ is similar to ‘rmdir a/b/c a/b a’ 【可删除多层目录】 -v:[--verbose] output a diagnostic for every directory processed 【显示处理详细信息】
11. touch:【建立空文件】【创建空白文件与设置文件的各种时间】 格式:touch [格式] [文件]12. stat:display file or file system status 【显示文件或系统的属性信息,用于查看文件的具体存储信息和时间信息】 格式:stat [OPTION]... FILE...
13. cp:copy 复制文件 ,可以一次复制多个文件到指定目录 cp file1 fiel2 fiel3 dir 将 fiel1,file2,file3 复制到 dir目录 -p:【保留原有属性。比如 文件a 的创建者是 xiaobao ,复制者是root,那么cp a b ;b文件的属主是root; cp -p a c,c文件属主是原来的xiaobao】 -i:【( --interactive) 当文件被覆盖时提示】 -f:【不用提示,强制覆盖】 -r:【(--recursive 递归复制 copy directories recursively)】 -d: 【若对象为"链接文件",则保留该"链接文件"的属性】 -a:【相当于-pdr,保留文件原有的一切属性。归档复制,常用的备份】
14. mv:move (rename) files【移动文件和改文件名】
15. rm:【删除文件和目录】用type rm 可以看到 rm 是 rm -i 的别名,即默认使用 rm -i 交互方式删除文件。如果想使用 原生rm删文件,需要加\ 即 \rm -i:prompt before every removal 交互方式 -f:强制删除 -r:递归删除 rm -rf * 【删除所有内容(包括目录和文件)r递归 f强制】
install: copy files and set attributes,install【命令即安装程序使用的命令。可以用作复制文件】。 install -d dir 创建目录dir install source targe 复制文件;用install 复制的文件,默认可带执行权限,这是和cp命令不同的地方 -d:创建目录 -m:设置权限,若不设置,默认为 rwxr-xr-x
17. file:determine file type【查看文件的类型】 格式:file 文件名 file mytest1.java file /dev/sda
18. 查看文件命令:cat、tac、more、less、head、tail
cat:concatenate files and print on the standard output【连接并显示,用于查看纯文本文件(较短的)】 -n:显示文本行号 -E:显示文本结束符,linux中结束符是$
more:【显示文件(较长的)内容,带分页】
SPACE空格键:向后翻一屏,翻到最后直接退出
b键:向前翻一屏
Enter键:向后翻一行
less:【显示文件内容,带分页。类似与man的用法】
SPACE空格键:向后翻一屏,翻到最后直接退出
b键:向前翻一屏
Enter键 或 j键:向后翻一行
k键:向前翻一行
翻到最后不直接退出,需要按q键盘退出。注意与more的区别。
head:【查看前n行】 -c:--bytes=[-]K 【显示前n个字符】 -n:--lines=[-]K 【显示前n行】 head -n 5 /etc/inittab 和 head -5 /etc/inittab:【查看前5行,-n可以省略,直接用-数字】 head -c -5 /etc/inittab 【显示前5个字符】
tail:【用于查看纯文本文件的后n行 或 持续刷新内容】 -f:【查看文件尾部,不退出,等待显示后续追加到此文件的新内容。】 tail -n 20 文件名【查看文件后20行】 tail -f /var/log/message 【持续刷新 日志文件,实时查看最新日志文件内容】
19. 文本处理相关命令:cut、join、grep、sed、awk
cut:remove sections from each line of files 【按列显示指定列字段的内容】 -d:指定字段分隔符 -f:指定要显示的字段 -f 1,3 表示显示第1个,和第3个字段 -f 1-3 表示显示第1到第3个字段 cut -d: -f 1-3 /etc/passwd 显示/etc/passwd文件中 以:分割,第1-3个字段的内容
sort:sort lines of text files【文本排序,默认按ascii排序】 -n:[--numeric-sort]按数值排序 -r:[--reverse]逆序排序 -d:[ --dictionary-order]只考虑空格和字母数字字符 -t:[ --field-separator]指定分隔符 -k:--key=POS1[,POS2] 以那个字段为关键字进行排序 -u:[--unique]将重复的行过滤掉,行内容一样就算重复行 -f:[--ignore-case] 忽略字符大小写 sort -t: -k 3 -n /etc/passwd 指定分割:,按第三个字段 以数值 比较排序
uniq:report or omit repeated lines,【该命令将 行内容相同 并且 相邻的行才叫重复行】 -d:[--repeated]显示重复行 -D:显示所有重复行 -c:prefix lines by the number of occurrences 显示文件中行重复的次数
grep:print lines matching a pattern 【根据模式搜索文本,并将符合模式的文本行显示出来】grep [OPTIONS] PATTERN [FILE...] Pattern:文本字符和正则表达式的元字符组合而成匹配条件 -i:[--ignore-case] 【忽略大小写】 --color:【将匹配的内容高亮显示】 -n:[--line-number]Prefix each line of output with the 1-based line number within its input file【显示行号】 -v:[--invert-match] Invert the sense of matching, to select non-matching lines. 【显示没有被匹配到的行】 -o:[--only-matching]Print only the matched (non-empty) parts of a matching line 【只显示被匹配到的 字符串】 -E:[--extended-regexp] 使用扩展表达式 -A NUM:[ --after-context=NUM]如果某行被grep 模式匹配到后,还会显示匹配到的行后面的n行 -B NUM:[--before-context=NUM] -C NUM:[ -NUM, --context=NUM] grep “libaoliang” aaa.java 表示 在 aaa.java文件中查找 libaoliang
20. tr:【字符处理命令】 translate or delete characters -d:[--delete] delete characters in SET1, do not translate 删除出现在字符集中所有字符 tr a-z A-Z < /etc/inittab :将/etc/inittab文件中所有小写字符转换为大小字符
21. wc: 【文本统计命令】 print newline, word, and byte counts for each file 【显示文件的 行数,单词数,字节数】 -l:( --lines) print the newline counts 只显示行数 -w:(--words) print the word counts 只显示单词数 -c:(--bytes)只显示字节数 -L(--max-line-length)print the length of the longest line 显示最长的行的长度 wc -l /etc/passwd 【passwd用于保存系统帐号信息的文件,这样可以统计出当前系统有多少个用户】
22. bash特性
pstree: display a tree of processes 【查看进程树】
①命令历史
history:【显示最近执行的所有命令】 -c:清空命令历史 -d OFFSET [n] :删除指定位置命令 -w:保存命令历史到历史文件(历史文件 是 用户家目录里的.bash_history) history -d 500 删除第500个命令 history -d 500 10 从第500个开始往后删除10个 命令历史使用技巧 !n:执行命令历史中第n条命令 !-n:执行命令历史中倒数第n条命令 !!:执行上一条命令 !string:引用命令历史用最近一个以指定字符串开头的命令 !$:引用前一个命令的最后一个参数 ESC,.:引用前一个命令的最后一个参数 Alt+. :引用前一个命令的最后一个参数
HISTSIZE:命令历史缓冲区大小,环境变量中定义,默认值 为1000,
history命令默认会保存1000条执行过的命令,若要修改可直接编辑/etc/profile文件的HISTSIZE值
历史命令会被保存到用户家目录中的".bash_history"文件中
②管道,重定向
| :【管道命令】在linux和unix中 |表示管道命令,将上个命令的结果交给后面的命令处理。 例如:ls -l /etc/ | more 这段命令表示:将/etc/目录下内容以长格式 的结果交给 | (管道) 后面的命令more 分页显示 tee: read from standard input and write to standard output and files 【标准输入读取数据,输出到标准输出】 -a: [--append] append to the given FILEs, do not overwrite echo “hello world” | tee /home/xiaobao/myfile.txt :【标准输出屏幕会输出hello world,文件myfile.txt中 也会添加 hello world】
练习
练习 1.统计/usr/bin/目录下的文件个数 ls -l /usr/bin/ | wc -l 2.取出当前系统上所有用户的shell,要求,每种shell只显示一次,并且按顺序进行显示 ①cat /etc/passwd | cut -d: -f7 | sort -u ② cut -d: -f7 /etc/passwd | sort -u 3.思考:如何显示/var/log目录下每个文件的内容类型 ①file /var/log/* ②file `ls /var/log` 4.取出/etc/inittab文件的第5行 head -5 /etc/inittab | tail -1 5.取出/etc/passwd文件中倒数第9个用户的用户名和shell,显示到屏幕上并将其保存到/tmp/users 文件中 tail -9 /etc/passwd | head -1 | cut -d: -f1,7 | tee /home/myfile.txt 6.显示/etc目录下所有以pa开头的目录,并统计其个数 ls -d /etc/pa* | wc -l 7.不使用文本编辑器,将 alias cls=clear 一行内容添加到当前用户的.bashrc文件中 echo "alias cls='clear'" | ~/.bashrc
> :覆盖重定向 set -C :禁止对已经存在文件使用覆盖重定向 如果不想关闭-C选项功能,需要强制覆盖输出,则使用 >|,如 ls /etc/inittab >| /tmp/var.out set +C:关闭上述功能 >>:追加重定向 2>:重定向错误输出 覆盖 2>>:重定向错误追加 &>:重定向标准输出和错误输错到用以文件 &>>:重定向追加 标准输错 和 错误输出到同一文件 <:输入重定向 <<:Here Document,常用于 用户多行输入 生成文件
cat >> myfile.txt << EOF #通过用户输入生成文档

③命令别名
alias CMALIAS='COMMAND [options] [arguments]' alias 【显示系统当前定义的所有alias】 alias llh='ls -l /home' 【这样设置后,当输入llh时,相当于输入了 ls -l /home】 在shell中定义的别名仅在当前shell生命周期中有效;别名的有效范围仅为当前shell进程 unalias CMDALIAS 撤销别名 已定义别名的命令 若想使用原命令可使用 \CMD ,例如 alias mv='mv -i' ,可以使用\mv 即不加-i参数
④命令行编辑
光标跳转: Ctrl+a:跳转到命令行首 Ctrl+e:跳转到命令行尾 Ctrl+d:删除一个光标后的字符 Ctrl+u:删除光标到命令行首内容 Ctrl+k:删除贯标到命令行尾内容 Ctrl+l:清屏 Ctrl+→ 或←:命令光标以单词为单位移动
⑤命令行展开
⑥文件名通配
*:任意长度的任意字符
?:任意单个字符
[]:指定范围内的任意单个字符 [a-m],[A-Z] ,[0-9],[a-zA-Z]
[:space:]:空白字符
[:punct:]:标点符号
[:lower:] :小写字符 "[[:lower:]]" instead of "[a-z]"
[:upper:]:大写字母
[:alpha:]:大小写字母
[:digit:]:数字
[:alnum:]:数字和大小写字母
使用 man 7 glob 可以获得以上列表
[^]:配置指定范围之外的任意单个字符 例如 : [^0-9]* 表示 匹配非数字开头的文件
练习
通配符 练习
1.创建a123,cd6,c79m,c1 my,m.z,k 67,8yu,789等文件,以上文件是以逗号隔开的,其他部分都是文件名的组成部分

用 矩形 和 椭圆 圈住的表示一个文件,文件与文件之间用 英文半角 空格 隔开;椭圆圈住的文件名包括空白字符,使用 中文全角 空格
2.显示所有以a或m开头的文件
ls [am]*
3.显示所有文件名中包含了数字的文件
ls *[[:digit:]]*
ls *[0-9]*
4.显示所有以数字结尾且文件名中不包含空白的文件
通配符无法精确描述
5.显示文件名中包含了非字母或数字的特殊符号文件
ls *[^[:alnum:]]*
ls *[^a-zA-Z0-9]*
⑦变量
⑧编程
反引号 `COMMAND` 或 $(COMMAND) 命令替换,将子命令括起来 就可以得到子命令结果
双引号 “” :弱引用,可以实现变量替换
单引号 '' : 强引用,不完成变量替换
反斜杠 \ 的作用就是转义后面的一个字符变为单纯的字符串,

23. 查看用户帐号属性信息
id:查看用户帐号 的pid,gid,groups -u:(--user) print only the effective user ID -g:(--group)print only the effective group ID -G:(-groups) print all group IDs -n:(--name) print a name instead of a number, for -ugG
finger USERNAME:查看用户帐号属性信息
24. 用户及 组 管理相关命令,只有root用户,和拥有root权限的用户才能 管理用户
useradd [options] USERNAME 添加用户 -u:[--uid UID] The numerical value of the user´s ID【指定用户UID,一定要大于等于500】 -g:[--gid GROUP] The group name or ID for a new user´s initial group 【指定基本组】 -G:(GID,....)指定附加组 -c "COMMENT":[--comment COMMENT] 【指定注释信息】 -d /path/to/somedirectory :[--home-dir HOME_DIR] 【指定用户家目录】 -e:[--expiredate EXPIRE_DATE]The date on which the user account will be disabled. The date is specified in the format YYYY-MM-DD. 【帐号有效截至日期,格式:YYYY-MM-DD】 -s :[--shell SHELL] 【指定shell】 /etc/shells 定义了当前系统可用的安全Shell -M:[-create-home] 创建用户家目录 /etc/login.defs :定义了创建用户时 添加到/etc/shadow中的默认信息 -m:[--create-home] 创建家目录,和 -k组合使用 -k:[--skel SKEL_DIR] 【指定了 -m 选项,这个选项才有效】 /etc/default/useradd:定义了创建用户时 添加到passwd中的默认信息 -r:[--system] Create a system account.【添加系统用户,系统用户不能登录系统,没有家目录】 -N:[--no-user-group] Do not create a group with the same name as the user 【不创建与用户同名的基本用户组】
userdel [options] USERNAME:【删除用户】
-r:[--remove] 同时删除家目录
usermod:modify a user account -u :[--uid UID] 修改UID -g:[-gid GROUP] 修改 基本组 -G:--groups GROUP1[,GROUP2,...[,GROUPN]]] 修改附加组,只用-G修改附加组 会覆盖掉原来的附加组,要在现有基础上添加附加组,一般 -G -a 一块使用,表示在现有基础上附加新组 -d:[--home HOME_DIR] 修改用户家目录,和 -m (--move-home)一块使用,即改用户家目录,又移动原来家目录到新家目录 -c:[--comment COMMENT] 修改注释信息 -s:[--shell SHELL] 修改 shell -l:[--login NEW_LOGIN] 修改用户登录名 -L:[--lock]锁定用户 -U:[--unlock]解锁用户
chsh:change your login shell 【修改用户默认shell】
-s:[ --shell shell] Specify your login shell.
chfn [username]:修改注释信息 -l: [--list-shells] Print the list of shells listed in /etc/shells and exit.
passwd [USERNAME]:update user’s authentication tokens 【修改密码】 --stdin:(标准输入流) -l:锁定帐号 -u:解锁帐号 -d:删除用户密码 -n:This will set the minimum password lifetime -x:This will set the maximum password lifetime -e:This is a quick way to expire a password for an account. The user will be forced to change the password during the next login attempt 【强制用户下次登陆时修改密码】 -S:This will output a short information about the status of the password for a given account 【显示用户的密码状态】
pwck:verify integrity of password files 【检查用户帐号完整性】
groupadd: create a new group 【添加组】 -g:[--gid GID] 【指定GID】 -r:[--system] 【添加 系统组】
groupmod:修改组 -g GID :[--gid GID] 修改 GID -n GRPNAME :[--new-name NEW_GROUP] 【修改组名称】
groupdel:删除组
gpasswd :administer /etc/group and /etc/gshadow 【为组加密码】
newgrp:log in to a new group,【用户临时切换 基本组;操作完成后,可以用 exit,退出临时组】
chage:change user password expiry information -d:[--lastday LAST_DAY] 最近一次的修改时间 -E:[--expiredate EXPIRE_DATE] 过期的时间 -i:非活动时间 -M:[--maxdays MAX_DAYS] 最长使用期限 -w:[--warndays WARN_DAYS] 警告时间
练习
用户/组 练习 1.创建一个用户mandriva ,其中ID为2002,基本组为 distro (组ID为3003),附加组为linux groupadd -g 3003 distro groupadd linux useradd -u 2002 -g distro -G linux mandriva 2.创建一个用户fedora,其全名为 Fedora Community,默认shell是tcsh useradd -c 'Fedora Community' -s /bin/tcsh fedora 3.修改mandriva的ID号为4004,基本组为linux,附加组为distro 和 fedora usermod -u 4004 -g linux -G distro,fedora mandriva 4.给fedora加密码,并设定其密码最短使用期限为2天,最长为50天 passwd -n 2 -x 50 fedora passwd fedora 5.将mandriva的默认shell改为/bin/bash usermod -s /bin/bash mandriv 6.添加系统用户hbase,且不允许其登录系统 useradd -r -s /sbin/nologin hbase
25. 文件权限管理
chown:【用于修改文件或目录的所属主与所属组】格式为:“chown [参数] 所属主:所属组 文件或目录名称”,对于目录文件时需要加上大写参数-R来表示递归操作(只有管理员才可以使用此命令) chown USERNAME file,....:只修改文件属主 chown USERNAME:GRPNAME file,...修改文件属主和属组 chown USERNAME.GRPNAME file,....修改文件属主和属组 chown :GRPNAME file,... 只修改属组 -R:修改目录及其内部文件的属主(递归修改) --reference=/path/to/somefile file,,..:将 file,....等文件的 属主 和 属组 设置为/path/to/somefile文件的属主 和 属组
chgrp GRPNAME file,...:【修改文件或目录属组】 -R:递归修改目录及内部文件属组 --reference=/path/to/somefile file,,..
chmod:【改变文件或目录的权限】 修改三类用户的权限 chmod MODE file,.... 例如 chmod 755 file,file2 -R:递归修改目录及目录包含文件的权限 --reference=/path/to/somefile ,以somefile为基准,将其他文件改为跟somefile一样的权限 修改某类用户或某些类的权限 u,g,o,a chmod 用户类别=MODE file,... 例如:chmod u=rwx file chmod go=r:将属组 和 其他组 改为只读 修改某类用户的某位或某些位的权限 u,g,o,a chmod 用户类别+|- MODE file,.... 例如:chmod u+x fiel 给file文件属主添加执行权限 chmod练习 chmod 755 abc:赋予abc权限rwxr-xr-x chmod u=rwx,g=rx,o=rx abc:同上 u=用户权限 g=组权限 o=不同组其他用户权限 chmod u-x,g+w abc:给abc取出用户执行权限,增加组写的权限 chmod a+r abc:给所有用户添加读的权限
练习 1.创建一个没有家目录的用户openstack useradd -M openstack 2.复制/etc/skel为/home/openstack cp -r /etc/skel/ /home/openstack 3.改变/home/openstack及其内部文件的属主属组均为openstack chown -R openstack.openstack /home/openstack/ 4./home/openstack及其内部的文件,属组和其他用户没有任何访问权限 chmod -R go= /home/openstack/ 5.手动添加用户hive,基本组为hive(5000),附加组为mygroup ①用 nano 编辑 /etc/group文件添加 mygroup:x:4006:hive #添加组 mygroup ,GID为4006,mygroup是hive用户的附加组 hive:x:5000: #添加组 hive,GID为5000 ②用nano 编辑 /etc/passwd文件 添加 hive:x:4006:5000:这个用户是手动编辑本文档添加的,哈哈哈:/home/hive:/bin/bash #添加用户hive,UID为4006,基本组GID为5000,用户hive的家目录为 /home/hive,使用的shell为/bin/bash ③编辑/etc/shadow文件,添加 hive ④用户hive家目录处理 cp -r /etc/skel/ /home/hive #复制骨架目录(/etc/skel)及文件 到 /home/hive chown -R hive:hive /home/hive/ #修改hive家目录/home/hive 及 内部文件的属主和属组为hive chmod -R go= /home/hive/ #修改hive家目录/home/hive 及 内部文件的 属组和其他组无任何权限 经过以上4步,用户添加完成。只是添加的用户没有密码。用 su - hive 可以正常切换到 hive用户
umask:遮罩码 umask不带选项 会显示当前登录用户的umask umask 022 会设置当前登录用户的umask是022 管理员的 umask(遮罩码) 是022 普通用户 umask 是002 mkdir dir 创建的目录权限 777-umask touch file 创建的目录权限是 666-umask ,文件默认不能具有 x 执行权限,如果算得结果中有执行权限,则将其权限 + 1



浙公网安备 33010602011771号