(1)修改文件时间或创建新的文档:touch
我们在使用ls这个指令的时候,有时候发现在Linux底下都会记录许多时间参数,其实是有三个主要的变动时间,那么这三个时间的意义是什么呢?
modification time(mtime):
当文件的内容数据变更时,就会更新这个时间。内容数据指的是文件的内容,而不是文件的属性或权限。
status time(ctime):
当文件的状态(status)改变时,就会更新这个时间,举例来说,比如权限或属性被更改了,都会更新这个时间。
access time (atime):
当该文件的内容被取用时,就会更新这个读取时间(access)。举例来说,我们使用cat去读取/etc/man_db.conf,就会更新这个文件的atime了。
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第1张图片


(2)有时候如果查询man文档,无法查询相关的信息,可以执行mandb更新一下man文档的数据库信息。


(3)如何查看CPU信息?
①# lscpu

# cd /sys/devices/system/cpu
# ls---可以查看所有的CPU信息


(4)有时候我们在执行相关信息时出现了报错信息,此时如果使用“>”重定向符号时,并不能将报错信息完整的记录在文件中,此时我们应该使用“2>”的重定向方式将错误的结果记录到文件中。
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第2张图片
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第3张图片
如果我们不论执行的结果是什么,都需要将结果重定向到对应的文件中,可以使用“&>”或者“&>>”将所有执行的结果重定向记录到文件中。
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第4张图片


(5)某个命令可能是正确的也可能是错误的,如果正确的话,结果写入到ok.txt里,如果是错误的话,写入到err.txt里,如何实现?
# xxxxxxxxxxx >> ok.txt 2>> err.txx
# cal >> ok.txt 2>> err.txt
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第5张图片
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第6张图片


(6)查看文件的方式统计:
cat:适合查看小文件,-n可以显示行号
more:回车一行行的显示,空格键一屏幕一屏幕的显示
less:可以查看文档,并且可以上下翻看。n表示查看下一个,N表示查看上一个,q表示退出。
head:默认是查看文本的前10行信息。(图6-1)
tail:显示文本的后10行信息,加上“-f ”选项可以实时监控最后的10行信息。(图6-2至图6-4)
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第7张图片
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第8张图片
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第9张图片
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第10张图片


(7)我们需要将网卡信息保存至aa.txt文件中,并且过滤出有IP地址的信息。
# ifconfig | tee aa.txt | grep 'inet '(图7.1)
# ifconfig | tee -a aa.txt | grep 'inet '(图7.2)
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第11张图片
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第12张图片


(8)提取/etc/passwd文件中第11至第15行的信息,并且加上行号。
# cat -n /etc/passwd | head -15 | tail -5
# cat -n /etc/passwd | grep -B4 '15'
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第13张图片


(9)在/etc/passwd里存储的是帐户信息,/etc/shadow里存储的是密码信息。
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第14张图片
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第15张图片
普通用户的UID从1000开始是由于系统中的文件/etc/login.defs文件决定的。
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第16张图片
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第17张图片


(10)如果需要修改用户的默认shell,可以在/etc/passwd文件中进行修改。
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第18张图片
不过不建议直接在/etc/passwd文件中直接修改用户的默认信息,而是使用# vipw命令进行修改。
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第19张图片


(11)当我们查询一个用户的属性的时候,如果是本地用户,可以在/etc/passwd文件中查询,但是如果是网络用户,则应该使用# getent passwd jerry进行查询。
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第20张图片


(12)当我们使用usermod给bob用户创建注释为“'I'm bobxxxx”,指定bob的家目录为/home/bob,此时如果su切换登录到bob用户时是没有家目录的,所以要将/bob目录全部复制到/home目录下。
解答:
# usermod -c 'I'm bobxxxx' -d /home/bob bob
# cp -a /bob /home/
注意:
# cp -a /etc/skel/* /home/bob/---其中skel表示骨架、框架


(13)首先创建一个用户harry,并且给用户harry设置密码。
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第21张图片
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第22张图片
接着将harry用户锁定。
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第23张图片
首先将harry用户加入到users组,然后在将harry的第一个附加组进行替换
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第24张图片
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第25张图片
usermod命令是对用户进行操作,接下来可以使用gpasswd命令对组进行操作。
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第26张图片


(14)有时候我们需要对帐户的用户登录做管理,既可以使用图形化方式,也可以使用命令行的方式。
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第27张图片
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第28张图片
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第29张图片
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第30张图片


(15)创建用户mary,其uid=2000,密码为redhat,且不能登录系统。
解答:
# useradd -u 2000 -s /sbin/nologin mary
# echo redhat | passwd --stdin mary


(16)修改mary的信息,使其能正常登录系统。
解答:
# usermod -s /bin/bash mary


(17)创建jerry用户,使其把mary作为主组,users作为附属组,密码为redhat
解答:
# useradd -g mary -G users jerry
# echo redhat | passwd --stdin jerry


(18)修改jerry的密码信息,使得其密码在2020-12-21过期。且其密码最大使用天数为40天,最小使用天数为10天。密码过期前1周开始对用户警告修改密码,如果超过最大使用天数没有修改密码的话,延迟3天,在这三天内如果登录的话,强制修改密码,超过3天则锁定用户。要求分别使用chage和passwd实现。
解答:
# chage --help
# chage -E 2020-12-21 jerry---使得其密码在2020-12-21过期
# chage -M 40 jerry---其密码最大使用天数为40天
# chage -m 10 jerry---最小使用天数为10天
# chage -W 7 jerry---将过期警告天数设为“警告天数”,此处我们设为一周
# chage -I 3 jerry---延迟3天,在这三天内如果登录的话,强制修改密码,超过3天则锁定用户
# passwd --help---查询passwd命令使用方法
# passwd -x 40 jerry---密码的最长有效时限为40天
# passwd -n 10 jerry---密码的最短有效时限为10天
# passwd -w 7 jerry---密码过期前1周开始对用户警告修改密码
# passwd -i 3 jerry---延迟3天,在这三天内如果登录的话,强制修改密码,超过3天则锁定用户


(19)删除mary用户,包括其家目录及缓存文件一并删除。
解答:
# userdel -r marry


(20)256G内存的服务器安装CentOS的时候划分多大的swap?
解答:64G内存就可以,同时/proc/sys/vm/swappiness这个值设置为0


(21)当我们规划企业级的服务器操作系统时,CentOS系列选择6.5和6.8版本比较稳定,Redhat系列选择7.2和7.4版本比较稳定。


(22)常用地压缩主要有gzip,bzip2,zip
(1)我们首先创建一个100M的文件
# dd if=/dev/zero of=file bs=1M count=100
(2)我们使用gzip进行压缩,文件的后缀一般是“.gz”
# gzip file---压缩文件
# gzip -d file.gz---解压缩文件
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第31张图片
(3)我们使用bzip2文件进行压缩,文件的后缀一般是“.bz2”
# bzip2 file---压缩文件
# bzip2 -d file.bz2---使用-d选项解压文件
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第32张图片
(4)我们使用zip对文件进行压缩,文件的后缀一般是“.zip”,当我们对目录进行压缩的时候需要加上“-r”选项
# zip aa.zip file---将file文件压缩为aa.zip文件
# unzip aa.zip---解压aa.zip文件
# zip -r bb.zip /boot/---使用递归的方式将/boot目录下的文件压缩为bb.zip文件
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第33张图片


(23)一般我们使用tar命令的时候会结合压缩命令一起使用(gzip,bzip2)
(1)当我们需要压缩file1和file2文件为file.tar.gz文件时,由于压缩使用的是gzip,所以使用参数“z”,由于是压缩,所以使用参数“c”:
# tar zcvf file.tar.gz file1 file2
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第34张图片
当我们需要解压缩file.tar.gz文件的时候,由于是展开文件,所以需要使用参数“x”:
# tar zxvf file.tar.gz---解压且展开文件file.tar.gz
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第35张图片
(2)当我们需要压缩file1和file2文件为file.tar.bz2文件时,由于使用的是bzip2,所以使用参数“j”:
# tar jcvf file.tar.bz2 file1 file2
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第36张图片
当我们需要将file.tar.bz2文件解压缩的时候,我们可以使用“jxvf”参数:
# tar jxvf file.tar.bz2
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第37张图片


(24)归档压缩
(24.1)tar命令
解包:tar zxvf filename.tar
打包:tar czvf filename.tar dirname
(24.2)gz命令
解压1:gunzip filename.gz
解压2:gunzip -d filename.gz
压缩:gzip filename
.tar.gz和.tgz
解压:tar zxvf filename.tar.gz
压缩:tar zcvf filename.tar.gz dirname
压缩多个文件:tar zcvf filename.tar.gz dirname1 dirname2
(24.3)bz2命令
解压1:bzip2 -d filename.bz2
解压2:bunzip2 filename.bz2
压缩:bzip2 -z filename
.tar.bz2
解压:tar jxvf filename.tar.bz2
压缩:tar jcvf filename.tar.bz2 dirname
(24.4)bz命令
解压1:bzip2 -d filename.bz
解压2:bunzip2 filename.bz
.tar.bz
解压:tar jxvf filename.tar.bz
(24.5)z命令
解压:uncompress filename.z
压缩:compress filename
.tar.z
解压:tar zxvf filename.tar.z
压缩:tar zcvf filename.tar.z dirname
(24.6)zip命令
解压:unzip filename.zip
压缩:zip filename.zip dirname


(25)我们如何在系统中创建有两个横杠开头的文件,例如创建文件“--test”,怎样可以实现?
解答:我们可以在--test文件名前加上--去除转义,然后便可以正常的创建出文件了
# touch -- --test
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第38张图片
如果我们希望将“--test”文件删除掉,也需要在删除命令前使用“--”进行字符转义
# rm -rf -- --test
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第39张图片


(26)du和df的区别:
# du -sh /boot/---查看/boot目录下文件总大小,du 命令是用户级的程序,它不考虑 Meta Data(disk usage 的简称)
# df -hT /boot/---查看/boot目录下有没有挂载分区,df 命令则查看文件系统的磁盘分配图并考虑 Meta Data(disk filesystem 的简称)
注意:du 命令只查看文件系统的部分情况,df 命令获得真正的文件系统数据。
文件系统分配其中的一些磁盘块用来记录它自身的一些数据,如 i 节点,磁盘分布图,间接块,超级块等。这些数据对大多数用户级的程序来说是不可见的,通常称为 Meta Data。
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第40张图片


(27)如果一个Linux新手想要知道当前系统支持的所有命令列表,他需要怎么做?(3000多个命令)
# compgen -c | wc -l---查询系统的总命令个数
# compgen -c | head -10---查询总计命令的前10行内容
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第41张图片
(28)修改文件权限用什么命令,格式是怎么样的。
# chmod u+x file
# chmod 751 file
# chmod u=rwx,g=rx,o=x file
# chmod =r file
# chmod 444 file
# chmod a-wx,a+r file
# chmod -R u+r directory---递归给目录下所有文件和子目录的分配读的权限


(29)用什么命令对一个文件的内容进行统计?
# wc -c---统计字节数
# wc -l---统计行数
# wc -w---统计字数


(30)搜索文件用什么命令,格式是怎么样的?
# find <指定目录> <指定条件> <指定动作>
# find / -name "string*"
# whereis <参数与文件名>
# locate <加文件名>


(31)查看各类环境变量使用什么命令?
查看所有环境变量# env
查看某个,如home环境变量# env $HOME=/root


(32)查找命令的可执行文件是去哪里查找的,怎么对其进行设置及添加
# whereis -b bash---查看指令bash二进制文件的位置
# whereis -B /usr -f bash---其中-B只在设置的目录下查找二进制文件,-f表示不现实文件名前的路径名称
# whereis -m bash---只查找说明文件
# whereis -M /usr -f bash---值在设置的目录下查找说明文件
# whereis -S /usr -f bash---只在设置的目录下查找原始代码文件
# whereis -s cd---只搜索源码文件
# whereis -u cd---查找不包含指定类型的文件
# whereis -V---显示版本信息


(33)通过什么命令查找执行命令?
which只能查可执行文件
whereis只能查二进制文件、说明文档、源文件等


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


(35)hash命令有什么作用?
回答:hash命令管理着一个内置的哈希表,记录了已执行过的命令的完整路径,用该命令可以打印出你所使用过的命令以及执行的次数。
【一点一滴,成材之基!】Linux常见问题总结--持续更新中_第42张图片


(36)怎样查看一个Linux命令的概要与用法?假设你在/bin目录中偶然看到一个你从没见过的命令,怎样才能知道它的作用与用法?
# whatis cat


(37)对于建立好的磁盘配额,还需要有效的配额手段,这样才能知道系统中到底有哪些分区设定了哪些配额,查询磁盘配额有两种方法:
(1)使用quota命令查询用户或用户组的配额
# quota -uvs [用户名或组名]
-u 用户名:查询用户配额
-g 组名:查询组配额
-v:显示详细信息
-s:以习惯单位显示容量大小,如M、G
(2)使用repquota命令查询整个分区的配额情况
# repquota -augvs [分区名]
-a:依据/etc/mtab文件查询配额,如果不加-a选项,就一定要加分区名
-u:查询用户配额
-g:查询组配额
-v:显示详细信息
-s:以习惯单位显示容量大小,如M、G