Centos7学习笔记(二)-基础命令(一)

1、cp命令

cp命令的四个重要参数:

-p 保持文件所有者、权限信息以及时间属性。

-r 递归复制,可操作目录。

-d 若复制的源文件为链接,则仅复制链接本身,且保持链接指向。

-a 等同于以上的dpr。

例:cp test.txt{,.ori}     =====    cp test.txt test.txt.ori

2、alias命令

查看或者设置命令别名

image.png

由此涉及一个问题——如何忽略因为系统设定的命令别名,导致的命令被强制交互执行?

                                        两个方法:1、完整命令前加“\”,例如:\cp host.txt /opt

                                        2、使用命令的绝对路径 ,例如:/bin/cp host.txt /opt

3、unalias命令

取消别名

4、touch和mkdir

例:touch {1..1000}.txt

mkdir /opt/data{1..3}

多文件或者目录的同时创建。

习题:

1、切换到/tmp目录下,查看当前的工作位置,同时创建data1、data2、data3三个目录。

cd /tmp

pwd

mkdir data{1..3}

2、接第1题,分别在data1、data2、data3目录下创建3个文件,名为host1、host2、host3,然后查看/tmp目录的整个目录结构,最后检查下data1和host1两个对象的属性。

touch data{1..3}/host{1..3}

tree /tmp或tmp -d /tmp

ls -ld /data1

ls -l /data1/host1

3、把/etc/hosts文件复制到/tmp/data1下,然后把data1目录复制到/opt下。

cp /etc/hosts /tpm/data1

cp -r /tmp/data1 /opt

4、将/tmp/data1目录移动到/root目录下,然后删除/opt/data1目录下的hosts文件,最后删除/opt下的data1目录。

mv /tmp/data1 /root

rm -f /opt/data1/hosts

rm -rf /opt/data1

5、echo命令

-n不换行输出。

例:

image.png

-e可以转义转义字符(常用转义字符:\t、\n、\v

例:

image.png

6、cat命令

查看文本文件。重要参数-n,显示行号。

7、more和less

分页显示文本内容。

8、head和tail

显示文件的头部和尾部。同样,-n参数用于控制显示行数。

tail有特殊的参数。-f用于跟踪显示文件尾部的信息。用于调试测试。

 

9、tr命令

tr用于替换(或者删除,参数-d)文本中的字符,格式为“tr [原始字符] [目标字符] ”。部分的替代sed功能。

命令详解参考:https://blog.51cto.com/yangdong/815734

简例:cat /etc/hosts |tr [a-z]  [A-Z]

见下例:(例中用了输入输出重定向来创建文件,执行命令效果)

[root@ecs-ryCz8 /home/study]# cat >stdin_out.txt <<over
> We have a tools.
> I am studying linux.
> Sunday is a good day.
> This weeked a boy will play a big game.
> We will go to the zoo.
> over
[root@ecs-ryCz8 /home/study]# cat stdin_out.txt 
We have a tools.
I am studying linux.
Sunday is a good day.
This weeked a boy will play a big game.
We will go to the zoo.
[root@ecs-ryCz8 /home/study]# tr "god" "574" < stdin_out.txt > ab.txt
[root@ecs-ryCz8 /home/study]# cat ab.txt 
We have a t77ls.
I am stu4yin5 linux.
Sun4ay is a 5774 4ay.
This weeke4 a b7y will play a bi5 5ame.
We will 57 t7 the z77.

上例中,tr转换后,stdin_out.txt文件内容其实是不变的。如果输出结果不>重定向到ab.txt文件,那么转换结果并未存储保留。

这里有一个实用的脚本:

把目录下所有的大写档名换为小写档名
  似乎有很多方式,"tr"是其中一种:
  #!/bin/sh
  dir="/tmp/testdir";
  files=`find $dir -type f`;
  for i in $files
   do
   dir_name=`dirname $i`;
   ori_filename=`basename $i`
   new_filename=`echo $ori_filename | tr [:upper:] [:lower:]` >
/dev/null;
   #echo $new_filename;
   mv $dir_name/$ori_filename $dir_name/$new_filename

   done

脚本中,涉及到“dirname”和“basename”命令,解释如下:

1、dirname命令去除文件名中的非目录部分,删除最后一个“\”后面的路径,显示父目录。 语法:dirname [选项] 参数

2、basename命令用于打印目录或者文件的基本名称,显示最后的目录名或文件名。语法:basename [选项] 参数

参考:https://blog.51cto.com/2937761/2090137

 

题目:

1、已知test.txt文件内容为

test

abclinux

just

请给出在屏幕输出时,不包括just字符串的命令。

a)head -2 test.txt

b)grep -v "just" test.txt

2、请用一条命令完成创建目录 /data/wwdata,即创建/data目录及其下的/wwdata目录。

mkdir -p /data/wwdata

3、已知/tmp目录下存在test.txt文件,如何执行命令,才能把/mnt/test.txt拷贝到/tmp下并覆盖文件,系统还不提示覆盖。

a)\cp /mnt/test.txt /tmp/test.txt

b)/bin/cp /mnt/test.txt /tmp/test.txt

 

10、ls -hil命令展示详解

[root@ecs-ryCz8 /home/study]# ls -hil
33841668         -rw-r--r-- .                    1             root             root             128             Aug      4     13:41     ab.txt
33754154         -rw-r--r-- .                     1             root             root             128             Aug      4     13:40     stdin_out.txt

inode序号       文件类型及权限    硬连接数         所有用户    所有用户组    文件大小        月份    日期    时间        文件名

ls命令常用参数:

-a 显示所有

-l 以长格式输出显示

-h 以人类易识别的格式输出

-i 显示inode

-d 只显示目录

-p 区分目录和文件,目录结尾加/符号

-F 不同文件结尾加不同标识,比如二进制文件加*,链接文件加@

-r 倒序输出结果

-t 输出结果按mtime时间排序

--time-style=iso/long-iso/full-iso/locale

[root@ecs-ryCz8 /home/study]# ls --time-style=full-iso -l
-rw-r--r--  1 root root 128 2020-08-04 13:41:48.836000000 +0800 ab.txt
[root@ecs-ryCz8 /home/study]# ls --time-style=long-iso -l
-rw-r--r--  1 root root 128 2020-08-04 13:41 ab.txt
[root@ecs-ryCz8 /home/study]# ls --time-style=iso -l
-rw-r--r--  1 root root 128 08-04 13:41 ab.txt
[root@ecs-ryCz8 /home/study]# ls --time-style=locale -l
-rw-r--r--  1 root root 128 Aug  4 13:41 ab.txt

比如:例题:以一条命令,查找出最近修改过的文件。—— ls -rtl

 

11、find命令

参数:

-name 按文件名查找

-type 按文件类型查找

-o表示取并集

-a表示取交集

!取反

-exec对查找的结果再处理,需以{} \;结尾,其中\是转义符。

-mtime 按修改时间处理

-newermt   搜索指定日期范围的文件

例如搜索/test下2017-06-03到2017-06-06之间修改过的文件。

$find /test -type f -newermt 2017-06-03 -a ! -newermt 2017-06-06

为了加速搜索,使用xargs的并行功能。(这一点,在xargs里可以再扩展) 

例如,搜索"/"下的所有"Find.pm"结尾的文件:

ls --hide proc / | xargs -i -P 0 find /{} -type f -name "*Find.pm"

获取文件绝对路径

$ find $(pwd)或者$ find $PWD

# 执行readlink,它不仅解析软链接,也可以使用-f选项解析普通文件$           find . -exec readlink -f {} \;

# 使用bash的波浪号扩展 `~+`$         find ~+

 

获取文件名部分(basename)

find的-printf选项有很多修饰符功能,对于处理路径方面的修饰符有%f、%p、%P,其中%f是获取basename(去除所有路径前缀),%p是获取路径自身,一般用不上,%P是获取除了find搜索路径的剩余部分。

首先,想要获取basename,建议使用%f

$ mkdir /tmp/test/test1
$ touch /tmp/test/test1/{x,y,z}.png
$ find /tmp/test -printf "%f\n"
test
a.png
b.png
c.png
test1
x.png
y.png
z.png

 

$ find /tmp/test -printf "%P\n"
a.png
b.png
c.png
test1
test1/x.png
test1/y.png
test1/z.png

从结果中排除目录自身

find搜索目录时,总是会将搜索路径自身也包含到搜索结果中。想办法排除它是必须的。

排除的方法是,加上一个-path选项并取反,-path的参数和find的搜索路径参数必须一致。

$ find /tmp/test ! -path /tmp/test

 

以下有一个exec执行的实例:

[root@ecs-ryCz8 /home/study]# touch study{1..5}.txt

[root@ecs-ryCz8 /home/study]# mkdir linux{1..3}

[root@ecs-ryCz8 /home/study]# ls

ab.txt  linux2  stdin_out.txt  study2.txt  study4.txt

linux1  linux3  study1.txt     study3.txt  study5.txt

[root@ecs-ryCz8 /home/study]# find . -name "linux*" -exec cp -a {} /tmp \;

[root@ecs-ryCz8 /home/study]# ls /tmp/ -l

drwxr-xr-x 2 root root  6 Aug  5 10:21 linux1

drwxr-xr-x 2 root root  6 Aug  5 10:21 linux2

drwxr-xr-x 2 root root  6 Aug  5 10:21 linux3

 

12、xargs命令——从标准输入执行命令

参数:

-n 指定每行最大参数量n,可以将标准输入的文本划分为多行,每行n个参数,默认是以空格作为分隔符。

-d自定义分隔符。

-i把{}内容当做其他命令输出的结果来调用。例:find /data -type f |xargs -i cp {} /tmp

 

find /data  -type f -exec  rm -f {} \;和find /data -type -f |xargs rm -f两者的区别

前者表示逐条执行 rm -f  xxx 、rm -f yyy这样的命令,后者等同于rm -f xxx yyy的命令。即多条执行与单条执行的区别,效率不同。

 

13、tar命令

-z表示用gzip来压缩解压缩。------这里其实有个坑。当用tar命令来打包时,用z参数和不用z参数,表面看起来,输出结果是一样的,但是,用z参数后,调用了gzip进行压缩,gzip会让文件的时间不一致,导致最终md5sum计算的md5值是会不一样的。

-j表示用bzip2来压缩解压缩

-c表示创建压缩文件

-v展示过程

-f表示输出或调用文件

-x表示解压

-t查看压缩文件包含内容

-h表示追踪软连接文件,打包时一起打包压缩

--exclude排除不打包的文件或目录

-X用指定的文件内容来作为排除不打包文件的选项,来排除文件或目录、

 

14、id命令

15、whoami

16、stat命令

stat显示文件的atime、mtime、ctime时间,可以用以下例子帮助理解access time\modify time\change time的各自意思。

 

[root@ecs-ryCz8 /home/study]# touch 111.txt
[root@ecs-ryCz8 /home/study]# stat 111.txt 
  File: ‘111.txt’
  Size: 0         Blocks: 0          IO Block: 4096   regular empty file
Device: fe00h/65024dInode: 33575203    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-08-05 21:26:15.592000000 +0800
Modify: 2020-08-05 21:26:15.592000000 +0800
Change: 2020-08-05 21:26:15.592000000 +0800
 Birth: -
[root@ecs-ryCz8 /home/study]# echo "test11" >>111.txt
[root@ecs-ryCz8 /home/study]# stat 111.txt 
  File: ‘111.txt’
  Size: 7         Blocks: 8          IO Block: 4096   regular file
Device: fe00h/65024dInode: 33575203    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-08-05 21:26:15.592000000 +0800
Modify: 2020-08-05 21:29:58.104000000 +0800
Change: 2020-08-05 21:29:58.104000000 +0800
 Birth: -
[root@ecs-ryCz8 /home/study]# chown bloguser:0 111.txt 
[root@ecs-ryCz8 /home/study]# stat 111.txt 
  File: ‘111.txt’
  Size: 7         Blocks: 8          IO Block: 4096   regular file
Device: fe00h/65024dInode: 33575203    Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/bloguser)   Gid: (    0/    root)
Access: 2020-08-05 21:26:15.592000000 +0800
Modify: 2020-08-05 21:29:58.104000000 +0800
Change: 2020-08-05 21:30:29.480000000 +0800

可以这么说,文件经过vi编辑,那么3个时间都变。如果仅仅是类似echo导入内容至文件,那么mtime和ctime改变。mtime是因为文件内容改变。文件内容大小是文件的属性之一。ctime是表示文件属性改变,比如大小改变、所有者改变,都改ctime时间,ctime时间跟mtime时间完全可以不一致。

 

17、df

-i 查看磁盘inode使用情况

-h 以人类可读的形式查看block使用情况

 

18、cut

相当于awk的最简化版

-d——用于指定“分隔符”,默认用制表符分隔,例如用 -d "/"这样的分隔符

-f——用于指定列,f后跟数字,如-f3,可跟连续符,如-f3,7,10甚至-f3-10

-c——按字符取内容,后面可跟数字,如-c2-4,-c8-

image.png

image.png

 

19、sort

-f——忽略大小写

-n——以数值型内容进行排序,默认是字符串型排序

-r——反向排序

-t——指定分隔符,默认分隔符是制表符

-b——忽略每行前面空白的部分

-u——忽略重复的行,等同于uniq命令

-k——指定排序的列

 

  通过下面的例子,可以看sort各参数的意义。

[study@c7study /home]$ sort -t ":" -k 3,6 /etc/passwd
root:x:0:0:root:/root:/bin/bash
study:x:1000:1000:study:/home/study:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
tcpdump:x:72:72::/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
[study@c7study /home]$ sort -t ":" -k 3,3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
study:x:1000:1000:study:/home/study:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
tcpdump:x:72:72::/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
[study@c7study /home]$ sort -n -t ":" -k 3,3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
study:x:1000:1000:study:/home/study:/bin/bash

du -sh /etc/* |sort -nrk1(这个在这里有问题,应该用h,不应该用n)

EO)H2COJZBNZWVOE`MU6WM3.png

image.png

 

20、top命令

查看系统即时状态的命令,该命令可用生成配置文件,在当前用户下的.toprc文件

可自定义各部分显示颜色,最终写入配置文件中。

常用参数:

-d n ——n为数字,代表秒数,top默认是每3秒刷新信息(Centos系)。

-b ——使用批处理模式输出。一般和-n选项结合使用,用于将top命令的输出重定向到文件中

-n n ——n为数字,表示次数。一般和-b选项合用,用于输出重定向

-p ——后跟PID值,用于查看指定PID进程的信息

-s ——使top在安全模式运行,以避免在交互模式出现错误

-u ——指定监听某用户的进程

常规情况下,top命令运行后,即进入交互模式,交互模式可以用各类单字符操作命令,以下是常用的操作命令:

?或h查看其他交互命令

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

M     以内存使用率排序

N     以PID排序

T      以进程使用的累积时间来排序

k      给某个进程一个信号,可以用于杀死进程

r      给某个进程一个nice值(-20-19,越小越高,详见nice命令)

q      退出top交互模式

top输出的前五行容易懂,进程方面的解释如下:

 

列名 含义
PID 进程id
PPID 父进程id
RUSER Real user name
UID 进程所有者的用户id
USER 进程所有者的用户名
GROUP 进程所有者的组名
TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
PR 优先级
NI nice值。负值表示高优先级,正值表示低优先级
P 最后使用的CPU,仅在多CPU环境下有意义
%CPU 上次更新到现在的CPU时间占用百分比
TIME 进程使用的CPU时间总计,单位秒
TIME+ 进程使用的CPU时间总计,单位1/100秒
%MEM 进程使用的物理内存百分比
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
SWAP 进程使用的虚拟内存中,被换出的大小,单位kb
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
CODE 可执行代码占用的物理内存大小,单位kb
DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
SHR 共享内存大小,单位kb
nFLT 页面错误次数
nDRT 最后一次写入到现在,被修改过的页面数。
S 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
COMMAND 命令名/命令行
WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
Flags 任务标志
// 查看全文
2020 8月 02

Centos7学习笔记(一)

1、安装部分新知

 

a、LVM——逻辑卷管理,作用:动态管理磁盘分区空间,缺点:影响高并发下的磁盘性能

 

b、CentOS 7安装之前,修改网卡名称:

在安装界面,按“tab”键,调整内核参数,添加“net.ifnames=0 biosdevname=0”这2个参数值

(如果是安装好系统后修改,则需几步:1、重命名/etc/sysconfig/network-script/ifcfg-ens33为ifcfg-eth0,并修改内容将DEVICE和NAME值修改为eth0;2、修改/etc/default/grub文件中“crashkernel”关键字所在那行,添加"net.ifnames=0 biosdevname=0"值,注意跟其他参数用空格隔开。3、执行grub2-mkconfig -o /boot/grub2/grub.cfg,然后reboot重启系统)

 

c、两个yum源的更换:

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

curl -o  /etc/yum.repos.d/epel.repo  http://mirrors.aliyun.com/repo/epel-7.repo

题外:在执行第一个curl之前,也可以用">/etc/yum.repos.d/CentOS-Base.repo"先把该文件清空。

 

d、安装后,常用的运维软件安装

yum install -y tree nmap  dos2unix lrzsz nc lsof wget tcpdump htop iftop sysstat nethogs psmisc net-tools bash-completion bash-completion-extras vim-enhanced

各自的用途:

tree——以树形结构显示文件和目录

nmap——扫描端口的工具

dos2unix——转换脚本格式的工具

lrzsz——上传下载文件的工具,后面xshell会直接用到

nc——文件传输,端口检查工具

lsof——反查端口进程,以及服务开发文件工具

wget——下载软件包工具

tcpdump——抓包、监听等重要排错工具

htop——系统进程相关信息查看工具

iftop——查看主机网卡带宽工具

sysstat——含有sar,iostat等重要系统性能查看工具

nethogs——显示进程的网络流量

 

CentOS7系统自带但默认没有安装的一些工具包,如

psmisc——含有killall、pstree等命令

net-tools——含有netstat、ifconfig、route、arp等命令

bash-completion和bash-completion-extras——bash命令补全功能包

vim-enhanced——vim编辑器工具包

 

2、好用的ssh工具——xshell

外观--字体调整

image.png

日志记录——记录所做的操作及命令输出

image.png

rz、sz上传下载目录设定

image.png

“选项”中的"将选定的文本自动复制到剪贴板”,可以支持将系统剪贴板内容粘贴复制

image.png

 

题外:

ss命令:netstat的另一种工具,比netstat好用有效率,利用tcp协议栈中的tcp_diag。常用的参数,几乎等同于netstat参数。比如n、t、l、p、a。

常用组合有

ss列出每个进程名及其监听的端口

ss列所有的tcp sockets

ss列出所有udp sockets

ss列出所有http连接中的连接

·以上包含对外提供的80,以及访问外部的80
·用以上命令完美的替代netstat获取http并发连接数,监控中常用到

ss列出处在FIN-WAIT-1状态的http、https连接

有两篇文章,详细的介绍了ss命令,参见http://www.ttlsa.com/linux-command/ss-replace-netstat/https://wangchujiang.com/linux-command/c/ss.html

 

3、Shell下的快捷键

1、tab——用的最多的快捷键,命令补全

2、ctrl+a——移动光标到当前行最前

     ctrl+e——移动光标到行尾

     ctrl+b——光标左移一个字符

     ctrl+f——光标右移一个字符

     alt+b——光标向左移动一个单词

     alt+f——光标向右移动一个单词

     esc+b——光标移动到当前单词开头

     esc+f ——光标移动到当前单词结尾

     光标在命令行中段:

    ctrl+d——向后删除命令行内容

    alt+d——删除当前光标所在的单词(也会把某些连接符号一起删除)

3、粘贴复制快捷键

ctrl+w——剪切或删除光标前的一个单词

ctrl+k——剪切或删除当前光标位置到行尾的字符

ctrl+u——剪切或删除当前光标位置到行首的字符

ctrl+y——粘贴ctrl+w,ctrl+k,ctrl+u操作的内容

ctrl+insert——复制命令行整个内容

shift+insert——粘贴整个命令行内容

4、ctrl+c——中断正在执行的命令或者删除整个行内容

ctrl+d——退出当前shell命令行

crtl+r——搜索命令行使用过的历史命令记录

ctrl+g——从ctrl+r搜索历史命令模式退出

esc+.——获取上一条命令的最后部分(空格分隔)

5、ctrl+l——清屏,等于clear命令

     ctrl+z——暂停执行在终端运行的任务。

 

!!——执行上一条命令

 

4、man和help

man用于普通命令

help用于shell内置命令。(cd、read、echo、histrory、kill、exec、exit、dirs、complete、continue、fc、jobs、kill、logout、pwd、return、source、true、type、wait、times、umask、ulimit、unalias等都是内置命令)

 

5、环境变量文件生效顺序流程图

image.png

/etc/bashrc最先,其次~/.bashrc,再次~/.bash_profile,最后/etc/profile

 

题外:

调整PS1变量值的一个酷炫效果:

1、编辑/etc/bashrc ——vim /etc/bashrc

2、注释掉41行的内容——具体为——       [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "

3、再下面插入以下内容:

 [ "$PS1" = "\\s-\\v\\\$ " ] &&PS1="[\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\]\[\e[31;1m\] \w\[\e[0m\]]\\$ " 

4、wq保存退出。

 

6、/etc/issue和/etc/issue.net

配置在用户登录终端前显示信息的文件

image.png

可用>/etc/issue和>/etc/issue.net方式清空文件(最好先备份)

 

7、/etc/motd

用户登录系统后显示提示内容的文件

image.png

 

8、/etc/os-release或者/etc/redhat-relase

查看系统版本

查看内核版本 uname -r

image.png

[root@study1 ~]#cat /etc/redhat-release 

CentOS Linux release 7.8.2003 (Core)

image.png

 

9、/etc/sysctl.conf     *** 重要

linux内核参数配置文件

sysctl -p 让修改完成的该文件生效。

 

10、/etc/rc.local文件和/etc/init.d/目录

前者:存放开机自启动程序命令的文件

后者:存放软件启动程序所在的目录

[root@study1 ~]#cat /etc/rc.local #!/bin/bash# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES## It is highly advisable to create own systemd services or udev rules# to run scripts during boot instead of using this file.## In contrast to previous versions due to parallel execution during boot# this script will NOT be run after all other services.## Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure# that this script will be executed during boot.

 

touch /var/lock/subsys/local

前者已经文件中说明,该文件为兼容目的存在(Centos7),并且必须在chmod +x /etc/rc.d/rc.local后,程序才会执行。(Centos7)

后者的作用,也是在Centos7之前

image.png

 

11、/etc/inittab

设置开机运行级别及启动相应级别运行脚本的文件(CentOS7之前)

image.png

CentOS7已经半取消运行级别的概念,分为了poweroff、rescue、multi-user、graphical、reboot五个模式,其实是合并了原来的init 2\3\4为multi-user模式,具体结果如下:

[root@study1 ~]#ls /usr/lib/systemd/system -l |grep  level |grep -v wantlrwxrwxrwx. 1 root root   15 Jul 26 23:51 runlevel0.target -> poweroff.targetlrwxrwxrwx. 1 root root   13 Jul 26 23:51 runlevel1.target -> rescue.targetlrwxrwxrwx. 1 root root   17 Jul 26 23:51 runlevel2.target -> multi-user.targetlrwxrwxrwx. 1 root root   17 Jul 26 23:51 runlevel3.target -> multi-user.targetlrwxrwxrwx. 1 root root   17 Jul 26 23:51 runlevel4.target -> multi-user.targetlrwxrwxrwx. 1 root root   16 Jul 26 23:51 runlevel5.target -> graphical.targetlrwxrwxrwx. 1 root root   13 Jul 26 23:51 runlevel6.target -> reboot.target

CentOS7更改运行级别:

systemctl set-default graphical-target

获取当前运行级别:systemctl get-default

 

 

/etc下其他重要文件:

/etc/hostname ——主机名配置文件。CentOS7中已经改用hostnamectl set-hostname xxx命令来设置主机名,还分为静态主机名(static hostname)临时主机名(transient hostname)以及pretty 主机名三种。具体参考hostnamectl命令帮助。

/etc/fstab——无需多说,系统分区挂载文件

/etc/sysconfig/network-script/ifcfg-ens66——网卡配置文件

/etc/resolv.conf——DNS域名解析文件。当“网卡配置文件”里设置了DNS时,网卡重启,则会用网卡配置的DNS值覆盖此文件DNS值。

/etc/hosts——系统本地DNS解析文件

 

12、/var/log和/proc目录

/var/log/messages——linux系统级别日志文件

/var/log/secure——用户登录信息(安去日志文件)

/var/log/dmesg——记录硬件信息加载情况的日志文件

/proc/meminfo——查看系统内存

/proc/cpuinfo——查看CPU信息

/proc/loadavg——查看负载信息

/proc/mounts——当前设备挂载列表信息文件

/proc/interrupts——当前系统中断信息文件

 

13、Linux开机启动流程描述

CentOS6--------

开机BIOS自检—>读取MBR引导—>加载GRUB菜单—>加载内核(kernel)—>运行init进程—>读取/etc/inittab文件—>读取/etc/init/rcS.conf文件—>执行/etc/rc.d/rc.sysinit脚本

                                                                                                                                                                                                                —>读取/etc/init/rc.conf文件—>执行/etc/rc.d/rc 3脚本—>/etc/rc3.d/*

                                                                                                                                                                                                                               —>读取/etc/rc.local文件—>设定用户开机自启动程序

                                                                                                                                                                                                                                                                    —>读取/etc/init/tty.conf文件—>启动mingetty 3进程

如图所示:

image.png

image.png

关于CentOS7的启动流程,看图示,与CentOS6的区别

image.png

 

 

 

 

// 查看全文
2020 7月 26