vs移植linux为什么一堆神奇的问题,【一点一滴,成材之基!】Linux常见问题总结--持续更新中...

(1)修改文件时间或创建新的文档:touch

我们在使用ls这个指令的时候,有时候发现在Linux底下都会记录许多时间参数,其实是有三个主要的变动时间,那么这三个时间的意义是什么呢?

modification time(mtime):

当文件的内容数据变更时,就会更新这个时间。内容数据指的是文件的内容,而不是文件的属性或权限。

status time(ctime):

当文件的状态(status)改变时,就会更新这个时间,举例来说,比如权限或属性被更改了,都会更新这个时间。

access time (atime):

当该文件的内容被取用时,就会更新这个读取时间(access)。举例来说,我们使用cat去读取/etc/man_db.conf,就会更新这个文件的atime了。

50c4afbfdfa630334e613d14a3d2d0ef.png

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

(3)如何查看CPU信息?

①# lscpu

# cd /sys/devices/system/cpu

# ls---可以查看所有的CPU信息

(4)有时候我们在执行相关信息时出现了报错信息,此时如果使用“>”重定向符号时,并不能将报错信息完整的记录在文件中,此时我们应该使用“2>”的重定向方式将错误的结果记录到文件中。

88380825aef0da2b8f667f7d9fb37b5a.png

6f8be984fbfcb1a303f2e5fb54ff3158.png

如果我们不论执行的结果是什么,都需要将结果重定向到对应的文件中,可以使用“&>”或者“&>>”将所有执行的结果重定向记录到文件中。

b4e98a1333b3aa21ae3c2dae1a4d517b.png

(5)某个命令可能是正确的也可能是错误的,如果正确的话,结果写入到ok.txt里,如果是错误的话,写入到err.txt里,如何实现?

# xxxxxxxxxxx >> ok.txt 2>> err.txx

# cal >> ok.txt 2>> err.txt

08625bbbf90744f3a6068e0f297ca024.png

2647e096175d15089e857376a0b9d25e.png

(6)查看文件的方式统计:

cat:适合查看小文件,-n可以显示行号

more:回车一行行的显示,空格键一屏幕一屏幕的显示

less:可以查看文档,并且可以上下翻看。n表示查看下一个,N表示查看上一个,q表示退出。

head:默认是查看文本的前10行信息。(图6-1)

tail:显示文本的后10行信息,加上“-f ”选项可以实时监控最后的10行信息。(图6-2至图6-4)

2c2bd3624c308dee25459c09cd7ec7f2.png

de49a8c046bc098a107c41c7d1e1575c.png

3e00507b20becbe2dead3694331562a2.png

26252875a9bec69669c86a635bf196f0.png

(7)我们需要将网卡信息保存至aa.txt文件中,并且过滤出有IP地址的信息。

# ifconfig | tee aa.txt | grep 'inet '(图7.1)

# ifconfig | tee -a aa.txt | grep 'inet '(图7.2)

c57dbefd56c97b16cd63e01e766bd19d.png

ff2961cb439cbafbd075ae610f47a44d.png

(8)提取/etc/passwd文件中第11至第15行的信息,并且加上行号。

# cat -n /etc/passwd | head -15 | tail -5

# cat -n /etc/passwd | grep -B4 '15'

8f4621033425c144933bcc23d90e39e8.png

(9)在/etc/passwd里存储的是帐户信息,/etc/shadow里存储的是密码信息。

4d000cbe7a70de9aa8e466cc8a636eb8.png

48df89ce4ca1b72dfd4bb73d5f40d732.png

普通用户的UID从1000开始是由于系统中的文件/etc/login.defs文件决定的。

b9a664d9fee7f7820f57f5e41050d1d0.png

6042b4f2c180c00493fe1d012609ac6e.png

(10)如果需要修改用户的默认shell,可以在/etc/passwd文件中进行修改。

48c97f1b7643fc5b0b51beb31c9f90d8.png

不过不建议直接在/etc/passwd文件中直接修改用户的默认信息,而是使用# vipw命令进行修改。

d7599ab77d2674e16e462443c279f756.png

(11)当我们查询一个用户的属性的时候,如果是本地用户,可以在/etc/passwd文件中查询,但是如果是网络用户,则应该使用# getent passwd jerry进行查询。

ff7d0c4f7bd3c4cef2dd7094bf9926d9.png

(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设置密码。

abcd1d92f105cc5db98b13fdbbb5174d.png

616faa35828083e6cc5ca9f7a25c66f6.png

接着将harry用户锁定。

c9bd96f5c2bcd2f75ea6dc205231bc09.png

首先将harry用户加入到users组,然后在将harry的第一个附加组进行替换

4b1a457d010c0697e660680e129b6a7f.png

d8c3a91b32aa4855a38da45154bd1600.png

usermod命令是对用户进行操作,接下来可以使用gpasswd命令对组进行操作。

c62d67e2a925f2e745ecfed3535258c8.png

(14)有时候我们需要对帐户的用户登录做管理,既可以使用图形化方式,也可以使用命令行的方式。

03c89b503f87550561470c244d958726.png

8fdc5596cd7436a8e153baaed29fd716.png

523f3f503a3596f4c863c7e60fb41aeb.png

388ec0b3f5c1f30dbe0be2292e82d15b.png

(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---解压缩文件

6af32087b6cb3bd0dbdd9da792211034.png

(3)我们使用bzip2文件进行压缩,文件的后缀一般是“.bz2”

# bzip2 file---压缩文件

# bzip2 -d file.bz2---使用-d选项解压文件

9433cf01a896e2154fe882f37d17f666.png

(4)我们使用zip对文件进行压缩,文件的后缀一般是“.zip”,当我们对目录进行压缩的时候需要加上“-r”选项

# zip aa.zip file---将file文件压缩为aa.zip文件

# unzip aa.zip---解压aa.zip文件

# zip -r bb.zip /boot/---使用递归的方式将/boot目录下的文件压缩为bb.zip文件

cb095decbf29e07baee6a6b3c68c3d94.png

(23)一般我们使用tar命令的时候会结合压缩命令一起使用(gzip,bzip2)

(1)当我们需要压缩file1和file2文件为file.tar.gz文件时,由于压缩使用的是gzip,所以使用参数“z”,由于是压缩,所以使用参数“c”:

# tar zcvf file.tar.gz file1 file2

6cd1ada0a7fb95e5365a5b01eccecf4c.png

当我们需要解压缩file.tar.gz文件的时候,由于是展开文件,所以需要使用参数“x”:

# tar zxvf file.tar.gz---解压且展开文件file.tar.gz

d2f3ec733a2317cfd7488374ce587298.png

(2)当我们需要压缩file1和file2文件为file.tar.bz2文件时,由于使用的是bzip2,所以使用参数“j”:

# tar jcvf file.tar.bz2 file1 file2

e82b7b23c3ae858cac6d0c917b2dc3c9.png

当我们需要将file.tar.bz2文件解压缩的时候,我们可以使用“jxvf”参数:

# tar jxvf file.tar.bz2

fd4f46bc590ff0e9fb667525b8f0a2d2.png

(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

809358102e132e7f2c180e348a9b2352.png

如果我们希望将“--test”文件删除掉,也需要在删除命令前使用“--”进行字符转义

# rm -rf -- --test

d79a9f9b108dfcbe7060c8d6f7a37519.png

(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。

3d12bfe6cc0276a2271a6b9dbb578421.png

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

# compgen -c | wc -l---查询系统的总命令个数

# compgen -c | head -10---查询总计命令的前10行内容

93f9f12cfddcf05394b4d6ea85291115.png

(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命令管理着一个内置的哈希表,记录了已执行过的命令的完整路径,用该命令可以打印出你所使用过的命令以及执行的次数。

073064a98709e8aaed95312c2bdc4249.png

(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

(38)

创建kettle用户:

create user 'gccurqktl'@'%' identified by 'wetalkstg@2019';

给kettle用户授权:

grant all privileges on report.* to 'gccurqktl'@'%';

(39)

MySQL数据库查询是否有流量:

\> show processlist;

\> select * from information_schema.processlist where Command != 'Sleep' order by Time desc;

(40)

查询MySQL表空间大小:

\> select table_name,table_rows,data_length+index_length, concat(round((data_length+index_length)/1024/1024,2),'MB') data from information_schema.tables where table_schema='report';

(41)

redis弱密码设置:

# redis-cli -h 127.0.0.1 -p 6379 shutdown---redis关闭

# cd /wls/wetalk/hisan/redis

# vim redis.conf---将requirepass一行修改为requirepass Rdhisanstg@2019

# ./redis-server---将redis服务启动起来

# redis-cli -h 127.0.0.1 -p 6379---进入redis

\> config set requirepass Rdhisanstg@2019---不重启redis设置密码

\> config get requirepass---查询密码

\> auth Rdhisanstg@2019---密码验证

\> config get requirepass---再次查询密码

1) "requirepass"

2) "Rdhisanstg@2019"

# redis-cli -h 127.0.0.1 -p 6379 -a Rdhisanstg@2019---此使用这个进行登陆

# redis-cli -h 127.0.0.1 -p 6379 -a Rdhisanstg@2019 shutdown---如果有密码的话进行redis关闭

(42)

文件替换执行脚本

目录结构1

0316d2eab92f4ad157ae8cff1b00714d.png

目录结构2

291a451a17649bcd35966b004f25d020.png

目录结构3

0d652a9711770b965e2d230e6d31efad.png

backup.sh

20ad062e00e951a9d5de2b2e5816763a.png

download.sh

6bd15335efb76f4fa812f32c6d6eff74.png

目录结构4

820667002563b714b462fff349d2ea9c.png

deployop.sh

380dd8e0dd08bbde8b0fb39ae8f1501f.png

scp.sh

0e70274174b9adc2c6b7efd6824d8ad6.png

(43)

查看硬件产品名称:

# dmidecode | grep "Product Name"

查看主板序列号:

# dmidecode | grep -i 'serial number' | grep CN

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值