IT虾米网

Linux常用命令详解

admin 2018年06月08日 程序员 427 0

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的进程
  1. 例如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 
  1. 查看某进程占用的端口号 例如查看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
  1. 用户组名称
  2. 密码
  3. GID
  4. 这个用户组拥有的用户,例如bin用户组,有两个用户bin和deamon

用户组的好处:
例如通过让用户加入某个group来授予一类权限,在多用户中管理很重要

/etc/shadow

root:$6$SL/DRlUH$9Os6jjLitbaEJnlC3L.9VuTIFTuVFnJZsbUNDBu2CfwAqVatRqOYtZMJiww39ryuVLdMzP3puXWFuVuu0HSo81:17199:0:99999:7::: 
bin:*:15980:0:99999:7:::
  1. 用户名称
  2. 密码(已加密)
  3. 17199 最近更改密码的日期,17199是通过内部一个算法来实现的
  4. 密码不可被更改的天数
  5. 密码需要重新更改的天数,有时为了用户的安全,要求用户5天要改一次密码,所以可以设为5,0表示不需要更改
  6. 密码需要更改期限前的警告天数
  7. 密码过期后的账号宽限时间
  8. 账号失效日期
  9. 保留

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 415 09:17 dbs 
-rwxr-xr-x. 1 root root    70 418 19:42 hello.sh

最前面的字段就是描述文件和权限的编码:
第一个字符便是对象的类型

-代表文件
d 代表目录
l 代表链接
c代表字符型设备
b代表块设备
n代表网络设备

后面有3组三字符的编码:
r:可读
w:可写
x:可执行

第一组:文件属主的权限
第二组:文件属组的权限
第三组:其它用户的权限

例如:

drwxr-xr-x  4 root root  4096 415 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) – 所有用户都有读、写、执行权限。更不可取的做法。

发布评论

分享到:

IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

Java操作MongoDB 3.x详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。