a. 添加一个新用户:
useradd 用户名 : 当创建用户成功后,会自动创建和用户同名的家目录;
useradd -d 指定目录 用户名 : 给新创建的用户指定家目录
b. 指定/修改密码:passwd 用户名;
c. 删除用户:
userdel 用户名:删除用户,但保留家目录;
userdel -r 用户名:删除用户,并删除家目录;
d. 查询用户信息:id 用户名;
e. 切换用户:如果用户的权限不够,可以通过 su- 指令,切换到高权限用户,如root;
su - 需切换的用户名;
当需要返回到原来的用户时,exit即可;
f. 查看当前用户
whoami / who am i
添加组: groupadd 组名;
删除组:groupdel 组名;
添加用户时直接加上组:useradd -g 用户组 用户名;
修改用户的组: usermod -g 用户组 用户名;
用户和组的相关文件:
/etc/passwd 文件:user的配置文件,记录用户的各种信息;
每行含义:用户名:口令:用户标识符:组标识符:注释性描述:主目录:登录Shell;
注:权限不够,用vim打开;
/etc/shadow 文件:
每行含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告事件:不活动时间:失效时间:标志;
/etc/group 文件:group的配置文件,记录linux包含的组的信息;
每行含义:组名:口令:组标识号:组内用户列表(不可见)
pwd:显示当前工作目录的绝对路径;
ls:ls 目录/文件
-a:显示当前目录所有的文件和目录,包括隐藏的;
-l:以列表的方式显示信息;
cd:绝对路径(/home) / 相对路径(…/home);
cd~ / cd:回到家目录;
cd … :回到当前目录的上一级目录;
mkdir指令:
mkdir:创建目录(即文件夹)
;
mkdir -p:创建多级目录;
rmdir指令:
rmdir:删除空目录;
tips:如果目录下有内容,则无法删除;
rm -rf:删除非空目录;
touch指令:
touch 文件名:创建文件;
eg:touch hello.txt;
cp指令:指定拷贝文件到指定目录;
cp [选项] source dest;
eg:将english.txt复制到welcome目录下:
-r:递归复制整个文件夹(要精准定位 源目录和目标目录);
eg:将welcome文件夹中的内容复制到a文件夹中:cp -r welcome/ a/
tips:强制复制不提示 \cp;
rm指令:
rm:要删除的文件 / 目录;
-r:递归删除整个文件夹;
-f:强制删除不提醒;
mv指令:
mv a b:如果b不存在,则a改名成b;若b存在,则a移动到b
cat指令:
cat:查看文件内容。
-n:显示行号;
tips:cat只能浏览文件,不能修改
;为了浏览方便,一般会带上 管道命令 |more
;
more指令:
more指令是一个基于VI编辑器的文本过滤器,它以全屏的方式按页显示文本文件的内容;
more指令中的快捷键:
space:向下翻页;
Enter:向下翻行;
q:立刻离开more,不再显示该文件内容;
Ctrl+F:向下滚动;
=:输出当前的行号;
f:输出文件名和当前行的行号;
less指令:
less指令用来分屏查看文件内容,与more不同的是:less在显示文件内容时,并不是一次性将整个文件加载完之后再显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率
。
快捷键:
space:向下翻页;
PgDn:向下翻页;
PgUp:向上翻页;
/ abc 向下搜索abc;
? abc 向上搜索abc;(n:向下查找;N:向上查找)
q:离开less;
>指令 和 >>指令
1 >输出重定向 >> 追加。
ls -l > 文件 : 文件有覆盖写,文件无创建写;
eg:将ls -l 下显示的内容覆盖写入到bala.txt中:ls -l > bala.txt
ls -al>>文件:追加写;
cat 文件1>文件2:将文件1中的内容覆盖到文件2;
echo"内容">>文件:追加写;
echo"内容">文件:覆盖写;
echo指令:
echo:输出内容到控制台;
echo $PATH:输出当前环境变量的路径;
echo 输出文本:echo “hello world”
head指令:
head指令用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容。
head 文件:查看文件前10行内容;
head -n 5 文件:查看文件前5行内容;
tail指令:
tail指令用于输出文件中尾部的内容,默认tail显示后10行内容。
tail 文件:查看文件后10行内容;
tail -5 文件:查看文件后5行内容;
tail -f 文件:实时追踪该文档的所有更新;(Ctrl+Z退出)
eg:实时监控mydate文件:tail -f mydate
ln指令:
软链接/符号链接,类似windows快捷方式,主要存放了链接其他文件的路径。
ln -s 原文件/目录 软链接名:给原文件创建一个软链接;
tips:使用pwd指令查看目录时,看到的是软链接所在目录~
eg:给/dog文件夹创建一个软链接:ln -s /dog linkAnimal
history指令:
查看已经执行过历史命令,也可以执行历史指令。
history:执行过的全部命令;
history 10:显示最近执行过的10个指令;
!123:执行历史编号为123的指令:
a. date指令:显示当前日期:
date:显示当前时间;
date +%Y:显示当前年份;
date +%m:显示当前月份;
date +%d:显示当前天数;
date “+%Y-%m-%d %H:%M:%S”:显示年月日时分秒;(+不要忘哦~ )
tips:连接符- : 可以换成其他的任意符号~
b. date指令设置时间:
date -s 字符串时间
eg:date -s “2021-6-6 23:57:00”
Cal指令:
查看日历指令。
cal 无选项:显示本月日历;
cal 2021:显示2021年日历;
find指令:
find指令将从指定目录向下递归遍历其各个子目录,将满足条件的文件/目录显示在终端。
find 搜索范围 选项:
选项说明:
-name <查询方式>:按照指定的文件名查找模式查找文件;
-user<用户名>:查找属于指定用户名所有文件;
-size<文件大小>:按照指定的文件大小查找文件;
tips: +n:大于n; -n:小于n; n:等于n;
eg:查找welcome目录下name为xm.txt的文件:find welcome -name xm.txt
查找welcome目录下user为xiaobai的所有文件:find welcome -user xiaobai
查找size=2k的文件:find -size 2k
使用通配符查找所有 .txt 文件:find -name “*.txt”
locate指令:
locate指令可以快速定位文件路径。locate指令利用实现建立的系统中所有文件名称及路径的locate数据库
实现快速定位给定的文件。
locate指令无需遍历整个文件系统,查询速度较快
。
为了保证查询结果的准确度,管理员必须定期更新locate
时刻。
locate 搜索文件;
tips:1. root用户下先使用 yum -y install mlocate ;
2. 由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。
grep指令和管道符号 |:
grep过滤查找,管道符“ | ”,表示将前一个命令的处理结果输出传递给后面的命令处理。
grep 选项 查找内容 源文件
常用选项:
-n:显示匹配行及行号;
-i:忽略字母大小写;
在mydate文件中过滤出bala字符串:cat mydate | grep bala
在mydate文件中过滤出bala字符串并显示行号并不区分大小写:cat mydate | grep -ni bala
gzip / gunzip指令:
gzip:用于压缩文件,gunzip用于解压,在项目打包发布中很有用。
gzip 文件:只能将文件压缩为 *.gz 文件;
-r:递归压缩;
gunzip 文件.gz:解压缩文件;
-d<目录>:指定压缩后文件的存放目录;
eg:将animal文件夹压缩到mypackage.zip下:zip -r mypackage.zip /animal;
将mypackage.zip解压到/tmp/animal1目录下:unzip -d /tmp/animal1 mypackage.zip;
tar指令:
tar指令是打包指令
,最后打包后的文件是.tar.gz的文件。
tar [选项] xxx.tar.gz 打包的内容:打包目录,压缩后的文件格式tar.gz;
压缩:tar -zcvf
;解压缩:-zxvf ;
选项说明:
-c 产生.tar打包文件;
-v:显示详细信息;
-f:指定压缩后的文件名;
-z:打包同时压缩;
-x:解包.tar文件。
eg:压缩多个文件,将a1.txt a2.txt压缩成a.tar.gz中:tar -zcvf a.tar.gz a1.txt a2.txt;
将welcome的文件夹 压缩成mytar.tar.gz:tar -zcvf mytar.tar.gz /welcome;
将mytar.tar.gz解压到当前目录:tar -zxvf mytar.tar.gz;
将mytar.tar.gz解压到a目录下:tar -zxvf mytar.tar.gz -C /a;
tips:a目录得存在;
所有者user;
文件所在组group;
其他组other;
文件/目录所有者:
一般情况下,谁创建该文件,谁就成为该文件的所有者。
查看文件的所有者:ls -ahl;
修改文件所有者:chown 用户名 文件名;
递归修改文件所有者:chown -R username 文件/目录(所有子文件/目录都递归生效);
递归修改文件所有者/所有组:chown -R username :用户组名称 文件/目录;
tips:chown详见“8.权限-修改文件所有者-chown”(下翻)。
eg:创建一个组police,创建一个用户Tom存放在police组中,使用Tom创建一个文件ok.txt:
groupadd police;
useradd -g police Tom
passwd Tom:1234657;
登录Tom,创建ok.txt:touch ok.txt;
如图:最后一栏ok.txt所在行最前端的Tom显示了ok.txt文件所有者是Tom;ok.txt所在组是police;
修改ok.txt所在组为xiaobai:chown xiaobai ok.txt;(使用root用户进入home/Tom中执行)
tips:文件ok.txt所在组不一定是文件所有者Tom所在组;
文件/目录所在组:
一般情况下,当某个用户Tom创建了一个文件ok.txt后,默认这个文件ok.tx所在组就是该用户Tom所在的组。
查看文件/目录所在组:ls -ahl;
修改文件所在的组:chgrp 组名 文件名;
tips:修改组详见“8.权限-修改文件所在组-chgrp”(下翻)。
其他组:
除文件所有者和所在组的用户外,系统的其他用户都是文件的其他组。
在添加用户时,可以指定将该用户添加到哪个组中,也可使用root管理权限改变某个用户所在的组。
改变用户所在组:usermod -g 组名 用户名;
usermod -d 目录名 用户名:改变该用户登录的初始目录;
ls -l中显示的内容如下:
-rw-r--
r–. 1 xiaobai police 0 May 11 23:37 ok.txt;
0-9位说明:
- 第0位确认文件类型(d,-l,c,b);
- 第1-3位确认所有者(该文件的所有者)拥有该文件的权限。–User
- 第4-6位确定所属组(同用户组的)拥有该文件的权限。–Group
- 第7-9位确定其他用户组拥有该文件的权限。–Other
rwx权限:
a. rwx作用到文件
:
- [r]代表read:可以读取,查看;
- [w]代表write:可以修改,但是不代表删除,只有对该文件所在的目录有写权限,才可以删除该文件;
- [x]代表execute:可以被执行;
b. rwx作用到目录
:
- [r]代表read:可以读取,ls查看目录内容;
- [w]代表write:可以修改,目录内创建+删除+重命名目录;
- [x]代表execute:可以进入该目录
eg:
-rw-r--
r–. 1 xiaobai police 0 May 11 23:37 ok.txt;表示:
第一个字符代表文件类型:文件 (-),目录 (d),链接 (l);
其余字符每3个一组(rwx) 读®写(w)执行(x);
1.第一组rw-
:文件拥有者的权限是读、写;
2.第二组r--
:文件所在组即与文件拥有者所属组内的用户的权限是du;
3.第三组r–:不予文件拥有者同组的其他用户的权限是读;
c. 可用数组表示为:r=4, w=2, x=1.所以-rw-r--
r–.,对应数值:644
1 文件:硬链接数/ 目录:子目录数; xiaobai 用户; police 组; 0 文件大小[字节]; May 11 23:37 最后修改日期; ok.txt 文件名;
修改权限:-chmod
通过chmod指令,可以修改文件或目录的权限。
a. 通过+、-、=变更权限:
u:所有者 g:所在组 o:其他组 a:所有人(u、go总和);
1.chmod u=rwx,g=rx,o=x 文件目录名;
2.chmod o+w 文件目录名:给other组增减权限w;
chmod a-x 文件目录名:给所有目录减掉权限x;
eg:给hi.txt文件的所有者增加执行权限x,组除去写权限w:chmod u+x,g-w hi.txt;
b. 通过数字变更权限:
r=4,w=2,x=1; rwx=7;
chmod u=rwx,g=rx,o=x 文件目录名;
相当于 chmod 751 文件目录名;
eg:将hi.txt文件权限修改成rwxr-xr-x,使用数字方式实现:chmod 755 hi.txt;
修改文件所有者-chown:
chown newowner file:改变文件的所有者;
chown newowner:newgroup file 改变用户的所有者和所有组
-R 如果是目录,则使其下所有子文件/目录递归生效。
eg1:将ok.txt文件的所有者改成Tom: chown Tom ok.txt;
eg2:将/home/abcd目录下所有文件和目录(包括子目录/子目录下的文件)的所有者都修改为xiaobai: chown -R xiaobai abcd/;
tips:root用户才有权限。
修改文件所在组-chgrp:
chgrp newgroup file:改变文件的所有组;
eg1:将/home/liudehua.txt文件的所在组修改成police:chgrp police liudehua.txt;
eg2:将/home/abcd 目录下所有文件和目录的所在组都修改成character:chgrp -R character /home/abcd(或在home下直接改);