1、查看文档
cat:一次性显示全部
cat hello.txt
more 从上到下翻页显示
空格键:向下翻一页
Enter:向下滚动一行
/字符串:向下搜索字符串
more hello.txt
less 可以上下翻页显示(最重要)
空格键:向下翻一页
上:向上翻一页
下:向下翻一页
/字符串:向下搜索字符串
?字符串:想上搜索字符串
less hello.txt
2、ps命令
该命令用于将某个时间点的进程运行情况选取下来并输出,process之意,它的常用参数如下:
-A :所有的进程均显示出来
-a :不与terminal有关的所有进程
-u :有效用户的相关进程
-x :一般与a参数一起使用,可列出较完整的信息
-l :较长,较详细地将PID的信息列出
其实我们只要记住ps一般使用的命令参数搭配即可,它们并不多,如下:
ps aux # 查看系统所有的进程数据
ps ax # 查看不与terminal有关的所有进程
ps -lA # 查看系统所有的进程数据
ps axjf # 查看连同一部分进程树状态
查看某程序运行的进程
ps aux|grep redis
aux表示查看进程 grep表示在这些进程中搜索 redis表示此次查询的是redis的进程
- 例如ps来查看shell的父子关系:(PID进程ID,PPID父Shell的ID)
bash 创建一个shell
ps -f 详细显示进程信息
[root@localhost ~]# bash
[root@localhost ~]# bash
[root@localhost ~]# bash
[root@localhost ~]# ps -f
UID PID PPID C STIME TTY TIME CMD
root 3498 3496 0 22:21 pts/0 00:00:00 -bash
root 3519 3498 0 22:22 pts/0 00:00:00 bash
root 3528 3519 0 22:22 pts/0 00:00:00 bash
root 3537 3528 0 22:22 pts/0 00:00:00 bash
root 3546 3537 1 22:22 pts/0 00:00:00 ps -f
[root@localhost ~]# ps --forest
PID TTY TIME CMD
3498 pts/0 00:00:00 bash
3519 pts/0 00:00:00 \_ bash
3528 pts/0 00:00:00 \_ bash
3537 pts/0 00:00:00 \_ bash
3547 pts/0 00:00:00 \_ ps
- 查看某进程占用的端口号 例如查看jetty的端口号
首先用ps查看jetty的进程id
[root@localhost ~]# ps -aux | grep jetty
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root 2653 71.4 11.7 1473196 118036 pts/0 Sl+ 13:55 0:11 java -jar /usr/local/jetty/start.jar
root 2678 0.0 0.0 103328 848 pts/1 S+ 13:56 0:00 grep jetty
然后根据进程id,查看该进程占用的端口号
[root@localhost ~]# netstat -nap | grep 2653
tcp 0 0 :::8080 :::* LISTEN 2653/java
tcp 0 0 :::8443 :::* LISTEN 2653/java
unix 2 [ ] STREAM CONNECTED 17243 2653/java
unix 2 [ ] STREAM CONNECTED 16979 2653/java
从上面可以得出jetty的端口号位8080
3、kill、killall、pkill
这三个命令都是用来杀死进程
kill:通过进程id杀死进程
killall和pkill:通过进程名杀死进程
kill -l //列出所有信号名称
kill -9 1000 //强制杀死1000进程
更多:http://www.cnblogs.com/rsky/p/4886043.html
4. 用户和用户组
4.1 必须要知道的三个文件
/etc/passwd :存放用户相关信息
/etc/group:存放用户组相关信息
/etc/shadow:存放了用户的密码
/etc/passwd下:
root:x:0:0:root:/root:/bin/bash
使用:作为分割
1. root表示用户名
2. x在早期的UNIX代表密码,为了避免密码泄露,把密码放到了/etc/shadow,而用x替代
3. 第3个字段表示UID,0表示管理员,1~499表示系统账号,500~65535表示可登陆账号
4. 第4个字段表示GID,用户组
5. 用户说明
6. 用户主文件夹
7. Shell,当用户登录系统后,会取得一个Shell,这个Shell就是Bash Shell,也可以称为login shell
/etc/group
root:x:0:
bin:x:1:bin,daemon
- 用户组名称
- 密码
- GID
- 这个用户组拥有的用户,例如bin用户组,有两个用户bin和deamon
用户组的好处:
例如通过让用户加入某个group来授予一类权限,在多用户中管理很重要
/etc/shadow
root:$6$SL/DRlUH$9Os6jjLitbaEJnlC3L.9VuTIFTuVFnJZsbUNDBu2CfwAqVatRqOYtZMJiww39ryuVLdMzP3puXWFuVuu0HSo81:17199:0:99999:7:::
bin:*:15980:0:99999:7:::
- 用户名称
- 密码(已加密)
- 17199 最近更改密码的日期,17199是通过内部一个算法来实现的
- 密码不可被更改的天数
- 密码需要重新更改的天数,有时为了用户的安全,要求用户5天要改一次密码,所以可以设为5,0表示不需要更改
- 密码需要更改期限前的警告天数
- 密码过期后的账号宽限时间
- 账号失效日期
- 保留
4.2 账号管理
添加账户useradd
[root@localhost ~]# useradd jeff
[root@localhost ~]# grep jeff /etc/passwd /etc/group /etc/shadow
/etc/passwd:jeff:x:501:501:my user:/home/jeff:/bin/bash
/etc/group:jeff:x:501:
/etc/shadow:jeff:$6$stQIXMFA$fCxpdArbWt3mdFw5KAzzmv5JmW79It826MTe8g7Ei.21ms.tvt9dikqhWXID3RHWfUD44k.MqUX5tVskyyrJQ/:17276:0:99999:7:::
useradd命令做了哪些事?
1. 在/etc/passwd 里面创建一行与账号有关的数据,包括创建UID/GID/主文件夹等
2. 在/etc/shadow 里面将此账号的密码相关参数填入,但是尚未有密码
3. 在/etc/group 里面假如一个与账号名称一模一样的组名
4. 在/home下创建一个与账户号相同的主文件夹,且权限为700
为用户设置密码passwd
[root@localhost ~]# passwd jeff
5. 文件权限
通过 ll 查看文件权限
drwxr-xr-x 4 root root 4096 4月 15 09:17 dbs
-rwxr-xr-x. 1 root root 70 4月 18 19:42 hello.sh
最前面的字段就是描述文件和权限的编码:
第一个字符便是对象的类型
-代表文件
d 代表目录
l 代表链接
c代表字符型设备
b代表块设备
n代表网络设备
后面有3组三字符的编码:
r:可读
w:可写
x:可执行
第一组:文件属主的权限
第二组:文件属组的权限
第三组:其它用户的权限
例如:
drwxr-xr-x 4 root root 4096 4月 15 09:17 dbs
d表示它是一个目录,第一组rwx,表示对于所属用户,是可读写,可执行的,第二组r-x,表示所属组是可读可执行,第三组r-x,其他用户是可读可执行的。
-rw——- (600) – 只有属主有读写权限。
-rw-r–r– (644) – 只有属主有读写权限;而属组用户和其他用户只有读权限。
-rwx—— (700) – 只有属主有读、写、执行权限。
-rwxr-xr-x (755) – 属主有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx–x–x (711) – 属主有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw- (666) – 所有用户都有文件读、写权限。这种做法不可取。
-rwxrwxrwx (777) – 所有用户都有读、写、执行权限。更不可取的做法。