linux 夺命100问

linux 夺命100问

文章目录

  • linux 夺命100问
  • 1)系统启动和关闭
  • 2)帐号简单管理
  • 3)文件系统的日常管理
  • 4)熟悉Linxu/UNIX正则表达式的基本规
  • 5)用户组的简单管理
  • 6)文件系统的权限控制

1)系统启动和关闭

  • 使用自己的账户登录系统,查看系统提示符确定自己使用的shell程序类型别。
    请思考怎样得到当前使用的shell类型?
echo $SHELL
echo $0

比如查看/etc/passwd文件可以获得用户使用的shell吗?

linux 夺命100问_第1张图片

  • 注销和关机命令
  • 用户注销具体有几种操作方法?

字符界面下输入 logout或exit命令 或 ctrl+d

  • 如果是超级用户关机使用什么命令?

haltsys命令一发出,就会立即把系统关闭掉。其优点是系统响应快,强迫性强,因此,该命令只适合于系统上只有一个用户的情况。如果系统上有多个用户在工作,一发出命令,这些用户就被迫退出系统,他们的进程也丢失了。操作方法是:以超级用户登录,输入haltsys,回车,系统显示关机信息时,关掉电源。

shutdown命令是一个用shell语言编写的程序,驻留在/etc目录中。它由超级用户在前台运行,自动执行wall命令,通知正在系统中工作的所有用户,系统将在指定的时间内停机,请做好准备工作,然后从系统中注销。当所有用户已从系统中注销或指定时间已到时,shutdown就执行kill命令把系统中除主控台外的所有进程都终止,接着执行haltsys命令使系统正常停机。

  • 重启系统使用什么命令?

reboot命令是由系统管理员执行的停机程序,reboot实质上是和haltsys命令链接在一起的。reboot和haltsys的唯一区别是它在正常停机后不用按任意键,马上自动引导,重新启动系统。reboot特别适合系统管理员调试机器用。

2)帐号简单管理

  • 添加用户,删除用户,修改个人口令后重新进行登录
useradd -m myname -g group -s /usr/bin/zsh
echo myname :123456 | chpasswd
-c comment用户说明
-d directory 指定用户主目录
-m 若用户的起始目录不存在则创建
-g group指定用户所属组
-s shell 指定用户使用的shell
-u uid为用户分配标识
  • 如果新建用户的时候没有用-d指定家目录,那么用户的家目录是什么?

默认为/home/username

  • 临时关闭(停用)用户账号
passwd -l username 
  • 恢复账号
passwd -u username 
  • 删除用户的shell命令
userdel  -r username

-r将用户目录下的文档一并删除。在其他位置上的文档也将一一找出并删除。

  • 命令usermod能够给用户改名,格式是怎样的?改名后用户组会变化吗?
  • 命令usermod -L username还可以用来锁定使其不能够登录。
选项 说明
-c <备注> 修改用户账号的备注文字
-d <家目录> 修改用户的家目录
-e <有效期限> 修改账号的有效期限
-f <缓冲天数> 修改在密码过期后多少天即关闭该账号
-g <群组> 修改用户所属的群组,组必须存在
-G <附加群组> 修改用户所属的附加群组
-l <账号名称> 修改用户账号名称
-L 锁定用户密码,使密码无效
-s 修改用户登入后所使用的shell
-u 修改用户id
usermod -l 新用户名 旧用户名
  • 查看当前登录在系统中的用户列表、用户总数、系统启动时间等信息;
who -a
  • 查看当前用户的标识符及当前进程的状态 命令ps都有什么主要选项,作用如何?
-A 显示所有的进程,跟-e的效果相同
-a 显示现行终端机下的所有进程,包括其他用户的进程
-u 显示当前用户的进程状态
-x 通常与 a 这个参数一起使用,可列出较完整信息
-l 较长、较详细的将该PID的信息列出
-j 工作的格式(jobs format)
-f 把进程的所有信息都显示出来
-e 表示显示所有继承

查看系统所有进程

ps -aux
USER:表示该进程属于哪个用户
PID:进程id
%CPU:该进程占用CPU资源的百分比
%MEM:该进程占用内存的百分比
VSZ:该进程使用掉的虚拟内存量 (Kbytes)
RSS:该进程占用的固定的内存量 (Kbytes)
TTY:该进程是在那个终端机上面运行,若与终端机无关,则显示?,另外,tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。
STAT:代表该进程目前的状态,主要的状态有:
R:该进程正在运行
S:该进程正在休眠,但可被某些信号(signal)唤醒
D:无法中断的休眠状态(通常为IO进程)
T:该进程已经停止
Z:僵死状态,该进程应该已经终止,但是其父进程却无法正常的终止它,造成zombie(疆尸)程序的状态
W:等待状态,等待内存的分配
<:高优先级的进程
N:低优先级的进程
START:该进程被触发启动的时间
COMMAND:该进程的实际指令
  • 查看日期和时间
 date
  • 如何获取系统命令的使用方法帮助?有几种不同的方式?
ls --help
man ls
info ls
  • 查看文件/etc/inittab的内容,理解其中的主要内容及其作用。

Linux内核启动完成后,内核通过启动第一个用户进程(init进程)来启动其他用户的进程或服务,因此init是Linux系统中所有进程的父进程。

init进程将解析inittab文件,运行操作系统的配置脚本,对Linux系统进行初始化。这个解析与运行过程如下:

linux 夺命100问_第2张图片

  • 学习systemd的有关内容,学习使用systemctl命令设置系统启动类型,

1.启动nfs服务
systemctl start nfs-server.service

2.设置开机自启动
systemctl enable nfs-server.service

3.停止开机自启动
systemctl disable nfs-server.service

4.查看服务当前状态
systemctl status nfs-server.service

5.重新启动某服务
systemctl restart nfs-server.service

查看系统开机启动的服务。

systemctl list-unit-files | grep enabled

3)文件系统的日常管理

  • 如何查看当前工作目录?
pwd
  • 命令touch的用途是什么?还有别的方法新建文件吗?
touch 命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
vim 
echo 123 > xxx
  • 如何分页显示不同的文件?有不同的分页显示方式吗,各有什么特点?
    如果想显示文件中指定的行,都有什么命令?
more less tail 

# 显示文件31到45行
sed -n '31,45p' requirements.txt

# 显示1000行到3000行
cat requirements.txt| head -n 3000 | tail -n +1000
  • 学习命令which,whereis,find的用法比较其差异。
    特别的,使用find命令查找系统任意一个目录下的指定文件;查找符合一定名称模式(如字母f打头的文件,C源程序文件等等)或日期条件的文件。
一、which
使用语法非常简单,可以显示命令本身路径以及命令的alias别名:

二、whereis
使用语法非常简单,可以显示该命令的所有所在位置:

find /etc -name “*.c”

linux 夺命100问_第3张图片

  • 练习tar命令将一个目录连同其下的文件和子目录归档和解档。
tar -czf test.tar.gz test   # 压缩
tar -xzvf test.tar.gz test  # 解压
  • 练习dd命令的用法,比较和cp,mv命令的不同。
    命令dd if=/dev/zero of=filename中if的设置是什么作用?

  • 写出一个多行命令并运行。
dd 可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。
if=文件名:输入文件名,默认为标准输入。即指定源文件。
of=文件名:输出文件名,默认为标准输出。即指定目的文件。
  • 为一个文件建立硬链接和符号链接,观察删除不同链接以后的文件操作情况。
删除硬链接文件或者删除源文件任意之一,文件实体并未被删除
删除源文件,软连接文件依然存在,但是无法访问指向的源文件路径内容了

4)熟悉Linxu/UNIX正则表达式的基本规

  • 学习命令grep的用法。
    在文本中查找符合指定匹配模式的字符串。建立一个多行且含有多种字符和符号的文件,练习找出符合要求的字符所在的行,熟悉正确的使用正则表达式。

找出t开头的用户

 cat /etc/passwd | grep -n "^t"
  • 命令pgrep和grep用途有什么不同?

grep是一个逐行扫描指定文件或文件的程序,返回包含模式的行
pgrep(Process-ID Global Regular Expressions Print)意为查看当前正在运行的进程,并将与选择条件匹配的进程ID列出

5)用户组的简单管理

  • 组的添加、查看组成员、删除(groupadd ,groups,groupdel);
    新建一个用户组,然后在其中添加用户、查看组用户;删除建立的用户组。
    请思考可以直接编辑/etc/group文件来创建一个新组吗?可以删除用户的主要组吗?
    文件/etc/gshadow的内容和作用是什么样的?
groupadd g # 创建组:g
gpasswd -A t1 g # t1 成为组g 管理员
groups  t1  # 查看t1 所在组
gpasswd -a t2 g # t2 成为组g 成员
gpasswd -d t2 g  # 从g 中移除t2
groupdel g  # 删除组

usermod username -g groupname //改变基本组,groupname或者gid都可
usermod username -G groupname //改变附加组,-G只能有一个附加组,想要多个附加组使用-a
  • 命令gpasswd可以为组设定密码,这样做有什么作用?
gpasswd groupname

所以使用 gpasswd groupname 设定密码,就是让知道该群组密码的人可以暂时切换具备 groupname 群组功能的。类似sudo 
  • 命令groupmod主要用做什么?
Linux groupmod命令用于更改群组识别码或名称。

groupadd g
groupmod -n new_g g
  • 命令chgrp的使用又有什么特点呢?

递归改变文件的群组到new_g

 chgrp -vR new_g  test
  • ACL setfacl有关的命令使用
    怎么使用getfacl和setfacl命令来操作文件或目录的访问权限?什么情况特别适合用setfacl命令设置用户权限?

setfacl命令可以用来细分linux下的文件权限。让某一个用户对某一个文件具有某种权限。

setfacl -m u:t1:rw- test   #  给t1 rw
setfacl -m u:t3:rwx test   #  给t3 rwx
getfacl test    # 查看分配

linux 夺命100问_第4张图片

6)文件系统的权限控制

  • chmod、chown和umask命令;
chmod 修改权限
chown 修改用户属主,属组
umask umask决定了我们默认建立一个文件或者目录的默认权限。
  • 特殊的文件权限
    文件权限中有setuid,setgid,stiky三种特殊的权限设置。练习设置文件的三种特殊权限。
SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行中有效
SGID可以对文件生效,也可以对目录生效,此处与SUID不同
目录有 SBIT 权限 除了root可以删除所有文件,普通用户拥有w权限也只能删除自己创建的文件,无法删除其他用户创建的文件

4 = SUID
2 = SGID
1 = SBIT

rwsrwxrw- 代表有setuid标志
rwxrwsrwx 代表有setgid标志
rwxrwxrwt 代表有stickybit标志

chmod 4777 代表设置uid
chmod 2777 代表设置gid
chmod 1777 代表设置stickybit标志

你可能感兴趣的:(everything,linux,服务器,运维)