linux-指令Review

1 进程相关
    1.1 ps top pstree kill
    1.2 bg fg & Ctrl+Z

2 用户相关
    2.1 用户基本basics
    2.2 su sudo
3 查询
     grep

进程相关

1.1 ps top pstree kill

ps

ps (pocess status),查看进程状态 ,所查看的状态是静态的,是查询时间瞬时的状态。

top

动态地状态。

kill

利用grep查询

1.2 bg fg & Ctrl+Z

什么是前台,后台?相对于终端?

jobs
列出后台挂起和运行的程序

command + & -> 后台运行
前台运行 + Ctrl Z ->后台-挂起
后台-挂起 + bg %num - > 后台-运行
后台 + fg %num ->前台

终端关闭后仍运行

Linux 技巧:让进程在后台可靠运行的几种方法

nohup

setsid

&

disown

screen

2.1 用户基本basics

Linux是一个多用户操作系统,我们需要以一个身份登录,一个系统也需要以一个身份运行。 不同的用户有着不同的权限,这样可以通过限制用户的权限来达到管理资源与权限的目的。

  • 每一个用户都有一个UID,即user id.

  • 每一个用户都属于一个主组,一个或者多个附属组。

  • 每个组拥有一个GroupID。

  • 每个进程以一个用户身份运行,并受该用户可访问的资源限制。

  • 每个可登录用户拥有一个指定的shell。

  • 用户分为以下三种:

    • root用户 (ID为0的用户为root用户)
    • 系统用户 (1 – 499 非强制,而是惯例)
    • 普通用户 (500以上)
  • 系统中的文件都有一个所属用户及所属组。

查看用户信息

  • 使用id命令可以显示当前用户的信息。
  • 命令whoami显示当前用户名
  • 命令who显示有哪些用户已经登录系统
  • 命令w显示有哪些用户已经登录并且在干什么

使用passwd命令可以修改当前用户密码。

  • 可以通过useradd创建,usermod修改与userdel删除用户

  • 可以通过groupadd创建,groupmod修改,groupdel删除组

配置文件

  • /etc/passwd
  • /etc/shadow

详细信息可参见linux用户和用户组管理-Runoob

2.2 su vs sudo

2.2.1 su做什么?

su和sudo是经常容易弄混的两个命令。
我们知道,root用户具有全部权限,然而普通用户只有部分权限。譬如普通用户不可以..。为了能够执行这些需要这些权限的命令,就需要获得超级用户权限。

su,sudo两者相同的地方在于都可以通过获得超级用户(superuser , or root , or admin on windows.)权限来执行一些受限操作。

su 命令的作用是切换用户(switch user)。其后接用户名,即可切换至该用户。 直接su命令不接用户则默认切换至root用户。(需要输入目标用户的密码,Ubuntu Linux密码记忆时间为15分钟5,Mac OSX为5分钟)

切换到目标用户后,可使用exit,或者logout命令来注销该用户,然后返回到原用户。

查看su文档如下

名称
   su - 更改用户 ID 或成为超级用户

大纲
   su [选项] [用户名]

描述
   su 用于让用户在登录期间变成另外一个用户。后边不带 username 使用时,su 默认会变成超级用户。可选的选项
  ......

选项
  .....
....

2.2.2 sudo做什么?

sudo 命令的作用是用超级用户权限执行单个命令.
需要输入当前用户密码

eg:
$ sudo rm -rf /
sudo -i

为了频繁的执行某些只有超级用户才能执行的权限,而不用每次输入密码,可以使用该命令、
执行该命令后提示符变为“#”而不是“$”

sudo su

sudo su即以超级用户权限运行su命令(切换至root用户),因为sudo命令是输入当前用户密码。
所以在不知道root用户密码的情况下,可以使用该命令切换至root用户,但是只需要当前用户的密码。

2.2.3 su与sudo的区别

[1]
su stands for switch (or substitute) user. With no user name given, it defaults to switching to root. 
It prompts for the password of the user you're switching to.

sudo is used to run a command as root (i.e., with root permissions), or as other users.
It prompts for your password, and checks that you're allowed to use sudo.



[2]
扩展阅读一:Linux下 su命令与su - 命令有什么区别? 
su 是切换到其他用户,但是不切换环境变量(比如说那些export命令查看一下,就知道两个命令的区别了) 
su - 是完整的切换到一个用户环境 
所以建议大家切换用户的时候,尽量使用 su - linuxso 这样 否则可能发现某些命令执行不了 
扩展阅读二:su和sudo的区 别 
    由于su 对切换到超级权限用户root后,权限的无限制性,所以su并不能担任多个管理员所管理的系统。如果用su 来切换到超级用户来管理系统,也不能明确哪些工作是由哪个管理员进行的操作。特别是对于服务器的管理有多人参与管理时,最好是针对每个管理员的技术特长和 管理范围,并且有针对性的下放给权限,并且约定其使用哪些工具来完成与其相关的工作,这时我们就有必要用到 sudo。

通过sudo,我们能把某些超级权限有针对性的下放,并且不需要普通用户知道root密码,所以sudo 相对于权限无限制性的su来说,还是比较安全的,所以sudo 也能被称为受限制的su ;另外sudo 是需要授权许可的,所以也被称为授权许可的su; 
sudo 执行命令的流程是当前用户切换到root(或其它指定切换到的用户),然后以root(或其它指定的切换到的用户)身份执行命令,执行完成后,直接退回到当前用户;而这些的前提是要通过sudo的配置文件/etc/sudoers来进行授权;

References

[1] sudo-su-vs-su-linux

[2] su

how-use-sudo-and-su-commands-linux-introduction


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 rat_racer@qq.com

×

喜欢就点赞,疼爱就打赏