1、 目录文件的浏览、管理及维护
1. pwd 显示当前路径
2. cd 切换目录,也可切换到用户的家目录
3. cd.. 进入上一级目录
4. cd ~ 切换到用户的家目录
5. cd – 切换到用户之前的工作目录
2. ls命令
6. ls -a 列出目录下的所有文件,包括以“.”开头的隐含文件 ls -a /home/dog 7. ls –l 列出某个目录中每一个文件的详细资料
3. cp命令 (复制文件和目录)
8. cp 源文件 目标文件 只能复制文件不能复制目录
9. cp -r 源文件 目标文件 递归地复制,复制一个目录时,复制该目录中所有的内容,其中包括子目录的全部内容
10. cp -f 源文件 目标文件 (force,强制):在目标文件已经存在的时候不询问直接强制复制
4. mv命令(移动及修改文件和目录名)也可以重新命名文件和目录
11. mv bigdog babydog 将bigdog目录名改为babydog
12. mv 源目录 目标目录 mv/etc/aaa.txt /usr/loacl/ 将a.txt文件移动到/usr/loacl目录下
13. 命令参数:
-b :若需覆盖文件,则覆盖前先行备份。
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
5. mkdir与touch(创建目录与文件)
14. mkdir 创建文件夹
15. touch 可以创建一个空文件,也可以同时创建多个文件
6. rm命令 (永久地在文件系统中删除文件或目录)
17. 命令参数:
–r(recursive,递归的):递归地删除目录。当删除一个目录时,删除该目录中所有的内容,其中包括子目录中的全部内容。
–f(force,强制):系统并不询问而是强制删除,即直接删除原有的文件。
18. rm -f a.txt 删除文件
19. rm -r aaa 删除目录及其子目录
7.查看文件的命令
20. cat:将一个或多个文件的内容显示在屏幕上,该命令会不停的以只读的方式显示整个文件的内容。
21. 命令参数:
-n或-number:有1开始对所有输出的行数编号; -b或--number-nonblank:和-n相似,只不过对于空白行不编号; -s或--squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行; -A:显示不可打印字符,行尾显示“$”; -e:等价于"-vE"选项; -t:等价于"-vT"选项;
22. head:默认将显示一个文件的前10行
23. head -5 a.txt 显示前5行数据
24. tail: 默认显示文件最后10行的内容。 25. tail -n 显示从文件末尾算起的n行
26. tail -5 a.txt 显示最后5行数据
27. tail -f a.txt 动态显示内容 一般用于日志查询
28. more:使用more命令之后,每次在屏幕上显示一屏(一页)的文件内容,并且在屏幕的尾部将会出现“—More--(n%)”的信息,其中,n%是已经显示文件内容的百分比。
2. 用户、群组和权限
1. /etc/passwd文件的功能
1. 存储所有用户的相关信息,该文件也被称为用户信息
/etc/passwd文件每个字段的具体含义:
a) 第1个字段(列)记录的是这个用户的名字(在创建用户时root用户起的)。
b) 第2个字段(列)如果是x,表示该用户登录Linux系统时必须使用密码;如果为空,则该用户在登录时无须提供密码。
c) 第3个字段(列)记录的是这个用户的uid。
d) 第4个字段(列)记录的是这个用户所属群组的gid。
e) 第5个字段(列)记录的是有关这个用户的注释信息(如全名或通信地址)。
f) 第6个字段(列)记录的是这个用户的家目录的路径。
g) 第7个字段(列)记录的是这个用户登录后,第一个要执行的进程。
2. shadow文件
/etc/shadow文件的功能:存储所有用户的密码,每一个用户占用一行记录,该文件实际上就是存放用户密码的数据库(Database)。
/etc/shadow文件每个字段的具体含义:
a) 第1个字段(列)是用户名。
b) 第2个字段(列)是密码,这个密码是经过MD5加密算法加密过的密码。
3. 群组及group文件
/etc/group文件的功能
存放了Linux系统中所有群组的信息,它实际上就是一个存放群组信息的数据库(Database)。
/etc/group文件每个字段的具体含义:
a) 第1个字段是这个群组的名字。
b) 第2个字段中的x表示这个群组在登录Linux系统时必须使用密码。
c) 第3个字段记录的是这个群组的gid。
d) 第4个字段记录的是这个群组里还有哪些群组成员。
4. 添加一个新的用户账户
useradd alex # 添加alex用户
参数:
–u:指定用户的UID
–g:指定用户所属的群组
–d:指定用户的家目录
–c:指定用户的备注信息
–s:指定用户所用的shell
useradd -u 600 -g alex eric # 创建eric用户,用户id 600 属alex组
添加用户后会创建一系列文件:
1. 创建用户的家目录 /home/alex
2. 在/etc/passwd文件中增加用户的信息
alex:x:500:500::/home/alex:/bin/bash
3. 在 /etc/shadow文件中增加用户的密码信息
alex:!!:17813:0:99999:7:::
4. 在/etc/group文件中增加alex组
alex:x:500:
5. 增加用户邮件
xxx
5. 查看用户的信息
id alex # uid=500(alex) gid=500(alex) 组=500(alex)
6. usermod 修改用户信息
参数:
–u:修改用户的UID
–g:修改用户的GID
–G:将一个用户加入到指定的群组中
–d:修改用户的家目录
–c:修改用户的备注信息
–s:修改用户所用的shell
usermod -G root seven # 将用户seven加入root组 (这种加入方式是覆盖加入,覆盖之前用户加入的组,只保留所属主组与这次添加的组)
追加的方式添加用户到其他组
usermod -aG alex seven # uid=601(seven) gid=601(seven) 组=601(seven),0(root),500(alex)
从组中删除用户
gpasswd alex -d seven # 从alex组中删seven用户
7. userdel 删除用户信息
userdel -r alex
8. groupadd添加组信息
groupadd g1
9. groupmod 修改组信息
参数:
–g:修改群组的GID
–n:修改群组的名称
groupmod –g 521 g1 # 将群组id改为521 groupmod –n g11 g1 # 将群组 g1改名为 g11
10. groupdel 删除一个群组账号
groupdel g11
3. 用户、群组及权限的深入讨论
1. ls -l 命令详解
-rw-r--r--. 1 root root 46478 10月 1 14:48 install.log1.
1.第一列分成4组
第1个字符为第1组,代表这是一个文件(-)或是一个目录(d),也可以是其他资源。
第2、3、4个字符为第2组,定义了文件或目录的所有者(owner)所具有限的权,使用u代表所有者(owner)对文件的所有权限。
第5、6、7个字符为第3组,定义了文件或目录的所有者所在的群组中其他(用户)所具有的权限,使用g代表这一组(group)权限。
第8、9、10个字符为第4组,定义了既不是owner也不和owner在同一群组的其他用
2. 第三列、第四列为文件的属主和属组
3. 第五列,第六列为文件大小与创建时间
4.第七列 文件名
2. 针对文件的权限 (作用于文件内容)
查看文件权限
ls -l
修改文件权限
chmod u+w a.txt chmod g+w a.txt chmod o+w a.txt chmod u-w a.txt chmod g-w a.txt chmod o-w a.txt
注意: 当修改文件权限时,只有文件的属主和root用户才能修改权限。比如a.txt 属主是 alex,其他用户对a.txt没有写的权限,用户eric想往文件写入内容,那么eric能直接给a.txt
执行 chmod o+w 吗?当然是不能的,因为文件的属主是alex,只有alex才能执行chmod o+w,root用户也可以,因为root是超级用户,超越权限之外。
上面相当于eric自己给自己加权限,这当然是不可以的。
现象1:
如果一个文件权限信息如下:
-r--rw-r-- 1 alex alex 32 10月 10 09:40 a.txt
其他用户对文件只有写的权限,没有读的权限。
当其他用户对文件进行写时,保存之后,alex用户去查询文件内容时,你会发现文件的内容只有其他用户写的内容了,原来的内容没有了。原因就是因为其他用户没有读的权限,当其他用户写内容时,由于没有读的权限,所以读不出来任何内容,相当于读出来空内容,当再写入内容时,保存之后,vim编辑器将内存的的内容直接覆盖写到文件中了。也就只有其他用户写的内容了。
3. 针对目录的权限
查看目录权限
ll -d / # 查看根目的权限信息
dr-xr-xrwx. 26 root root 4096 10月 10 09:21 /
对目录的读权限,表示能看到目录下的内容,即可以 ls
如下表示对目录没有读的权限
[eric@centos6 test]$ ls
ls: 无法打开目录.: 权限不够
对目录的写权限,表示能在目录下创建文件,删除文件,重命名文件,不涉及修改文件,因为修改文件涉及的是对文件的权限,不是目录的权限。
如下表示对目录没有写的权限
[eric@centos6 test]$ touch b.txt touch: 无法创建"b.txt": 权限不够
对目录的执行权限,表示能够进入文件目录中,即cd进入文件目录。
递归修改目录的权限
[alex@centos6 test]$ chmod -R o+w test # 将test目录下的文件或目录都执行此操作
4. chown 修改属主与属组
修改文件、目录的属主和属组
chown alex.alex a.txt
递归修改目录的权限
[root@centos6 test]# chown -R alex.alex a.txt
注:上面修改文件的属主与属组时,需要用root用户,其他用户修改不成功,不晓得why。
4. 资源占用情况查看
1. free命令,查看内存使用情况
free
参数: -h # 以G为单位 -m # 以M为单位
[root@centos6 ~]# free total used free shared buffers cached Mem: 1028268 945040 83228 1460 87656 701276 -/+ buffers/cache: 156108 872160
注解:第一行 used(945040)表示内存分出去多少,可以将内存认为是一个内存池,使用内存是从池子中分出去一部分(分出去的就是 buffers和cached)。
第一行 buffers(87656),表示已经分出去的buffers,但是系统还没有使用。
第一行 cached(701276),表示已经分出去的cache,但是系统还没有使用。
系统真正使用了的内存是,第二行(156108)。所以内存的使用率 = 156108/1028268。
945040(分配出去的buffer和cache) = 156108(已经释放的buffer和cache) + 87656(未使用的buffer) + 701276(未使用的cache)。
83228 表示内存还没有分配出去的buffer和cache。
872160 表示总共可以当做buffer和cache内用有多少,那么它等于 = 83228 + 87656 + 701276
5. 进程的管理
进程的定义:进程是程序的一次动态执行。
守护进程的定义:守护进程是在后台运行并提供系统服务的一些进程。
父进程、子进程的定义:当一个进程创建另一个进程时,第1个进程被称为新进程的父进程,而新进程被称为子进程。
ps命令的功能:用来显示当前进程的状态。
ps –aux 显示所有的与用户相关的完整信息。
系统中进程的监控pstree、kill。
centos7默认没有pstree,需要yum -y install psmisc
pstree命令的功能:以树状图显示程序。
查询某个进程
ps -aux | grep xxx
杀死进程
kill -9 PID