前端知识总结之linux

问题一:

绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?

答案:
绝对路径: 如/etc/init.d
当前目录和上层目录: ./ …/
主目录: ~/
切换目录: cd

问题二:

怎么查看当前进程?怎么执行退出?怎么查看当前路径?
答案:
查看当前进程: ps
执行退出: exit
查看当前路径: pwd

问题三:

怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当前用户 id?查看指定帮助用什么命令?
答案:
清屏: clear
退出当前命令: ctrl+c 彻底退出
执行睡眠 : ctrl+z 挂起当前进程fg 恢复后台
查看当前用户 id: ”id“:查看显示目前登陆账户的 uid 和 gid 及所属分组及用户名
查看指定帮助: 如 man adduser 这个很全 而且有例子; adduser --help 这个告诉你一些常用参数; info adduesr;

问题四:

Ls 命令执行什么功能? 可以带哪些参数,有什么区别?
答案:
ls 执行的功能: 列出指定目录中的目录,以及文件
哪些参数以及区别: a 所有文件l 详细信息,包括大小字节数,可读可写可执行的权限等

问题五:

建立软链接(快捷方式),以及硬链接的命令。
答案:
软链接: ln -s slink source
硬链接: ln link source

问题六:

目录创建用什么命令?创建文件用什么命令?复制文件用什么命令?
答案:
创建目录: mkdir
创建文件:典型的如 touch,vi 也可以创建文件,其实只要向一个不存在的文件输出,都会创建文件
复制文件: cp 7. 文件权限修改用什么命令?格式是怎么样的?
文件权限修改: chmod
格式如下:

chmodu+xfile给file的属主增加执行权限 chmod 751 file 给 file 的属主分配读、写、执行(7)的权限,给 file 的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限
chmodu=rwx,g=rx,o=xfile上例的另一种形式 chmod =r file 为所有用户分配读权限
chmod444file同上例 chmod a-wx,a+r file同上例
$ chmod -R u+r directory 递归地给 directory 目录下所有文件和子目录的属主分配读的权限

问题八:

查看文件内容有哪些命令可以使用?
答案:
vi 文件名 #编辑方式查看,可修改
cat 文件名 #显示全部文件内容
more 文件名 #分页显示文件内容
less 文件名 #与 more 相似,更好的是可以往前翻页
tail 文件名 #仅查看尾部,还可以指定行数
head 文件名 #仅查看头部,还可以指定行数

问题九:

随意写文件命令?怎么向屏幕输出带空格的字符串,比如”hello world”?

答案:

写文件命令:vi

向屏幕输出带空格的字符串:echo hello world

问题十:

终端是哪个文件夹下的哪个文件?黑洞文件是哪个文件夹下的哪个命令?
答案:
终端 /dev/tty

黑洞文件 /dev/null

问题十一:

移动文件用哪个命令?改名用哪个命令?
答案:
mv mv

问题十二:

复制文件用哪个命令?如果需要连同文件夹一块复制呢?如果需要有提示功能呢?
答案:
cp cp -r ????

问题十三:

删除文件用哪个命令?如果需要连目录及目录下文件一块删除呢?删除空文件夹用什么命令?
答案:
rm rm -r rmdir

问题十四:

Linux 下命令有哪几种可使用的通配符?分别代表什么含义?
答案:
“?”可替代单个字符。

“*”可替代任意多个字符。

方括号“[charset]”可替代 charset 集中的任何单个字符,如[a-z],[abABC]

问题十五:

用什么命令对一个文件的内容进行统计?(行号、单词数、字节数)
答案:

wc 命令 - c 统计字节数 - l 统计行数 - w 统计字数。

问题十六:

Grep 命令有什么用? 如何忽略大小写? 如何查找不含该串的行?
答案:
是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。
grep [stringSTRING] filename grep [^string] filename

问题十七:

Linux 中进程有哪几种状态?在 ps 显示出来的信息中,分别用什么符号表示的?
答案:
(1)、不可中断状态:进程处于睡眠状态,但是此刻进程是不可中断的。不可中断, 指进程不响应异步信号。
(2)、暂停状态/跟踪状态:向进程发送一个 SIGSTOP 信号,它就会因响应该信号 而进入 TASK_STOPPED 状态;当进程正在被跟踪时,它处于 TASK_TRACED 这个特殊的状态。
“正在被跟踪”指的是进程暂停下来,等待跟踪它的进程对它进行操作。

(3)、就绪状态:在 run_queue 队列里的状态

(4)、运行状态:在 run_queue 队列里的状态
(5)、可中断睡眠状态:处于这个状态的进程因为等待某某事件的发生(比如等待 socket 连接、等待信号量),而被挂起
(6)、zombie 状态(僵尸):父亲没有通过 wait 系列的系统调用会顺便将子进程的尸体(task_struct)也释放掉
(7)、退出状态

D 不可中断 Uninterruptible(usually IO)
R 正在运行,或在队列中的进程
S 处于休眠状态
T 停止或被追踪
Z 僵尸进程
W 进入内存交换(从内核 2.6 开始无效)
X 死掉的进程

问题十八:

怎么使一个命令在后台运行?
答案:
一般都是使用 & 在命令结尾来让程序自动运行。(命令后可以不追加空格)

问题十九:

利用 ps 怎么显示所有的进程? 怎么利用 ps 查看指定进程的信息?
答案:
ps -ef (system v 输出)

ps -aux bsd 格式输出

ps -ef | grep pid

问题二十:

哪个命令专门用来查看后台任务?

答案:

job -l

问题二十一:

把后台任务调到前台执行使用什么命令?把停下的后台任务在后台执行起来用什么命令?
答案:
把后台任务调到前台执行 fg

把停下的后台任务在后台执行起来 bg

问题二十二:

终止进程用什么命令? 带什么参数?

答案:

kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]

kill-9 pid

问题二十三:

怎么查看系统支持的所有信号?

答案:

kill -l

问题二十四:

搜索文件用什么命令? 格式是怎么样的?

答案:

find <指定目录> <指定条件> <指定动作>

whereis 加参数与文件名

locate 只加文件名

find 直接搜索磁盘,较慢。

find / -name “string*”

问题二十五:

查看当前谁在使用该主机用什么命令? 查找自己所在的终端信息用什么命令?
答案:
查找自己所在的终端信息:who am i

查看当前谁在使用该主机:who

问题二十六:

使用什么命令查看用过的命令列表?

答案:

history

问题二十七:

使用什么命令查看磁盘使用空间? 空闲空间呢?

答案:

df -hl
文件系统 容量 已用 可用 已用% 挂载点
Filesystem Size Used Avail Use% Mounted on /dev/hda2 45G 19G 24G 44% /
/dev/hda1 494M 19M 450M 4% /boot

问题二十八:

使用什么命令查看网络是否连通?
答案:
netstat

问题二十九:

使用什么命令查看 ip 地址及接口信息?

答案:

ifconfig

问题三十:

查看各类环境变量用什么命令?

答案:

查看所有 env
查看某个,如 home: env $HOME

问题三十一:

通过什么命令指定命令提示符?

答案:

\u:显示当前用户账号

\h:显示当前主机名

\W:只显示当前路径最后一个目录

\w:显示当前绝对路径(当前用户目录会以~代替)

$PWD:显示当前全路径

: 显 示 命 令 行 ’ :显示命令行’ '或者’#'符号

#:下达的第几个命令

\d:代表日期,格式为week day month date,例如:“MonAug1”

\t:显示时间为24小时格式,如:HH:MM:SS

\T:显示时间为12小时格式

\A:显示时间为24小时格式:HH:MM

\v:BASH的版本信息 如export PS1=’[\u@\h\w#]$‘

问题三十二:

查找命令的可执行文件是去哪查找的? 怎么对其进行设置及添加?

答案:

whereis [-bfmsu][-B <目录>…][-M <目录>…][-S <目录>…][文件…]

补充说明:whereis 指令会在特定目录中查找符合条件的文件。这些文件的烈性应属于原始代码,二进制文件,或是帮助文件。

-b 只查找二进制文件。

-B<目录> 只在设置的目录下查找二进制文件。 -f 不显示文件名前的路径名称。
-m 只查找说明文件。
-M<目录> 只在设置的目录下查找说明文件。 -s 只查找原始代码文件。
-S<目录> 只在设置的目录下查找原始代码文件。 -u 查找不包含指定类型的文件。
which 指令会在 PATH 变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。
-n 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
-p 与-n 参数相同,但此处的包括了文件的路径。 -w 指定输出时栏位的宽度。
-V 显示版本信息

问题三十三:

通过什么命令查找执行命令?
答案:
which 只能查可执行文件

whereis 只能查二进制文件、说明文档,源文件等

问题三十四:

怎么对命令进行取别名?
答案:
alias la=‘ls -a’

问题三十五:

du 和 df 的定义,以及区别?
答案:

du 显示目录或文件的大小

df 显示每个<文件>所在的文件系统的信息,默认是显示所有文件系统。
(文件系统分配其中的一些磁盘块用来记录它自身的一些数据,如 i 节点,磁盘分布图,间接块,超级块等。这些数据对大多数用户级的程序来说是不可见的,通常称为 Meta Data。) du 命令是用户级的程序,它不考虑 Meta Data,而 df 命令则查看文件系统的磁盘分配图并考虑 Meta Data。
df 命令获得真正的文件系统数据,而 du 命令只查看文件系统的部分情况。

问题三十六:

awk 详解。
答案:

awk ‘{pattern + action}’ {filenames}
#cat /etc/passwd |awk -F ‘:’ ‘{print 1"\t"7}’ //-F 的意思是以’:'分隔 root /bin/bash
daemon /bin/sh 搜索/etc/passwd 有 root 关键字的所有行

#awk -F: ‘/root/’ /etc/passwd root❌0:0:root:/root:/bin/bash

问题三十七:

当你需要给命令绑定一个宏或者按键的时候,应该怎么做呢?

答案:

可以使用bind命令,bind可以很方便地在shell中实现宏或按键的绑定。

在进行按键绑定的时候,我们需要先获取到绑定按键对应的字符序列。

比如获取F12的字符序列获取方法如下:先按下Ctrl+V,然后按下F12 .我们就可以得到F12的字符序列 ^[[24~。

接着使用bind进行绑定。

[root@localhost ~]# bind ‘”\e[24~":“date”’

注意:相同的按键在不同的终端或终端模拟器下可能会产生不同的字符序列。

【附】也可以使用showkey -a命令查看按键对应的字符序列。

问题三十八:

如果一个linux新手想要知道当前系统支持的所有命令的列表,他需要怎么做?

答案:

使用命令compgen ­-c,可以打印出所有支持的命令列表。

[root@localhost ~]$ compgen -c

l.

ll

ls

which

if

then

else

elif

fi

case

esac

for

select

while

until

do

done

问题三十九:

如果你的助手想要打印出当前的目录栈,你会建议他怎么做?

答案:

使用Linux 命令dirs可以将当前的目录栈打印出来。

[root@localhost ~]# dirs

/usr/share/X11

【附】:目录栈通过pushd popd 来操作。

问题四十:

你的系统目前有许多正在运行的任务,在不重启机器的条件下,有什么方法可以把所有正在运行的进程移除呢?

答案:

使用linux命令 ’disown -r ’可以将所有正在运行的进程移除。

问题四十一:

bash shell 中的hash 命令有什么作用?

答案:

linux命令’hash’管理着一个内置的哈希表,记录了已执行过的命令的完整路径, 用该命令可以打印出你所使用过的命令以及执行的次数。

[root@localhost ~]# hash

hits command

2 /bin/ls

2 /bin/su

问题四十二:

哪一个bash内置命令能够进行数学运算。

答案:

bash shell 的内置命令let 可以进行整型数的数学运算。

#! /bin/bash


let c=a+b

问题四十三:

怎样一页一页地查看一个大文件的内容呢?

答案:

通过管道将命令”cat file_name.txt” 和 ’more’ 连接在一起可以实现这个需要.

[root@localhost ~]# cat file_name.txt | more

问题四十四:

数据字典属于哪一个用户的?

答案:

数据字典是属于’SYS’用户的,用户‘SYS’ 和 ’SYSEM’是由系统默认自动创建的

问题四十五:

怎样查看一个linux命令的概要与用法?假设你在/bin目录中偶然看到一个你从没见过的的命令,怎样才能知道它的作用和用法呢?

答案:

使用命令whatis 可以先出显示出这个命令的用法简要,比如,你可以使用whatis zcat 去查看‘zcat’的介绍以及使用简要。

[root@localhost ~]# whatis zcat

zcat [gzip] (1) – compress or expand files

问题四十六:

使用哪一个命令可以查看自己文件系统的磁盘空间配额呢?

答案:

使用命令repquota 能够显示出一个文件系统的配额信息

【附】只有root用户才能够查看其它用户的配额。
转载至https://blog.csdn.net/zhongqi2513/article/details/62044299
注:刚刚在搜linux面试题,感觉这个还不错,保存一下,感谢原作者!!

1.解释下什么是GPL,GNU,自由软件?
GPL:(通用公共许可证):一种授权,任何人有权取得、修改、重新发布自由软件的权力。
GNU:(革奴计划):目标是创建一套完全自由、开放的的操作系统。 自由软件:是一种可以不受限制地自由使用、复制、研究、修改和分发的软件。主要许可证有GPL和BSD许可证两种。

2.如何选择Linux操作系统版本?
一般来讲,桌面用户首选Ubuntu;服务器首选RHEL或CentOS,两者中首选CentOS。

根据具体要求:

①安全性要求较高,则选择Debian或者FreeBSD。

②需要使用数据库高级服务和电子邮件网络应用的用户可以选择SUSE。

③想要新技术新功能功能可以选择Feddora,Feddora是RHEL和CentOS的一个测试版和预发布版本。

④根据现有状况,绝大多数互联网公司选择CentOS。现在比较常用的是6系列,现在市场占有大概一半左右。另外的原因是CentOS更侧重服务器领域,并且无版权约束。

3.初学者在Linux系统的开机启动项如何选择?
建议选择五个开机启动项:

①.crond: 该服务用于周期地执行系统及用户配置的计划任务。有要周期性执行的任务计划需要开启,此服务是生产场景必须要用的一个软件。

②.iptables: iptables包过滤防火墙,有外网IP时,考虑开启。

③.network: 启动系统时,若想激活/关闭启动时的各个网络接口,则应(必须)考虑开启。

④.sshd: 远程连接Linux服务器时需要用到这个服务程序,所以必须要开启,否则将无法远程连接到Linux服务器。

⑤.rsyslog:
是操作系统提供的一种机制,系统的守护程序通常会使用rsyslog将各种信息收集写入到系统日志文件中,CentOS6以前此服务的名字为syslog。

⑥.sysstat:
是一个软件包,包含监测系统性能及效率的一组工具,这些工具对于Linux系统性能数据很有帮助,比如CPU使用率、硬盘和网络吞吐数据等,这些数据的分析,有利于判断系统运行是否正常,所以它是提高系统运行效率、安全运行服务的助手。

4.请描述Linux系统优化的12个步骤。
⑴登录系统:不使用root登录,通过sudo授权管理,使用普通用户登录。

⑵禁止SSH远程:更改默认的远程连接SSH服务及禁止root远程连接。

⑶时间同步:定时自动更新服务器时间。

⑷配置yum更新源,从国内更新下载安装rpm包。

⑸关闭selinux及iptables(iptables工作场景如有wan ip,一般要打开,高并发除外)

⑹调整文件描述符数量,进程及文件的打开都会消耗文件描述符。

⑺定时自动清理/var/spool/clientmquene/目录垃圾文件,防止节点被占满(c6.4默认没有sendmail,因此可以不配。)

⑻精简开机启动服务(crond、sshd、network、rsyslog)

⑼Linux内核参数优化/etc/sysctl.conf,执行sysct -p生效。

更改字符集,支持中文,但是还是建议使用英文,防止乱码问题出现。

⑾锁定关键系统文件(chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow
/etc/inittab 处理以上内容后,把chatter改名,就更安全了。)

⑿清空/etc/issue,去除系统及内核版本登陆前的屏幕显示。

5.描述Linux运行级别0-6的各自含义
0:关机模式

1:单用户模式<==破解root密码

2:无网络支持的多用户模式

3:有网络支持的多用户模式(文本模式,工作中最常用的模式)

4:保留,未使用

5:有网络支持的X-windows支持多用户模式(桌面)

6: 重新引导系统,即重启
通过init命令切换运行级别

6.描述Linux系统从开机到登陆界面的启动过程
⑴开机BIOS自检,加载硬盘。

⑵读取MBR,MBR引导。

⑶grub引导菜单(Boot Loader)。

⑷加载内核kernel。

⑸启动init进程,依据inittab文件设定运行级别

⑹init进程,执行rc.sysinit文件。

⑺启动内核模块,执行不同级别的脚本程序。

⑻执行/etc/rc.d/rc.local

⑼启动mingetty,进入系统登陆界面。

7.描述Linux下软链接和硬链接的区别
在Linux系统中,链接分为两种,一种是硬链接(Hard link),另一种称为符号链接或软链接(Symbolic Link)。

①默认不带参数的情况下,ln创建的是硬链接,带-s参数的ln命令创建的是软链接。

②硬链接文件与源文件的inode节点号相同,而软链接文件的inode节点号,与源文件不同,

③ln命令不能对目录创建硬链接,但可以创建软链接。对目录的软链接会经常使用到。

④删除软链接文件,对源文件和硬链接文件无任何影响。

⑤删除文件的硬链接文件,对源文件及软链接文件无任何影响。

⑥删除链接文件的源文件,对硬链接文件无影响,会导致其软链接失效(红底白字闪烁状)。

⑦同时删除源文件及其硬链接文件,整个文件才会被真正的删除。

⑧很多硬件设备的快照功能,使用的就是类似硬链接的原理。

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

8.生产场景如何对linux系统进行合理规划分区?
分区的根本原则是简单、易用、方便批量管理。根据服务器角色定位建议如下:

①单机服务器:如8G内存,300G硬盘

分区: /boot 100-200M,swap 16G,内存大小8G*2,/ 80G,/var 20G(也可不分),/data
180G(存放web及db数据)

优点:数据盘和系统盘分开,有利于出问题时维护。

RAID方案:视数据及性能要求,一般可采用raid5折中。

②负载均衡器(如LVS等)

分区:/boot 100-200M,swap 内存的1-2倍,/ ,

优点:简单方便,只做转发数据量很少。

RAID方案:数据量小,重要性高,可采用RAID1

③负载均衡下的RS server

分区: /boot 100-200M,swap 内存的1-2倍,/

优点:简单方便,因为有多机,对数据要求低。

RAID方案:数据量大,重要性不高,有性能要求,数据要求低,可采用RAID0

④数据库服务器mysql及oracle如16/32G内存

分区:/boot 100-200M,swap 16G,内存的1倍,/ 100G,/data 剩余(存放db数据)

优点:数据盘和系统盘分开,有利于出问题时维护,及保持数据完整。

RAID方案:视数据及性能要求主库可采取raid10/raid5,从库可采用raid0提高性能(读写分离的情况下。)

⑤存储服务器

分区:/boot 100-200M,swap 内存的1-2倍,/ 100G,/data(存放数据)

优点:此服务器不要分区太多。只做备份,性能要求低。容量要大。

RAID方案:可采取sata盘,raid5

⑥共享存储服务器(如NFS)

分区:/boot 100-200M,swap 内存的1-2倍,/ 100G,/data(存放数据)

优点:此服务器不要分区太多。NFS共享比存储多的要求就是性能要求。

RAID方案:视性能及访问要求可以raid5,raid10,甚至raid0(要有高可用或双写方案)

⑦监控服务器cacti,nagios

分区:/boot 100-200M,swap 内存的1-2倍,/

优点:重要性一般,数据要求也一般。

RAID方案:单盘或双盘raid1即可。三盘就RAID5,看容量要求加盘即可。

9.描述Linux下文件删除的原理
Linux系统是通过link的数量来控制文件删除的,只有当一个文件不存在任何link的时候,这个文件才会被删除。一般来说每个文件两个link计数器来控制i_count和i_nlink。当一个文件被一个程序占用的时候i_count就加1。当文件的硬链接多一个的时候i_nlink也加1。删除一个文件,就是让这个文件,没有进程占用,同时i_link数量为0。

10.请简单描述VI编辑器的使用
①vi编辑器是linux系统下最最基本和最常用的标准文本编辑器。

②vi编辑器有三种工作模式:普通模式、编辑模式、命令模式。

③普通模式下的键盘输入任何字符都是当作命令来执行的,也可以输入命令进行光标的移动,字符、单词、行的复制、粘帖以及删除等操作。

④编辑模式主要用于文本的输入。在该模式下,用户输入的任何字符都被作为文件的内容保存起来。

⑤命令模式下,用户可以对文件进行一些如字符串查找、替换、显示行号等操作还是必须要进入命令模式的。

⑥在普通模式下输入冒号即可进入命令模式,此时vi窗口的状态行会显示出冒号,等待用户输入命令。“i”插入模式,即可以进行编辑。用户输入完成后,按【Esc】之后编辑器又返回到普通模式下,在命令模式下,保存退出,可以使用的命令为wq和x。前面加!表示强制退出,强制保存等。

11.请简单说出用户管理的相关命令及用途

  1. 组管理命令

groupadd #添加组

groupdel #删除用户组

groupmod #修改用户组

groups #显示当前用户所属的用户组

grpck #检查用户组及密码文件的完整性(etc/group以及/etc/gshadow文件)

grpconv #通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow
,如果/etc/gshadow 不存在则创建;

grpunconv #通过/etc/group 和/etc/gshadow 文件内容来同步或创建/etc/group
,然后删除gshadow文件 。

用户管理命令
useradd #添加用户
adduser #添加用户

passwd #为用户设置密码

usermod #修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等

pwcov #同步用户从/etc/passwd 到/etc/shadow

pwck #pwck是校验用户配置文件/etc/passwd 和/etc/shadow文件内容是否合法或完整

pwunconv #执行pwunconv指令可以关闭用户投影密码,它会把密码从shadow文件内,重回存到passwd文件里。

finger #查看用户信息工具(危险命令,一般不用)

id #查看用户的UID、GID及所归属的用户组

chfn #更改用户信息工具

su #用户切换工具

12.请简述基础正则表达式grep高级参数的使用
常用参数:
-v排除匹配内容,

-e支持扩展的正则表达式,

-i忽略大小写,

-o输出匹配的内容(只是一块,不是行),

–color=auto 匹配内容显示颜色,

-n 在行首显示行号。

特殊字符注意事项:

^(尖括号)word :表示搜索以word开头的内容。

word$ 表示搜索以word结尾的内容。

^$ 表示的是空行,不是空格。

. 代表且只能代表任意一个字符。非正则表达式其他功能(当前目录,加载文件)

\ 转义字符,让有着特殊身份意义的字符,脱掉马甲,还原原型。例如.只表示原始小数点意义。

表示重复0个或多个前面的一个字符。不代表所有。
.* 表示匹配所有的字符。^.*表示以任意字符开头。

[任意字符如abc] 匹配字符集内任意一个字符[a-z]。 [^abc]
^在中括号里面是非的意思,不包含之意。意思就是不包含a或b或c的行。 {n,m}
表示重复n到m次前一个字符。{n}至少n次,多了不限。{n}N次,{,m}至多m次,少了不限。

注:使用grep或sed要对{}转义。即\{\}.egrep就不需要转义了。

13.请简述基础正则表达式sed高级参数的使用
解答:
-n取消默认输出

-p 打印

-d删除

-e允许多项编辑

sed取行,要特别注意sed -n ‘s###g’ filename
的使用,sed的的功能可以记住正则表达式的一部分,其中,\1为第一个记住的模式即第一个小括号中的匹配内容,\2第二记住的模式,即第二个小括号中的匹配内容,sed最多可以记住9个。

实际字符的选取最好要唯一,正则表达式是贪婪的,总是尽可能的匹配更远的符合匹配的内容。另外注意字符串中的空格。

14.请给出查看当前哪些用户在线的Linux命令
w #显示目前系统登录用户

who #显示目前已登录用户信息

last #列出目前与过去登入系统的用户相关信息

lastlog #检查某特定用户上次登录时间

whoami #打印与当前生效的用户ID关联的用户名

finger #用户信息查找程序

id #显示指定用户或当前用户的用户与组信息

15.请你描述下crontab的作用和语法,以及书写定时任务注意的要点。
设置crontab后我们可以使得Linux主动执行的在固定的间隔时间,执行指定的系统指令或 shell
script脚本。生产环境可以用来日志分析或生产备份等。

语法格式:

crontab [ -u user ] file ===》-u的意思就是指定用户

crontab [ -u user ] { -l 显示文件内容| -r全部删除crontab文件 | -e 编辑crontab文件|
-i删除crontab文件前确认提示}

举例:
/5 10,12 3-8 * * /usr/sbin/ntpdate 10.0.0.155 >/dev/null 2>&1
前五段是时间间隔的设定,单位分别是分钟、小时、日、月、周(尽量避免使用日月和周同时出现,以免造成系统误判)。
第一个时间段 分钟 范围0-59
第二个时间段 小时 范围0-23
第三个世间段 日 范围1-31
第四个时间段 月 范围1-12
第五个时间段 周 范围0-7
*星号代表任何时间都接受命令

,逗号,表示隔开。代表分隔的时间都适用此命令。

‘-’ 减号,两个时间段之间,代表在此时间段内执行定时任务。

/n斜线和n(数字)表示每隔n段时间执行一次
注意要点分为:书写基本要领与书写注意事项

7个基本要领:
第一、为定时任务规则加必要的注释

第二、定时任务命令或程序最好写到脚本里执行

第三、定时任务执行的脚本要规范路径,如:/server/scripts

第四、执行shell脚本任务时前加/bin/sh

执行定时任务时,如果是执行脚本,尽量在脚本前面带上/bin/sh命名

第五、定时任务结尾加 >/dev/null 2>&1

第六、/dev/null为特殊的字符设备文件,表示黑洞设备或空设备。

第七、有关重定向的说明

‘>’或’1>’ 输出重定向:把前面输出的东西输入到后边的文件中,会删除文件原有内容。

‘>>’或’1>>’ 追加重定向:把前面输出的东西追加到后边的文件中,不会删除文件原有内容。

<或<0 输入重定向:输入重定向用于改变命令的输入,指定输入内容,后跟文件名。

<<或<<0 输入重定向:后跟字符串,用来表示“输入结束”,也可用ctrl+d来结束输入。

2> 错误重定向:把错误信息输入到后边的文件中,会删除文件原有内容。

2>> 错误追加重定向:把错误信息追加到后边的文件中,不会删除文件原有内容。

标准输入(stdin):代码为0,使用<或<<。

标准输出(stdout):代码为1,使用>或>>。正常的输出。

标准错误输出(sederr):代码为2,使用2>或2>>。

特殊:

2>&1就是把标准错误重定向到标准输出(>&)。

‘>’/dev/null 2>&1 等价于 1>/dev/null 2>/dev/null

16.请列出Linux中你认为重要的文件夹及包含内容
① /目录下的文件夹里面分别是以下内容: /usr 包含所有的命令和程序库、文档和其他文件及当前linux发行版的主要应用程序

/var 包含正在操作的文件,还有记录文件、加密文件、临时文件等

/home 除了root用户外的所有用户的配置文件,个性化文件和主目录,即家目录

/proc 虚拟目录,该目录实际上指向内存而不是硬盘

/bin 系统执行文件(二进制文件)普通用户可以使用

/sbin 系统执行文件(二进制文件)不能被普通用户使用,通常由root用户使用

/etc 操作系统的配置文件

/root root用户的家目录

/dev 系统设备文件,linux所有设备都是以文件的形式被处理,该目录不包含驱动程序

/lib 程序和核心模块共享库(仅限于/下的程序)

/boot 系统引导、启动文件,通常grub也在这里

/opt 可选应用程序目录

/tmp 临时文件,系统会自动清理

/lost+found 恢复文件(类似回收站)

/media 所有的磁盘(有时有光盘)将以文件夹的形式挂载,光盘镜像也可以挂载

/cd-rom 挂载光盘的地方

② /usr目录下的文件比较重要,其作用下面分类列出:

/usr/X11 X-windows桌面环境

/usr/doc linux系统的文档资料

/usr/share 独立于当前计算机的数据结构,如字典中的词

/usr/bin 类似/bin但是不参与启动,大部分命令都在这里

/usr/local 本地管理员安装的应用程序

/usr/local/bin 用户安装的应用程序(部分)

③ /proc目录的内容

/proc/cpuinfo 处理器的信息

/proc/devices 当前运行内核的所有设备清单

/proc/dma 当前正在使用中的DMA通道

/proc/filesystem 当前运行内核所配置的文件系统

/proc/interrupts 当前使用的中断和曾经有多少个中断

/proc/ioports 正在使用的I/O端口

17.给出正确的关机和重启服务器的命令
⑴shutdown

[-t] 指定在多长时间之后关闭系统 [-r] 重启系统 [-k] 并不真正关机,只是给每个登录用户发送警告信号 [-h]
关闭系统(halt) ⑵halt

halt是最简单的关机命令,其实际上是调用shutdown -h命令。halt执行时,杀死应用进程,文件系统写操作完成后就会停止内核。

halt命令的部分参数如下:

[-f] 没有调用shutdown而强制关机或重启 [-i] 关机或重新启动之前,关掉所有的网络接口 [-p]
关机时调用poweroff,此选项为缺省选项 ⑶reboot

reboot工作过程与halt类似,作用是重新启动,而halt是关机。其参数与halt类似。

⑷init

init是所有进程的祖先,其进程号始终为1。init用于切换系统的运行级别,切换的工作是立即完成的。init
0命令用于立即将系统运行级别切换为0,即关机;init 6命令用于将系统运行级别切换为6,即重新启动。

18.请简述修改/etc/sudoers配置文件的注意事项
①别名的名称可以包含大写字母。数字、下划线。如果是字母必须要大写,(别名为一群拥有相同属性的集合)。

②一个别名下面可以有多个成员,成员间通过半角(,)逗号隔开。成员必须有效实际存在。

别名成员受别名类型
Host_Alias、User_Alias、Runas_Alias、Cmnd_Alias制约,定义什么类型的别名,就要有相什么类型的成员匹配。

③用户组前面必须加%号。命令别名下的成员必须是文件或目录的绝对路径。

④指定切换用户要用()括号括起来,如果省略,则默认root用户,如果括号里是ALL,则代表能切换到所有用户。

⑤命令路径要使用全路径。

⑥别名规则每行算一个规则,一行容不下时用\续行。另外超过一行,用反斜线换行。

⑦一般不建议先给all权限,后面排除。用什么权限,就给什么权限。(注意权限,语法)。

如果不需要密码直接运行命令的应该加NOPASSWD参数。

⑧禁止某类程序或命令执行,要在命令动作前面加上“!”号,并放在允许执行命令之后。

19.请描述如何实现linux系统集权分治的权限分级精细管理?
① 收集以及制定用户和权限的匹配信息,原则是给于最小权限,但是又能完成所承担的工作职责。

② 各个用户组设置对应权限,用什么给什么,精细到每一条指令上根据分组情况。

③ 创建规划权限分组的用户.添加相关用户组。并修改etc/sudoers配置文件。


增加sudo的权限开放,确定相关用户加入如soduers权限列表,并详细设置所开放权限内容,并选择是否需要密码的相关执行权限开放。(注意ALL权限,以及密码修改权限设置)。

⑤ 不建议先给all权限,后面排除。建议使用白名单。

⑥实战调试测试相关权限是否正确配置完成。

⑦编写操作说明,及相关注意事项。

⑧调试完毕,邮件周知所有相关人员系统权限设置生效,并附带操作说明及相关注意事项。

20.请写出下面Linux SecureCRT命令行快捷键命令的功能?
Ctrl + a 光标到开头

Ctrl + c 中断当前程序

Ctrl + d 退出当前窗口或当前用户

Ctrl + e 光标到结尾

Ctrl + l 清屏 相当与clear

Ctrl + u 剪切、删除(光标以前的)内容

Ctrl + k 剪切、删除(光标以后的)内容

Ctrl + r 查找(最近用过的命令)

tab 所有路径以及补全命令

Ctrl+shift+c 命令行复制内容

Ctrl+shift+v 命令行粘贴内容

Ctrl + q 取消屏幕锁定

Ctrl + s 执行屏幕锁定

21.请描述服务器账户日志审计的5种解决方案。
⑴通过环境变量syslog对全部全部日志进行审计(信息量太大,不推荐)

⑵sudo配合syslog服务,进行sudo操作日志进行审计(信息较少,效果不错)

⑶在bash解释器嵌入一个监视器,让所有用户使用修改过的bash程序,作为解释程序。

⑷齐治的堡垒机(商业产品)。

22.如果一台办公室内主机无法上网(打不开网站),请给出你的排查步骤?
①首先确定物理链路是否联通正常。

②查看本机IP,路由,DNS的设置情况是否达标。

③telnet检查服务器的WEB有没有开启以及防火墙是否阻拦。

④ping一下网关,进行最基础的检查,通了,表示能够到达服务器。

⑤测试到网关或路由器的通常情况,先测网关,然后再测路由器一级一级的测试。

⑥测试ping公网ip的通常情况(记住几个外部IP),

⑦测试DNS的通畅。ping出对应IP。

⑧通过以上检查后,还在网管的路由器上进行检查。

23.描述Linux shell中单引号、双引号及不加引号的简单区别
单引号:所见即所得,即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就输出什么。

双引号:把双引号里面的内容给输出出来,如果内容中有命令、变量等,会先把,变来那个、命令解析出结果,然后输出最终内容。

双引号内的命令或者变量写法’命令或变量’或$(命令或变量)

无引号:把内容输出出来,可能不会键含有空格的字符串,视为一个整体输出,如果内容中有命令、变量等,会先把变量、命令解析出来,然后输出最终内容,如果字符串中带有空格等特殊字符,则不能完整输出,需要改加双引号。一般连续的字符串,数字,路径等可以用,不过最好用双引号,替代之。

24.请简述Linux启动过程中几个重要配置文件的执行过程
Linux 登录后,配置执行顺序为(Debian Serials Capable):

/etc/environment -> /etc/profile -> (~/.bash_profile | ~/.bash_login |
~/.profile) -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout

关于各个文件的作用说明:

(1)/etc/environment:此配置文件设置基本的PATH变量,及系统当前语言变量,虽然比较短,但却在系统启动中占据举足轻重的作用,比如如下是我的系统中的内容:

(2)/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.
并从/etc/profile.d目录的配置文件中搜集shell的设置。

(3)/etc/bash.bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。

(4)~/.bash_profile:
每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。

(5)~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。

(6)~/.bash_logout: 当每次退出系统(退出bash shell)时,执行该文件.
另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承
/etc/profile中的变量,他们是”父子”关系。

(7)~/.bash_profile 是交互式、login 方式进入 bash 运行的~/.bashrc 是交互式 non-login
方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。

25.请描述下列路径的内容是做什么的?
/var/log/messages 系统日志文件

/var/log/secure 系统安全文件(显示登录信息的文件)

/var/spool/clientmqueue 例行性任务回执邮件存放文件

/proc/interrupts 当前系统中断报告文件

/etc/fstab 开机自动挂载磁盘的配置文件

/etc/profile 环境变量存放的文件

26.请给出Linux中eth0的IP地址和广播地址的指令,需使用cut、awk、grep、sed指令。
第一种方法:使用grep和cut取值

第二种方法:使用grep和awk(默认分隔符为空格)取值

第三种方法:使用grep和awk(多分隔符)

第四种方法:使用sed和awk

第五种方法:使用grep和awk(多分隔符与加号+)

第六种方法:awk (分隔符及取行)

第七种方法:grep 网卡文件

第八种方法:head取行 awk分割

27.请输出你知道的20 个LINUX 命令及作用
cp 复制 -a(drp),-r拷贝目录 -p保持属性
mv 移动文件或目录
mkdir 创建目录 -p递归创建目录
touch 创建文件
cat 查看文件内容 -n显示行号
ls 查看目录下文件,-l长格式,-d查看目录
rm 删除文件或目录 -r目录 -f 强制删除(慎用,mv,find)
find 查找文件或目录 -type 类型(f,d,l,c,b),-name名字 -exec执行动作
alias 查看及设置别名 unalias 取消别名
seq 打印序列 -s指定分割符 -w数字前面加0补齐位数 head 查看文件前N行,默认10行,-n指定行数
tail 查看文件后N行,默认10行,-n指定行数,-f实时跟踪文件结尾的变化
sed linux三剑客老二,文件增删改查
pwd打印当前工作目录
echo 显示输出
xargs (配合find,ls)等查找到的内容处理,-n分组
tree -L层数 -d目录
rpm -q query查询 -a all
uname -r内核 -m32位还是64位 -a所有信息, -n主机名(hostname)
hostname 主机名
whoami 查看当前用户
useradd 添加用户
passwd 改密码,–stdin 非交互设置密码
su 切换用户角色,-切换环境变量

你可能感兴趣的:(前端知识总结,linux)