linux命令

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

 

posted @ 2018-10-31 10:25  20180616  阅读(137)  评论(0编辑  收藏  举报