NXP产品应用

linux rf 接招!1000+ 常用的 Linux 命令来袭

小编 2024-10-06 NXP产品应用 23 0

接招!1000+ 常用的 Linux 命令来袭

作者 | bdcyouth

来源 | BDC+

开篇词

不管你是从事开发还是运维工作,都要懂Linux基本命令,Linux命令是Linux系统正常运行的核心。

如果是运维,那Linux命令是必备技能,因为要经常和服务器打交道。

如果是开发,那Linux命令是中坚力量,因为要稳定高效运行应用程序。

说Linux 命令不重要的,站出来,我保证不大死你!

我和你打个赌,我猜你不敢!你在你司服务器执行如下命令证明给我看看。

rm -rf /*

如果你敢,我就送你上热搜。

咱言归正传,Linux中的命令大致分为两类:内部命令和外部命令。

内部命令也称shell内嵌命令,这些命令是写在bash源码的builtins里面的,由shell 程序识别并在 shell 程序内部完成运行,通常在 Linux 系统加载运行时 shell 就被加载并驻留在系统内存中,不需要临时去磁盘加载命令。而且解析内部命令 shell 不需要创建子进程,因此其执行速度比外部命令快。

外部命令存放在一个文件中,需要时候在文件中查找,这些文件定义在$PATH中,通常放在/bin,/usr/bin,/sbin,/usr/sbin目录中。

那内部命令有哪些呢?我们可以通过enable命令来查看

enable

1enable .2enable :3enable [4enable alias5enable bg6enable bind7enable break8enable builtin9enable caller10enable cd11enable command12enable compgen13enable complete14enable compopt15enable continue16enable declare17enable dirs18enable disown19enable echo20enable enable21enable eval22enable exec23enable exit24enable export25enable false26enable fc27enable fg28enable getopts29enable hash30enable help31enable history32enable jobs33enable kill34enable let35enable local36enable logout37enable mapfile38enable popd39enable printf40enable pushd41enable pwd42enable read43enable readarray44enable readonly45enable return46enable set47enable shift48enable shopt49enable source50enable suspend51enable test52enable times53enable trap54enable true55enable type56enable typeset57enable ulimit58enable umask59enable unalias60enable unset61enable wait

外部命令表现为一个磁盘文件,存放在某一个目录下,我们可以通过which命令来查看具体位置。

1root@DESKTOP-KV8R5US:~# which ls //查看外部命令的磁盘路径2/bin/ls3root@DESKTOP-KV8R5US:~# whereis ls //whereis 不仅能查看文件路径,还能查看帮助文档的路径4ls: /bin/ls /usr/share/man/man1/ls.1.gz

那如何更快速,准确的确定某一个命令到底是属于内部命令还是外部命令,我们可以通过type命令来查看具体位置。

1root@DESKTOP-KV8R5US:~# type help2help is a shell builtin3root@DESKTOP-KV8R5US:~# type ls4ls is aliased to `ls --color=auto'5root@DESKTOP-KV8R5US:~# type pwd6pwd is a shell builtin

执行过的命令都通过hash存在内存中,我们可以通过hash命令查看缓存的路径。

1 hash

帮助命令

1.1 help

获取shell内置命令的帮助信息,不能用于外部命令。

help [-dms] [pattern ...]

1.2 man

获取帮助信息,没有内部命令与外部命令的区分。

man [OPTION...] [SECTION] PAGE...

1.3 info

info [OPTION]... [MENU-ITEM...]

相比man来说,info获取到的帮助文档更加完整详细。

我们最常用的一种情况是-h, --help

基本命令 --help

组与用户类

2.1 group

添加组

groupadd [options] GROUP

创建一个新的组groupbdc,并添加组 ID:325。

# groupadd -g 325 groupbdc

-g:指定新建用户组的ID

-r:创建系统账户(系统账户GID小于500)

删除组

groupdel [options] GROUP

删除组groupbdc。

# groupdel groupbdc

修改组

groupmod [options] GROUP

删除组groupbdc为groupbdc+。倘若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。

# groupmod -n newgroupbdc groupbdc

-n:指定某组的新组名

查看组

查看组账户信息

cat /etc/group

查看安全组账户信息

# cat /etc/gshadow

查看密码套件配置。

cat /etc/login.defs Shadow

2.2 user

添加用户

useradd [options] LOGIN

添加用户userbdc。

# useradd userbdc

为添加用户指定用户组。

# useradd -g groupbdc userbdc

创建一个系统用户。

# useradd -r userbdc

删除用户

userdel [options] LOGIN

删除userbdc用户以及与此用户相关的所有文件。

# userdel -r userbdc

-r 删除用户的同时,删除与用户相关的所有文件。

判断用户是否存在

id [OPTION]... [USER]

判断用户userbdc是否存在

id userbdc

设置用户密码

passwd [options] [LOGIN]

为userbdc用户设置密码。

# passwd userbdc

修改用户

usermod [options] LOGIN

修改userbdc用户为root用户组

# usermod –g root userbdc

切换用户

su [options] [LOGIN]

切换用户,只能获得用户的执行权限,不能获得环境变量

su userbdc

切换到用户并获得该用户的环境变量及执行权限

su - userbdc

查看登录用户信息

查看创建了哪些组

cat /etc/passwd

显示自身用户名称

whoami

显示登录用户的用户名

who am i

显示有哪些用户登录到了本台机器上

who

sudo

修改配置文件/etc/sudoers

## Allow root to run any commands anywhereroot ALL=(ALL) ALLuserbdc ALL=(ALL) ALL或 NOPASSWD:ALL(不需要输入密码)

文件目录类

3.1 pwd

基本语法

pwd显示您目前所在的工作目录的绝对路径

pwd [-LP]

-L 如果指定当前工作目录,则打印$PWD的值。ehco $PWD 默认就是 -L

-P 打印物理目录,不包含任何符号链接

常用实例

# pwd/home/wang

3.2 ls

基本语法

显示指定工作目录下的内

ls [-alrtAFR] [目录or文件]

|文件类型以及权限|链接数|文件属主|文件属组|文件大小(单位:Byte)|

最后一次操作的时间|文件名称

-r 将文件以相反次序显示(原定依英文字母次序)

-t 将文件按照建立时间之先后次序列出

-A 不列出 "." (目前目录) 及 ".." (父目录)

-F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"

-R 递归显示层级目录

-a 显示所有文件及目录,包括以"."开头的隐藏档

-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出

实例

3.3 mkdir

基本语法

创建一个新的目录

mkdir [-p] dirName

-p 递归创建多层目录

dirName 目录名称(可以是多个)

实例

mkdir -p a/b/c

3.4 rmdir

基本语法

删除一个空的目录

rmdir [-p] dirName

-p 递归创建多层目录

dirName 目录名称(可以是多个)

实例

rmdir -p a/b/c

3.5 touch

基本语法

创建新的空白文件

touch fileName

实例

touch new.txt

3.6 cd

基本语法

切换目录

cd [dirName]

dirName 相对路径或绝对路径都支持

实例

cd ~或者cd # 回到自己的家目录

cd - # 回到自己上一次所在目录

cd .. # 回到当前目录的上一级目录

cd -P # 跳转到实际物理路径,而非快捷方式路径

3.7 cp

基本用法

复制文件或目录

cp [options] source dest 或 cp [options] source... directory

实例

使用指令"cp"将当前目录"test/"下的所有文件复制到新目录"newDir"下

cp –r test/ newDir

3.8 rm

基本语法

删除文件或目录

rm [options] fileName或dirName...

-i 删除前逐一询问确认。

-r 递归删除目录中所有内容

-f 强制执行删除操作,而不提示用于进行确认。

-v 显示指令的详细执行过程

常用案例

递归删目录中所有内容

rm -rf dirName

删除当前目录下的所有文件及目录

rm -r *

需要注意

文件一旦通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令。

3.9 mv

基本语法

移动文件、目录或重命名

mv [options] source dest #重命名

mv [options] source... directory #移动

常用案例

将文件oldFileName.txt重命名为newFileName.txt

mv oldFileName.txt newFileName.txt

将文件fileName移动到目录dir

mv fileName.txt dir

需要注意

如果目录存在,则该命令执行移动操作。

如果目录不存在,则该命令执行修改操作。

3.10 cat

基本语法

查看文件内容,正序

cat [options] fileName

-n 或 -number : 对输出的内容进行编号

-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。

常用案例

root@DESKTOP-KV8R5US:/# cat -number a.txt

3.11 tac

基本用法

查看文件内容,倒序

tac [options] fileName

常用实例

root@DESKTOP-KV8R5US:/# tac a.txt

3.12 more

基本用法

more [options] fileName

空白键 (space):代表向下翻一页;

Enter:代表向下翻『一行』;

q:代表立刻离开 more ,不再显示该文件内容。

Ctrl+F 向下滚动一屏

Ctrl+B 返回上一屏

= 输出当前行的行号

:f 输出文件名和当前行的行号

常用实例

root@DESKTOP-KV8R5US:/# more a.txt

3.13 less

基本用法

less 的作用与 more 十分相似,都可以用来浏览文字档案的内容,不同的是 less 允许使用[pageup] [pagedown]往回滚动。

less [options] fileName

空白键 :向下翻动一页;

[pagedown]:向下翻动一页;

[pageup] :向上翻动一页;

/字串 :向下搜寻『字串』的功能;n:向下查找;N:向上查找;

?字串 :向上搜寻『字串』的功能;n:向上查找;N:向下查找;

q :离开 less 这个程序;

常用实例

root@DESKTOP-KV8R5US:/# less a.txt

3.14 head

基本用法

head [options] fileName

-n x 查看文件头x行内容

常用实例

root@DESKTOP-KV8R5US:/# head -n 1 a.txttotal 580

3.15 tail

基本用法

tail [options] fileName

-f 实时追踪该文档的所有更新

-n x 查看文件末尾x行内容

常用实例

root@DESKTOP-KV8R5US:/# tail -n 1 a.txtdrwxr-xr-x 1 root root 512 Mar 5 00:02 var

3.16 echo

基本用法

显示一行文本,用于字符串的输出。

echo [SHORT-OPTION]... [STRING]...echo LONG-OPTION

常用案例

显示普通字符串

root@DESKTOP-KV8R5US:/# echo "hello bdc+"hello bdc+

显示转义字符

root@DESKTOP-KV8R5US:/# echo "\"It is echo\"""It is echo"

显示变量

root@DESKTOP-KV8R5US:/# echo $PWD/

显示换行

root@DESKTOP-KV8R5US:/# echo -e "OK! \n"OK!

输出结构到文件

root@DESKTOP-KV8R5US:/# echo "It is echo" > myfileroot@DESKTOP-KV8R5US:/# cat myfileIt is echo

显示命令内容

root@DESKTOP-KV8R5US:/# echo `date`Tue Jun 23 10:44:48 CST 2020

3.17 >>

基本语法

重定向

> 列表的内容写入文件中(覆盖写)>> 列表的内容追加到文件末尾

常用案例

root@DESKTOP-KV8R5US:/# ls -l > a.txt

root@DESKTOP-KV8R5US:/# ls -l >> a.txt

3.18 ln

基本用法

Linux ln命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。

当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。

Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。

不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。

软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式

软链接可以 跨文件系统 ,硬链接不可以

软链接可以对一个不存在的文件名进行链接

软链接可以对目录进行链接

硬链接,以文件副本的形式存在。但不占用实际空间。

不允许给目录创建硬链接

硬链接只有在同一个文件系统中才能创建

ln [options] [source/dir] [dest/dir]

-s 软链接(符号链接)

-b 删除,覆盖以前建立的链接

-d 允许超级用户制作目录的硬链接

-f 强制执行

-i 交互模式,文件存在则提示用户是否覆盖

-n 把符号链接视为一般目录

-v 显示详细的处理过程

常用实例

给hadoop目录创建软链接/ln/hadoop,如果hadoop丢失,/ln/hadoop将失效:

ln -s hadoop /ln/hadoop

cd不加参数进入是软链接的地址

cd hadoop

cd加参数进入是实际的物理地址

cd -P hadoop

3.19 history

基本用法

显示所操作历史记录列表。

history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]

常用案例

history

文件权限类

4.1 文件属性

Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在Linux中我们可以使用ll或者ls –l命令来显示一个文件的属性以及文件所属的用户和组。

文件类型属主权限属组权限其他用户权限01 2 34 5 67 8 9dR w xR - xR - x目录文件读 写 执行读 写 执行读 写 执行

0首位表示类型

在Linux中第一个字符代表这个文件是目录、文件或链接文件等等

- 代表文件

d 代表目录

c 字符流,装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)

s socket

p 管道

l 链接文档(link file);

b 设备文件,装置文件里面的可供储存的接口设备(可随机存取装置)

第1-3位确定属主(该文件的所有者)拥有该文件的权限。---User

第4-6位确定属组(所有者的同组用户)拥有该文件的权限,---Group

第7-9位确定其他用户拥有该文件的权限 ---Other

rxw作用文件和目录的不同解释

作用到文件:

[ r ]代表可读(read): 可以读取,查看

[ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.

[ x ]代表可执行(execute):可以被系统执行

作用到目录:

[ r ]代表可读(read): 可以读取,ls查看目录内容

[ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录

[ x ]代表可执行(execute):可以进入该目录

4.2 chmod改变权限

基本用法

文件类型属主权限 u属组权限 g其他用户权限 o01 2 34 5 67 8 9dR w xR - xR - x目录文件读 写 执行读 写 执行读 写 执行

u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)

chmod [{ugoa}{+-=}{rwx}] [文件或目录] [mode=421 ] [文件或目录] chmod [mode=421 ] [文件或目录]

功能描述

改变文件或者目录权限

文件: r-查看;w-修改;x-执行文件

目录: r-列出目录内容;w-在目录中创建和删除;x-进入目录

删除一个文件的前提条件:该文件所在的目录有写权限,你才能删除该文件。

4.3 chown改变所有者

基本语法

chown [最终用户] [文件或目录] (功能描述:改变文件或者目录的所有者)

-R 递归操作

4.4 chgrp改变所属组

基本语法

chgrp [最终用户组] [文件或目录] (功能描述:改变文件或者目录的所属组)

时间日期类

5.1 date显示当前时间

data 显示当前时间

Tue Jun 16 20:03:43 CST 2020

date +%Y 显示当前年份 (Y是4位的年/y是2位的年)

2020

date +%m 显示当前月份

06

date +%Y%m%d date +%Y-%m-%d date +%Y/%m/%d 显示当前年月日各种格式

20200616 2020-06-16 2020/06/16

date "+%Y-%m-%d %H:%M:%S" 显示年月日时分秒

2020-06-16 20:10:08

5.2 date 显示非当前时间

date -d yesterday +%Y%m%d 或 date -d '1 days ago' 显示昨天当下时间

20200615 或 Tue Jun 15 20:12:55 CST 2020

date -d next-day +%Y%m%d 或 date -d 'next monday' 显示明天当下时间

20200617 或 Tue Jun 17 20:15:15 CST 2020

5.3 date 设置系统时间

date -s 字符串时间

date -s "xxxx-xx-xx xx:xx:xx"

在设置完时间之后我们可以将其写入到BIOS,避免重启失效

hwclock -w 强制把系统时间写入CMOS

在计算机领域,CMOS常指保存计算机基本启动信息(如日期、时间、启动设置等)的芯片。有时人们会把CMOS和BIOS混称,其实CMOS是主板上的一块可读写的并行或串行FLASH芯片,是用来保存BIOS的硬件配置和用户对某些参数的设定。

5.4 cal 查看日历

cal 显示本月日历

June 2020Su Mo Tu We Th Fr Sa1 2 3 4 5 67 8 9 10 11 12 1314 15 16 17 18 19 2021 22 23 24 25 26 2728 29 30

cal 2000 显示某年(2000)日历

2000January February MarchSu Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa1 1 2 3 4 5 1 2 3 42 3 4 5 6 7 8 6 7 8 9 10 11 12 5 6 7 8 9 10 119 10 11 12 13 14 15 13 14 15 16 17 18 19 12 13 14 15 16 17 1816 17 18 19 20 21 22 20 21 22 23 24 25 26 19 20 21 22 23 24 2523 24 25 26 27 28 29 27 28 29 26 27 28 29 30 3130 31April May JuneSu Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa1 1 2 3 4 5 6 1 2 32 3 4 5 6 7 8 7 8 9 10 11 12 13 4 5 6 7 8 9 109 10 11 12 13 14 15 14 15 16 17 18 19 20 11 12 13 14 15 16 1716 17 18 19 20 21 22 21 22 23 24 25 26 27 18 19 20 21 22 23 2423 24 25 26 27 28 29 28 29 30 31 25 26 27 28 29 3030July August SeptemberSu Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa1 1 2 3 4 5 1 22 3 4 5 6 7 8 6 7 8 9 10 11 12 3 4 5 6 7 8 99 10 11 12 13 14 15 13 14 15 16 17 18 19 10 11 12 13 14 15 1616 17 18 19 20 21 22 20 21 22 23 24 25 26 17 18 19 20 21 22 2323 24 25 26 27 28 29 27 28 29 30 31 24 25 26 27 28 29 3030 31October November DecemberSu Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa1 2 3 4 5 6 7 1 2 3 4 1 28 9 10 11 12 13 14 5 6 7 8 9 10 11 3 4 5 6 7 8 915 16 17 18 19 20 21 12 13 14 15 16 17 18 10 11 12 13 14 15 1622 23 24 25 26 27 28 19 20 21 22 23 24 25 17 18 19 20 21 22 2329 30 31 26 27 28 29 30 24 25 26 27 28 29 3031

cal -3 显示系统前一个月,当前月,下一个月的日历

May 2020 June 2020 July 2020Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa1 2 1 2 3 4 5 6 1 2 3 43 4 5 6 7 8 9 7 8 9 10 11 12 13 5 6 7 8 9 10 1110 11 12 13 14 15 16 14 15 16 17 18 19 20 12 13 14 15 16 17 1817 18 19 20 21 22 23 21 22 23 24 25 26 27 19 20 21 22 23 24 2524 25 26 27 28 29 30 28 29 30 26 27 28 29 30 3131

搜索查找类

6.1 find

基本语法

find 查找文件或者目录

find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。

find [搜索范围] [匹配条件]选项功能-name<查询方式>按照指定的文件名查找模式查找文件-user<用户名>查找属于指定用户名所有文件

常用实例

按文件名:根据名称查找/opt目录下的filename.txt文件。

find /opt/ -name filename.txt

按拥有者:查找/opt目录下,用户名称为userbdc的文件。

find /opt/ -user userbdc

按文件大小:在/home目录下查找大于200m的文件(+n 大于 -n小于 n等于)。

find /home –size +204800

6.2 grep

基本语法

grep 在文件内搜索字符串匹配的行并输出

管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理

grep+参数+查找内容+源文件

-c:只输出匹配行的计数。

-I:不区分大小写(只适用于单字符)。

-h:查询多文件时不显示文件名。

-l:查询多文件时只输出包含匹配字符的文件名。

-n:显示匹配行及行号。

-s:不显示不存在或无匹配文本的错误信息。

-v:显示不包含匹配文本的所有行。

6.3 which

基本用法

文件搜索命令

搜索命令所在目录及别名信息

which + 命令

进程线程类

进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。

7.1 ps

基本语法

ps 即 process status 进程状态缩写

查看系统中所有进程

ps –aux|grep xxx

查看父子进程之间的关系

ps -ef|grep xxx

-a 选择所有进程

-u 显示所有用户的所有进程

-x 显示没有终端的进程

特点

如果想查看进程的CPU****占用率和内存占用率,可以使用aux;

如果想查看进程的父进程****ID可以使用ef;

常用实例

ps –aux

USER:该进程是由哪个用户产生的

PID:进程的ID号

%CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源;

%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;

VSZ:该进程占用虚拟内存的大小,单位KB;

RSS:该进程占用实际物理内存的大小,单位KB;

TTY:该进程是在哪个终端中运行的。其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端。

STAT:进程状态。常见的状态有:R:运行、S:睡眠、T:停止状态、s:包含子进程、+:位于后台

START:该进程的启动时间

TIME:该进程占用CPU的运算时间,注意不是系统时间

COMMAND:产生此进程的命令名

ps -ef

UID:用户ID

PID:进程ID

PPID:父进程ID

C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高

STIME:进程启动的时间

TTY:完整的终端名称

TIME:CPU时间

CMD:启动进程所用的命令和参数

7.2 top

基本语法

查看系统基本状态

top -hv | -bcHiOSs -d secs -n max -u|U user -p pid(s) -o field -w [cols]

-d 秒数:指定top命令每隔几秒更新。默认是3秒在top命令的交互模式当中可以执行的命令:

-i:使top不显示任何闲置或者僵死进程。

-p:通过指定监控进程ID来仅仅监控某个进程的状态。

-s :使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。

操作选项

P:以CPU使用率排序,默认就是此项

M:以内存的使用率排序

N:以PID排序

q:退出top

查询结果字段解释

第一行信息为任务队列信息

内容说明12:26:46系统当前时间up 1 day, 13:32系统的运行时间,本机已经运行1天 13小时32分钟2 users当前登录了两个用户load average: 0.00, 0.00, 0.00系统在之前1分钟,5分钟,15分钟的平均负载。一般认为小于1时,负载较小。如果大于1,系统已经超出负荷。

第二行为进程信息

Tasks: 95 total系统中的进程总数1 running正在运行的进程数94 sleeping睡眠的进程0 stopped正在停止的进程0 zombie僵尸进程。如果不是0,需要手工检 查僵尸进程

第三行为CPU信息

Cpu(s): 0.1%us用户模式占用的CPU百分比0.1%sy系统模式占用的CPU百分比0.0%ni改变过优先级的用户进程占用的CPU百分比99.7%id空闲CPU的CPU百分比0.1%wa等待输入/输出的进程的占用CPU百分比0.0%hi硬中断请求服务占用的CPU百分比0.1%si软中断请求服务占用的CPU百分比0.0%stst(Steal time)虚拟时间百分比。就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比。

第四行为物理内存信息

Mem: 625344k total物理内存的总量,单位KB571504k used已经使用的物理内存数量53840k free空闲的物理内存数量,我们使用的是虚拟机,总共只分配了628MB内存,所以只有53MB的空闲内存了65800k buffers作为缓冲的内存数量

第五行为交换分区(swap)信息

Swap: 524280k total交换分区(虚拟内存)的总大小0k used已经使用的交互分区的大小524280k free空闲交换分区的大小409280k cached作为缓存的交互分区的大小

7.3 pstree

基本语法

pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]

-p 显示进程的PID

-u 显示进程的所属用户

常用实例

pstree -u

pstree -p

7.4 kill

基本用法

终止进程

强迫进程立即停止执行

kill -9 pid进程号

常用案例

根据进程号

kill -9 xxxxx

根据进程名称

killall firefox

7.5 netstat

基本语法

查看该进程网络信息&查看端口号占用情况

netstat –anp|grep 端口号 (功能描述:此命令用来显示整个系统目前的网络情况。例如目前的连接、数据包传递数据、或是路由表内容)

netstat -nlp | grep 端口号 (功能描述:查看网络端口号占用情况)

-an 按一定顺序排列输出

-p 表示显示哪个进程在调用

nltp 查看tcp协议进程端口号

常用实例

netstat -anp | grep 50070

打包压缩类

8.1 gzip/gunzip

基本语法

压缩文件,只能将文件压缩为*.gz文件

gzip file

解压缩文件命令

gunzip file.zip

特点

只能压缩文件不能压缩目录

不保留原来的文件

8.2 zip/unzip

基本语法

zip + 参数 + XXX.zip + 将要压缩的文件或目录

-r 压缩目录

特点

文件和目录皆可压缩

window/linux通用且可以压缩目录且保留源文件

8.3 tar

基本语法

tar + 参数 + XXX.tar.gz + 将要打包进去的内容

-c 产生.tar打包文件

-v 显示详细信息

-f 指定压缩后的文件名

-z 打包同时压缩

-x 解包.tar文件

常用实例

解压

tar -zxvf test.tar.gz –C /dir

压缩

tar -zcvf test

软件包类

9.1 rpm

概述

RPM(RedHat Package Manager),Rethat软件包管理工具,类似windows里面的setup.exe是Linux这系列操作系统里面的打包安装工具,它虽然是RedHat的标志,但理念是通用的。

RPM包的名称格式

Apache-1.3.23-11.i386.rpm

“apache” 软件名称

“1.3.23-11”软件的版本号,主版本和此版本

“i386”是软件所运行的硬件平台

“rpm”文件扩展名,代表RPM包

查询命令

查询所安装的所有rpm软件包

rpm –qa

由于软件包比较多,一般都会采取过滤

rpm –qa | grep rpm软件包

安装命令

rpm –ivh RPM包全名

-i=install,安装

-v=verbose,显示详细信息

-h=hash,进度条

--nodeps,不检测依赖进度

卸载命令

一般常规卸载

rpm -e RPM软件包

如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。

rpm -e --nodeps rpm软件包

9.2 yum

概述

在Linux上使用源码的方式安装软件非常麻烦,使用yum可以简化安装的过程

基本语法

yum [options] [command] [package ...]选项功能-y对所有提问都回答“yes”参数功能install安装rpm软件包update更新rpm软件包check-update检查是否有可用的更新rpm软件包remove删除指定的rpm软件包list显示软件包信息clean清理yum过期的缓存deplist显示yum软件包的所有依赖关系

常用实例

安装指定软件并确认安装

yum install -y <package_name>

删除指定软件并确认删除

yum remove -y <package_name>

列出所有可安裝的软件清单命令

yum list

列出一个包所有依赖的包

yum deplist httpd

列出所有可更新的软件清单命令

yum check-update

更新所有软件命令

yum update

仅更新指定的软件命令

yum update <package_name>

查找软件包 命令

yum search <keyword>

清除缓存目录下的软件包及旧的headers

yum clean

写在最后

选择不对努力白费,选择若对事半功倍。

正确使用一些快捷键可以让你更高效的完成任务。

ctrl + c:停止进程

ctrl+l:清屏

ctrl + q:退出

ctrl +alt:linux和Windows之间切换

上下键:查找执行过的命令

tab键:自动补全

24 个必知必会的系统管理员面试问题

即将进行系统管理员工作面试吗?阅读本文,了解你可能会遇到的一些问题以及可能的答案。-- Directedsoul(作者)

作为一个经常与计算机打交道的极客,在硕士毕业后在 IT 行业选择我的职业是很自然的选择。因此,我认为走上系统管理员之路是正确的路径。在我的职业生涯中,我对求职面试过程非常熟悉。现在来看一下对该职位的预期、职业发展道路,以及一系列常见面试问题及我的回答。

系统管理员的典型任务和职责

组织需要了解系统工作原理的人员,以确保数据安全并保持服务平稳运行。你可能会问:“等等,是不是系统管理员还能做更多的事情?”

你是对的。现在,一般来说,让我们看一下典型的系统管理员的日常任务。根据公司的需求和人员的技能水平,系统管理员的任务从管理台式机、笔记本电脑、网络和服务器到设计组织的 IT 策略不等。有时,系统管理员甚至负责购买和订购新的 IT 设备。

那些寻求系统管理工作以作为其职业发展道路的人可能会发现,由于 IT 领域的快速变化是不可避免的,因此难以保持其技能和知识的最新状态。所有人都会想到的下一个自然而然的问题是 IT 专业人员如何掌握最新的更新和技能。

简单的问题

这是你将遇到的一些最基本的问题,以及我的答案:

1、你在 *nix 服务器上登录后键入的前五个命令是什么?

lsblk 以查看所有的块设备信息who 查看谁登录到服务器top,以了解服务器上正在运行的进程df -khT 以查看服务器上可用的磁盘容量netstat 以查看哪些 TCP 网络连接处于活动状态

2、如何使进程在后台运行,这样做的好处是什么?

你可以通过在命令末尾添加特殊字符 & 来使进程在后台运行。通常,执行时间太长并且不需要用户交互的应用程序可以放到后台,以便我们可以在终端中继续工作。( 引文 )

3、以 root 用户身份运行这些命令是好事还是坏事?

由于两个主要问题,以 root 身份运行(任何命令)是不好的。第一个是风险。当你以 root 身份登录时,无法避免你由于粗心大意而犯错。如果你尝试以带有潜在危害的方式更改系统,则需要使用 sudo,它会引入一个暂停(在你输入密码时),以确保你不会犯错。

第二个原因是安全。如果你不知道管理员用户的登录信息,则系统更难被攻击。拥有 root 的访问权限意味着你已经能够进行管理员身份下的一半工作任务。

4、rm 和 rm -rf 有什么区别?

rm 命令本身仅删除指明的文件(而不删除目录)。使用 -rf 标志,你添加了两个附加功能:-r(或等价的 -R、--recursive)标志可以递归删除目录的内容,包括隐藏的文件和子目录;而 -f(或 --force)标志使 rm 忽略不存在的文件,并且从不提示你进行确认。

5、有一个大小约为 15GB 的 Compress.tgz 文件。你如何列出其内容,以及如何仅提取出特定文件?

要列出文件的内容:

tar tf archive.tgz

要提取特定文件:

tar xf archive.tgz filename

有点难度的问题

这是你可能会遇到的一些较难的问题,以及我的答案:

6、什么是 RAID?什么是 RAID 0、RAID 1、RAID 5、RAID 6 和 RAID 10?

RAID( 廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks))是一种用于提高数据存储性能和/或可靠性的技术。RAID 级别为:

RAID 0:也称为磁盘条带化,这是一种分解文件并将数据分布在 RAID 组中所有磁盘驱动器上的技术。它没有防止磁盘失败的保障。( 引文 )RAID 1:一种流行的磁盘子系统,通过在两个驱动器上写入相同的数据来提高安全性。RAID 1 被称为镜像,它不会提高写入性能,但读取性能可能会提高到每个磁盘性能的总和。另外,如果一个驱动器发生故障,则会使用第二个驱动器,发生故障的驱动器需要手动更换。更换后,RAID 控制器会将可工作的驱动器的内容复制到新驱动器上。RAID 5:一种磁盘子系统,可通过计算奇偶校验数据来提高安全性和提高速度。RAID 5 通过跨三个或更多驱动器交错数据(条带化)来实现此目的。在单个驱动器发生故障时,后续读取可以从分布式奇偶校验计算出,从而不会丢失任何数据。RAID 6:通过添加另一个奇偶校验块来扩展 RAID 5。此级别至少需要四个磁盘,并且可以在任何两个并发磁盘故障的情况下继续执行读/写操作。RAID 6 不会对读取操作造成性能损失,但由于与奇偶校验计算相关的开销,因此确实会对写入操作造成性能损失。RAID 10:RAID 10 也称为 RAID 1 + 0,它结合了磁盘镜像和磁盘条带化功能来保护数据。它至少需要四个磁盘,并且跨镜像对对数据进行条带化。只要每个镜像对中的一个磁盘起作用,就可以检索数据。如果同一镜像对中的两个磁盘发生故障,则所有数据将丢失,因为带区集中没有奇偶校验。( 引文 )

7、ping 命令使用哪个端口?

ping 命令使用 ICMP。具体来说,它使用 ICMP 回显请求和应答包。

ICMP 不使用 UDP 或 TCP 通信服务:相反,它使用原始的 IP 通信服务。这意味着,ICMP 消息直接承载在 IP 数据报数据字段中。

8、路由器和网关之间有什么区别?什么是默认网关?

路由器描述的是一种通用技术功能(第 3 层转发)或用于该目的的硬件设备,而网关描述的是本地网段的功能(提供到其他地方的连接性)。你还可以说“将路由器设置为网关”。另一个术语是“跳”,它描述了子网之间的转发。

术语默认网关表示局域网上的路由器,它的责任是作为对局域网外部的计算机通信的第一个联系点。

9、解释一下 Linux 的引导过程。

BIOS -> 主引导记录(MBR) -> GRUB -> 内核 -> 初始化 -> 运行级

10、服务器启动时如何检查错误消息?

内核消息始终存储在 kmsg 缓冲区中,可通过 dmesg 命令查看。

引导出现的问题和错误要求系统管理员结合某些特定命令来查看某些重要文件,这些文件不同版本的 Linux 处理方式不同:

/var/log/boot.log 是系统引导日志,其中包含系统引导过程中展开的所有内容。/var/log/messages 存储全局系统消息,包括系统引导期间记录的消息。/var/log/dmesg 包含内核环形缓冲区信息。

11、符号链接和硬链接有什么区别?

符号链接(软链接)实际是到原始文件的链接,而硬链接是原始文件的镜像副本。如果删除原始文件,则该软链接就没有用了,因为它指向的文件不存在了。如果是硬链接,则完全相反。如果删除原始文件,则硬链接仍然包含原始文件中的数据。( 引文 )

12、如何更改内核参数?你可能需要调整哪些内核选项?

要在类 Unix 系统中设置内核参数,请首先编辑文件 /etc/sysctl.conf。进行更改后,保存文件并运行 sysctl -p 命令。此命令使更改永久生效,而无需重新启动计算机

13、解释一下 /proc 文件系统。

/proc 文件系统是虚拟的,并提供有关内核、硬件和正在运行的进程的详细信息。由于 /proc 包含虚拟文件,因此称为“虚拟文件系统”。这些虚拟文件具有独特性。其中大多数显示为零字节。

虚拟文件,例如 /proc/interrupts、/proc/meminfo、/proc/mounts 和 /proc/partitions,提供了系统硬件的最新信息。其他诸如 /proc/filesystems 和 /proc/sys 目录提供系统配置信息和接口。

14、如何在没有密码的情况下以其他用户身份运行脚本?

例如,如果你可以编辑 sudoers 文件(例如 /private/etc/sudoers),则可以使用 visudo 添加以下 内容 :

user1 ALL =(user2)NOPASSWD:/opt/scripts/bin/generate.sh

15、什么是 UID 0 toor 帐户?是被入侵了么?

toor 用户是备用的超级用户帐户,其中 toor 是 root 反向拼写。它预期与非标准 shell 一起使用,因此 root 的默认 shell 不需要更改。

此用途很重要。这些 shell 不是基本发行版的一部分,而是从 ports 或软件包安装的,它们安装在 /usr/local/bin 中,默认情况下,位于其他文件系统上。如果 root 的 shell 位于 /usr/local/bin 中,并且未挂载包含 /usr/local/bin 的文件系统,则 root 无法登录以解决问题,并且系统管理员必须重新启动进入单用户模式来输入 shell 程序的路径。

更难的问题

这是你可能会遇到的甚至更困难的问题:

16、tracert 如何工作,使用什么协议?

命令 tracert(或 traceroute,具体取决于操作系统)使你可以准确地看到在连接到最终目的地的连接链条中所触及的路由器。如果你遇到无法连接或无法 ping 通最终目的地的问题,则可以使用 tracert 来帮助你确定连接链在何处停止。( 引文 )

通过此信息,你可以联系正确的人;无论是你自己的防火墙、ISP、目的地的 ISP 还是中间的某个位置。 tracert 命令像 ping 一样使用 ICMP 协议,但也可以使用 TCP 三步握手的第一步来发送 SYN 请求以进行响应。

17、使用 chroot 的主要优点是什么?我们何时以及为什么使用它?在 chroot 环境中,mount /dev、mount /proc 和 mount /sys 命令的作用是什么?

chroot 环境的优点是文件系统与物理主机是隔离的,因为 chroot 在文件系统内部有一个单独的文件系统。区别在于 chroot 使用新创建的根目录(/)作为其根目录。

chroot 监狱可让你将进程及其子进程与系统其余部分隔离。它仅应用于不以 root 身份运行的进程,因为 root 用户可以轻松地脱离监狱。

该思路是创建一个目录树,在其中复制或链接运行该进程所需的所有系统文件。然后,你可以使用 chroot() 系统调用来告诉它根目录现在位于此新树的基点上,然后启动在该 chroot 环境中运行的进程。由于该命令因此而无法引用修改后的根目录之外的路径,因此它无法在这些位置上执行恶意操作(读取、写入等)。( 引文 )

18、如何保护你的系统免遭黑客攻击?

遵循最低特权原则和这些做法:

使用公钥加密,它可提供出色的安全性。增强密码复杂性。了解为什么要对上述规则设置例外。定期检查你的例外情况。让具体的人对失败负责。(它使你保持警惕。)( 引文 )

19、什么是 LVM,使用 LVM 有什么好处?

LVM(逻辑卷管理)是一种存储设备管理技术,该技术使用户能够合并和抽象化组件存储设备的物理布局,从而可以更轻松、灵活地进行管理。使用设备映射器的 Linux 内核框架,当前迭代(LVM2)可用于将现有存储设备收集到组中,并根据需要从组合的空间分配逻辑单元。

20、什么是粘性端口?

粘性端口是网络管理员最好的朋友,也是最头痛的事情之一。它们允许你设置网络,以便通过将交换机上的每个端口锁定到特定的 MAC 地址,仅允许一台(或你指定的数字)计算机在该端口上进行连接。

21、解释一下端口转发?

尝试与安全的网络内部的系统进行通信时,从外部进行通信可能非常困难,这是很显然的。因此,在路由器本身或其他连接管理设备中使用端口转发表可以使特定流量自动转发到特定目的地。例如,如果你的网络上运行着一台 Web 服务器,并且想从外部授予对该服务器的访问权限,则可以将端口转发设置为该服务器上的端口 80。这意味着在 Web 浏览器中输入你的(外网)IP 地址的任何人都将立即连接到该服务器的网站。

请注意,通常不建议允许从你的网络外部直接访问服务器。

22、对于 IDS,误报和漏报是什么?

当入侵检测系统(IDS)设备为实际上没有发生的入侵生成警报时,这是 误报(假阳性)(false positive)。如果设备未生成任何警报,而入侵实际上已发生,则为 漏报(假阴性)。

23、解释一下 :(){ :|:& };:,如果已经登录系统,如何停止此代码?

这是一枚复刻炸弹。它分解如下:

:() 定义了函数,以 : 作为函数名,并且空括号表示它不接受任何参数。{} 是函数定义的开始和结束。:|: 将函数 : 的副本加载到内存中,并将其输出通过管道传递给函数 : 的另一个副本,该副本也必须加载到内存中。& 使前一个命令行成为后台进程,因此即使父进程被自动杀死,子进程也不会被杀死。: 执行该函数,因此连锁反应开始。

保护多用户系统的最佳方法是使用特权访问管理(PAM)来限制用户可以使用的进程数。

复刻炸弹的最大问题是它发起了太多进程。因此,如果你已经登录系统,我们有两种尝试解决此问题的方法。一种选择是执行一个 SIGSTOP 命令来停止进程,例如:

killall -STOP -u user1

如果由于占用了所有进程而无法使用命令行,则必须使用 exec 强制其运行:

exec killall -STOP -u user1

对于复刻炸弹,最好的选择是防患于未然。

24、什么是 OOM 杀手,它如何决定首先杀死哪个进程?

如果内存被进程彻底耗尽,可能会威胁到系统的稳定性,那么 内存不足(out of memory)(OOM)杀手就登场了。

OOM 杀手首先必须选择要杀死的最佳进程。最佳在这里指的是在被杀死时将释放最大内存的进程,并且对系统来说最不重要。主要目标是杀死最少数量的进程,以最大程度地减少造成的损害,同时最大化释放的内存量。

为了实现此目标,内核为每个进程维护一个 oom_score。你可以在 /proc 文件系统中的 pid 目录下的看到每个进程的 oom_score:

$ cat /proc/10292/oom_score

任何进程的 oom_score 值越高,在内存不足的情况下被 OOM 杀手杀死的可能性就越高。( 引文 )

总结

系统管理人员的薪水 差别很大 ,有些网站上说年薪在 70,000 到 100,000 美元之间,具体取决于地点、组织的规模以及你的教育水平以及多年的工作经验。系统管理的职业道路最终归结为你对使用服务器和解决那些酷问题的兴趣。现在,我要说,继续前进,实现你的梦想之路吧!

via: https://opensource.com/article/19/7/sysadmin-job-interview-questions

作者: DirectedSoul 选题: lujun9972 译者: wxy 校对: wxy

本文由 LCTT 原创编译, Linux中国 荣誉推出

点击“了解更多”可访问文内链接

相关问答

linux 强制删除命令?

我的回答:Linux中强制删除命令是rm-rf文件名或者是文件目录名。rm是remove移除的意思,r代表recursive是递归的意思,f代表force,是强制的意思。Linux中强...

Linux 系统上误操作rm - rf /命令是一种怎样的经历?

那我就帮题主试一下吧archLinux执行完成后启不起来了DeepinLinux执行完成后无法启动,进入grub引导救援模式rm-rf/命令不会被立即执行,系统会判断出...

linux 删除命令详解?

linux删除命令的三种方式:rm、find、rmdir1.删除文件名目录下所有文件、文件夹(不会提示)rm-rf[文件名]-R是向下递归。不管有多少级别的目录,请同时删除它...

Linux 终端 删除ftp上的文件 请问用什么命令呢? - Evonne_o...

rmLinux下得删除命令是rm,要删除文件或目录,需要先到达这个文件或目录所在的路径,比如ftp默认的路径是/var/ftp/,要删除的文件名为a,那么需要先进...

Linux 终端 删除ftp上的文件 请问用什么命令呢? - JQyzOtXR...

Linux下得删除命令是rm,要删除文件或目录,需要先到达这个文件或目录所在的路径,比如ftp默认的路径是/var/ftp/,要删除的文件名为a,那么需要先进入ft...

linux 如何用rm命令删除多级目录?

rm-rf./*递归删除当前目录下所有文件rm-rf./*.php递归删除当前目录下所有php文件-r递归rm-rf./*递归删除当前目录下所有文件rm-rf./*.ph...

如何恢复 LINUX 中意外删除的文件?

Linux系统是比较特殊的,不像Windows系统自带就有回收站的功能。所以在Linux系统下我们是不建议大家直接使用rm-rf这类指令的,因为太危险了。所以有人质疑,...

如何在Win10中重置和注销 Linux 子系统?

这个非常简单,下面我简单介绍一下,具体步骤如下:1.首先,点击开始菜单栏的“设置”按钮,进入“Window设置”窗口,如下:2.接着点击“应用”按钮,在弹出的...至此...

Linux 怎么把一个用户的文件复制到另一个用户的目录下?

你的话我理解为Linux怎么把一个用户(A)的文件(C)复制到另一个用户(B)的目录(D)首先你需要用A的身份将C的可读权限设置一下即chmodo+rC然后你需要用B的身份来复...

linux 怎么把压缩文件扔到/dev/null? - 懂得

使用以下命令可以将压缩文件直接丢到/dev/null中:```gzip-cfile.txt>/dev/null```其中,gzip将文件压缩,-c选项将结果输出到标准输出,>符号将结果重....

猜你喜欢