快捷搜索:
来自 67677新澳门手机版 2019-07-29 23:27 的文章
当前位置: 67677新澳门手机版 > 67677新澳门手机版 > 正文

Linux基础命令第二波

第1章 Linux启动过程

开机自检(BIOS)##硬件检查

MBR引导

GRUB菜单(选择不同的内核)

加载内核

运行init进程(Linux系统里面第一个进程)

读取/etc/inittab配置文件(读取运行级别)

执行/etc/rc.d/sysinit脚本(系统的初始化脚本 设置IP地址)

执行/etc/rc.d/rc脚本(根据系统的运行级别 在开机的时候启动不同的软件)

启动mingetty进程

显示界面

Day12,

第2章 PATH 变量

PATH 存放的是Linux下命令的位置

[root@oldboyedu-50 ~]# echo $PATH 
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

规律
/bin
/sbin
/usr/bin
/usr/sbin
/usr/local/bin
/usr/local/sbin

Linux执行命令的过程

是否是别名

在PATH中找命令是否存在

      没有的话提示command not fonund

      有就执行

 

1.1 第8题

linux 系统运行级别一般为 0-6,请分别写出每个级别的含义。

第3章 显示一级目录

问题:

如何过滤出已知当前目录下oldboy中的所有一级目录

(提示:不包含oldboy目录下面目录的子目录及隐藏目录,即只能是一级目录)?

创建环境
mkdir /oldboy -p
cd /oldboy
mkdir ext/oldboy test xiaodong xiaofan xingfujie -p
touch jeacen oldboy wodi.gz yingsui.gz

1.1.1 运行级别的含义

0 关机

1 单用户模式

2 多用户模式 没有NFS

3 完全的多用户   命令行模式

4 没有使用

5 图形化界面模式

6 重启

3.1 方法一 tree

-d  只显示目录

-L level 最多显示多少层 -L 1 最多显示一层

[root@oldboyedu-50 oldboy]# tree -dL 1
.
├── ext
├── test
├── xiaodong
├── xiaofan
└── xingfujie

5 directories

1.1.2 临时切换运行级别 

init 5 临时修改

3.2 方法二 find

-maxdepth  最大的深度

-maxdepth  最大的深度
[root@oldboyedu-50 oldboy]# find -maxdepth 1 -type d
.                                                    显示出了目录 但是多了一个.
./xingfujie
./test
./xiaofan
./xiaodong
./ext

!排除取反 非

排除. 只显示目录
[root@oldboyedu-50 oldboy]# find -maxdepth 1 -type d ! -name "."
./xingfujie
./test
./xiaofan
./xiaodong
./ext

1.1.3 查看运行级别

runlevel 显示运行级别

3.3 方法三grep

^以xxx/开头的行  三剑客使用 正则表达式

[root@oldboyedu-50 oldboy]# ls -l |grep "^d"
drwxr-xr-x. 3 root root 4096 Jul 10 19:45 ext
drwxr-xr-x. 2 root root 4096 Jul 10 19:45 test
drwxr-xr-x. 2 root root 4096 Jul 10 19:45 xiaodong
drwxr-xr-x. 2 root root 4096 Jul 10 19:45 xiaofan
drwxr-xr-x. 2 root root 4096 Jul 10 19:45 xingfujie
^以xxx/开头的行  三剑客使用 正则表达式

1.1.4 永久修改运行级别

修改文件 /etc/inittab

3.4 方法四awk

$2表示第二列

[root@oldboyedu-50 oldboy]# ls -l |awk '$2>1'                第二列大于一的
total 20
drwxr-xr-x. 3 root root 4096 Jul 10 19:45 ext
drwxr-xr-x. 2 root root 4096 Jul 10 19:45 test
drwxr-xr-x. 2 root root 4096 Jul 10 19:45 xiaodong
drwxr-xr-x. 2 root root 4096 Jul 10 19:45 xiaofan
drwxr-xr-x. 2 root root 4096 Jul 10 19:45 xingfujie

1.2 第9题

希望防火墙,仅在 3 级别上开机自启动,该如何做?

3.5 拓展方法两种

[root@oldboyedu-50 oldboy]# ls -F |grep "/"
-F 不同的类型文件 加上不同的标记  目录加上/

[root@oldboyedu-50 oldboy]# ls -ld */  ##看以/结尾的

1.2.1 --level

在--level后加数字指定运行级别 on 开 off 关

[[email protected] ~]# chkconfig --level 3  iptables on

[[email protected] ~]# chkconfig |grep ipt

iptables       0:off   1:off   2:off   3:on    4:off   5:off   6:off

[[email protected] ~]# chkconfig --level 3  iptables off

[[email protected] ~]# chkconfig |grep ipt

iptables        0:off   1:off   2:off   3:off   4:of

第4章 压缩

问题:

/etc/目录为linux系统的默认的配置文件及服务启动命令的目录

       a.请用tar打包/etc整个目录(打包及压缩)

       b.请用tar打包/etc整个目录(打包及压缩,但需要排除/etc/services文件)

       c.请把a点命令的压缩包,解压到/tmp指定目录下(最好只用tar命令实现)

1.3 第13题

etc/目录为 linux 系统的默认的配置文件及服务启动命令的目录

   a.请用 tar打包/etc 整个目录(打包及压缩)

   b.请用 tar打包/etc 整个目录(打包及压缩,但需要排除/etc/services 文件)

   c.请把 a 点命令的压缩包,解压到/tmp 指定目录下(最好只用 tar命令实现)

4.1 tar下的参数

tar zcvf /tmp/etc.tar.gz  /etc/
         压缩之后放在哪   要压缩的
    z  gzip    通过gzip软件压缩
    c  create  创建包
    v  verbose 显示过程
    f  file    指定文件 (在tar中  f 必须要在最后边)
    t  list    显示压缩包内容
    x  extaact 解压
压缩  zcvf  zcf
查看  ztf   tf
解压  zxf   xf

1.3.1 创建压缩包

创建压缩包的时候尽量使用相对路径

[[email protected] ~]# tar zcvf  /tmp/etc.tar.gz     /etc/

                                   筐(压缩包的名字) 要压缩的文件          

[[email protected] ~]# ls -lh /tmp/etc.tar.gz

-rw-r--r-- 1 root root 9.3M Aug 25 09:34 /tmp/etc.tar.gz

              z----压缩工具 gzip  通过gzip软件进行压缩

              c----create 创建压缩包

              v----显示 创建/解压 的过程

              f----指定压缩包的位置和名字

4.2 创建压缩包

一般压缩不用参数v  不用显示压缩过程 所以直接用zcf即可

[root@oldboyedu-50 tmp]# tar ztf /tmp/etc.tar.gz   打包及压缩

1.3.2 查看压缩包的内容

查看压缩包的内容时可以不加z参数,系统会自动选择。

[[email protected] tmp]# tar ztf etc.tar.gz

              t----显示或者列表

4.3 解压

解压前先进入要解压到的目录

[root@oldboyedu-50 tmp]# tar zxf etc.tar.gz   ##先进入tmp目录

1.3.3 解压缩

解压不指定路径的时候会解压到当前路径。

[[email protected] tmp]# tar zxf etc.tar.gz

              x----extract 解压

       指定解压路径

              -C (大写c) 指定解压路径

[[email protected] ~]# tar xf /tmp/etc.tar.gz  -C /tmp/

[[email protected] ~]# ls -ld /etc/

drwxr-xr-x. 78 root root 4096 Aug 25 09:42 /etc/

4.4 解压到指定目录

解压使用参数zxf  z可以省略 xf即可

[root@oldboyedu-50 tmp]# tar xf /tmp/etc.tar.gz -C /opt/  解压到opt目录
[root@oldboyedu-50 tmp]# ll /opt/                         解压后检查
total 8
drwxr-xr-x. 78 root root 4096 Jul 10 19:41 etc
drwxr-xr-x.  2 root root 4096 Mar 26  2015 rh

1.3.4 排除指定文件

--exclude  后面加上等号填上要排除的文件

[[email protected] /]# tar zcf /tmp/etc-paichu.tar.gz /etc/ --exclude=etc/services

[[email protected] /]# tar tf /tmp/etc-paichu.tar.gz |grep "services"

etc/init/readahead-disable-services.conf

4.5 排除某个文件或目录

要求:排除services

排除多个

--exclude-from 加个名单  .txt

.txt里写上路径内容

[root@oldboyedu-50 ~]# tar zcf /tmp/etc.tar.gz /etc/ --exclude /etc/services 
[root@oldboyedu-50 ~]# tar tf /tmp/etc.tar.gz |grep "services"  检查是否排除
etc/init/readahead-disable-services.conf

1.3.5 压缩时的提示

Removing leading `/' from member names

把压缩包中的文件最前面的斜线删除

            压缩包里的内容 绝对路径>>>相对路径

原因:

       解压的时候会按照压缩包内的路径进行解压,从根目录打包会覆盖其他文件

系统解决办法:

       出于安全的考虑,把绝对路径前面的'/'去掉,变成相对路径

4.6 tar经典故障

tar: Removing leading `/' from member names
安全警告  删除 开始   /   
     把压缩包的 开头的/ 删除掉
由绝对路径 变为了相对路径
防止解压的时候覆盖源文件

1.3.6 相对路径压缩

先进入根目录再进行压缩。

[[email protected] /]# tar zcf /tmp/etc.tar.gz etc/

       一条命令,进入根目录并且压缩。

[[email protected] ~]# cd / && tar zcf /tmp/data.tar.gz etc/

&& 表示前面的执行好了,再执行后面的

[[email protected] ~]# cd / && tar zcf /tmp/etcbak.tar.gz etc/

[[email protected] /]# ll /tmp/etcbak.tar.gz

-rw-r--r-- 1 root root 9733401 Aug 25 10:54 /tmp/etcbak.tar.gz

第5章 显示行号

打印配置文件nginx.conf内容的行号及内容 如何做?

创建环境

[root@oldboyedu-50 ~]# mkdir /oldboy && echo stu{01..10} |xargs -n1 > /oldboy/ngingx.conf

1.4 第13题

 

创建环境

[[email protected] /]# mkdir /oldboy ; echo "I am oldboy,myqq is 31333741">/oldboy/oldboy.txt

[[email protected] oldboy]# cat oldboy.txt

I am oldboy,myqq is 31333741

现在需要从文件中过滤出“oldboy”和“31333741”字符串,请给出命令。

 

5.1 方法一 cat

-n 显示行号

[root@oldboyedu-50 oldboy]# cat -n ngingx.conf 
     1    stu01
     2    stu02
     3    stu03
     4    stu04
     5    stu05
     6    stu06
     7    stu07
     8    stu08
     9    stu09
    10    stu10

1.4.1 方法一 sed sed

先用sed命令将前面的部分替换为空,经过管道,sed在将后面的部分替换为空。

[[email protected] oldboy]# sed 's#I am ##g' oldboy.txt |sed 's#,myqq is##g'

oldboy 31333741

5.2 方法二 vim

vim /oldboy/nginx.conf
进入后  
:set nu    显示行号
:set nonu  取消显示行号

1.4.2 方法二 sed awk

sed将逗号换为空格,awk以空格为分隔符,print输出列的内容,$3表示第三列,$NF 表示最后一列

[[email protected] oldboy]# sed 's#,# #g' oldboy.txt |awk '{print $3,$NF}'

oldboy 31333741

5.3 方法三 awk

NR   行号

$1   表示第一列

$0   表示一整行的内容

图片 1图片 2

[root@oldboyedu-50 ~]# awk '{print NR,$1}' /oldboy/ngingx.conf 
1 stu01
2 stu02
3 stu03
4 stu04
5 stu05
6 stu06
7 stu07
8 stu08
9 stu09
10 stu10

View Code

1.4.3 方法三 awk

使用-F指定分隔符,这里指定为逗号和空格,print 需要在{}中才可以使用。

-F 指定分隔符,表示每一列的结束标记

[[email protected] oldboy]# awk -F "[, ]" '{print $3,$6}' oldboy.txt

oldboy 31333741

本文由67677新澳门手机版发布于67677新澳门手机版,转载请注明出处:Linux基础命令第二波

关键词: