PJzhang:shell基础入门的2个疗程-one

Posted landesk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PJzhang:shell基础入门的2个疗程-one相关的知识,希望对你有一定的参考价值。

猫宁!!!

 

在centos7上操作这一切

第1节:什么是shell

centos7默认使用shell的bash

cat /etc/shells

技术图片

 

 

第2节:linux的启动过程

Bios(主板,引导介质)---MBR(硬盘,主引导记录)---BootLoader(grub)(启动引导内核,确定内核版本)--kernel(启动内核)---systemd---系统初始化---shell

一般进入BIOS是键入F2

linux自带脚本

dd if=/dev/sda of=mbr.bin bs=446 count=1

技术图片

 

hexdump -C mbr.bin

技术图片

 

 

dd if=/dev/sda of=mbr1.bin bs=512 count=1

技术图片

hexdump -C mbr1.bin|more
技术图片

 

 

寻找grub配置文件

技术图片

 

 

查看内核版本

技术图片

 

 寻找初始化路径,针对centos6

技术图片

top -p 1,显示systemd这个进程,针对centos7

技术图片

 

 

cd /etc/rc.d,针对centos6

cd /etc/systemd/system/,针对centos7

 技术图片

 

 

 systemd读取各种服务

技术图片

 

 

查看文件类型

技术图片

 

 查看脚本的内容

技术图片

 

 

第3节:shell脚本的格式

一条命令只做一件事

 

进入一个目录并查看其中的内容

cd /var/;ls,中间采用分号进行间隔

技术图片

 

 

创建1.sh,内容为cd /var/;ls,赋予可读可执行权限,chmod u+rx 1.sh,执行就好了

技术图片

 

 

cd /var/;ls;pwd;du -sh;du -sh *

技术图片

 

 

一行一条命令便于阅读,极其方便,可以重复使用。创建一个文件的时候,默认有读的权限,但是没有执行的权限。

这个时候不需要分号了。sh 1.sh或者bash 1.sh

技术图片

 

 

查看文件的权限

技术图片

 

 

为了防范格式不兼容的问题,需要一个shell文件的声明,#!/bin/bash,保证在各个平台系统正常使用

技术图片

 

 

./1.sh也可以执行,采用系统默认方式,此外#也可以注释这个脚本的用途,最好放在第二行说明

技术图片

 

 

source ./1.sh,也可以实现执行脚本,显示结果

第4节:脚本不同执行方式的影响

1.sh(完全新建,没有给予可执行权限)内容如下

技术图片

 

 

bash 1.sh,似乎没有进入/tmp目录

技术图片

 

修改1.sh,并执行,说明脚本执行完之后又返回root目录下

技术图片

 

 技术图片

 

 

创建2.sh,没有可执行权限,唯一一个需要可执行权限的

./2.sh

技术图片

 

技术图片

 

 

source ./2.sh
. ./2.sh,直接进入相应的目录,这两个不需要可执行权限

  技术图片

 

 

内建命令,不需要创建子进程,对当前运行环境造成影响。

外部命令,需要创建子进程

 

第5节:管道

管道符号‘|’,将前一个命令执行的后果传递给后面的命令,连接好应用程序,连接输入输出

管道和信号是一样

 

ls -l|more,如果ls -l的内容很多的话,这种方式可以只显示其中的一部分

技术图片

more 1.sh查看1.sh之中的内容

技术图片

 

 

cat anaconda-ks.cfg,可以查看文件中的所有内容,cat anaconda-ks.cfg|more就是查看部分,分页显示

技术图片

 

 

直接输入cat,可以产生一个进程

直接输入ps -f

技术图片

 

两者结合,cat |ps -f,有了一个cat的进程,一直卡在那里,没有执行完全,而且2551对应cat,2552对应ps -f

技术图片

 

 

进程存在的时候,查看某一个进程的运行文件

技术图片

 

 技术图片

 

 技术图片

 

ps-f 已经执行完了,所以没有文件,避免管道符中使用内部命令

技术图片

 

 

分号是隔开两个命令,相互之间可以无关联,管道符是连接作用

技术图片

 

 

第一疗程,over。。。。。。

 

以上是关于PJzhang:shell基础入门的2个疗程-one的主要内容,如果未能解决你的问题,请参考以下文章

PJzhang:python基础入门的7个疗程-two

PJzhang:docker基础知识的2个疗程-one

PJzhang:python基础进阶的10个疗程-two

PJzhang:python基础进阶的10个疗程-one

51CTO学院三周年遇到

51CTO学院三周年偶遇51