第三周 随堂笔记

Linux启动过程

1.开机自检BIOS

2.MBR引导

3.GRUB菜单

4.加载内核

5.运行init进程

6.从/etc/inittab读取运行级别

7.根据/etc/rc.sysinit初始化系统(设置主机名 设置ip)

8.根据运行级别启动对应的软件(开机自启动软件)

9.运行mingetty显示登录界面

什么是PATH环境变量,它有什么作用?

echo $LANG $PS1

[root@hkping ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

修改环境变量

[root@hkping ~]# export LANG=en_US.UTF-8

PATH的作用

1.环境变量

2.存放的是命令的位置/目录

linux下运行命令的过程

###1.输入命令

###2.在PATH里面  路径进行查找

###3.找到了就运行

###4.找不到就提示:command not found或no such file or dir

小结:

1.PATH作用

2.Linux下面执行命令简单过程

如何查询某个软件是否安装了?

[root@hkping oldboy]# rpm -qa|grep tree

tree-1.5.3-3.el6.x86_64

查看某个软件包里面的内容

[root@hkping oldboy]# rpm -ql tree

/usr/bin/tree

/usr/share/doc/tree-1.5.3

/usr/share/doc/tree-1.5.3/LICENSE

/usr/share/doc/tree-1.5.3/README

/usr/share/man/man1/tree.1.gz

#第1题:如何过滤出已知当前目录下oldboy中的所有一级目录(提示:不包含oldboy目录下面目录的子目录及隐藏目录,即只能是第一级目录)?

方法1:tree

[root@hkping oldboy]# tree -dL 1

.

├── ext

├── test

├── xiaodong

├── xiaofan

└── xingfujie

方法2:find

[root@hkping oldboy]# find -maxdepth 1 -type d ! -name '.'

./xingfujie

./test

./xiaofan

./xiaodong

./ext

方法3:ls -l

[root@hkping oldboy]# ls -l|grep "^d"

drwxr-xr-x 3 root root  4096 Dec 21 20:33 ext

drwxr-xr-x 2 root root  4096 Dec 21 20:33 test

drwxr-xr-x 2 root root  4096 Dec 21 20:33 xiaodong

drwxr-xr-x 2 root root  4096 Dec 21 20:33 xiaofan

drwxr-xr-x 2 root root  4096 Dec 21 20:33 xingfujie

方法4:awk

[root@hkping oldboy]# ls -l|awk '$2>1'

total 44

drwxr-xr-x 3 root root  4096 Dec 21 20:33 ext

-rw-r--r-- 2 root root    13 Dec 20 23:16 oldboy.txt

-rw-r--r-- 2 root root    13 Dec 20 23:16 oldboy.txt-hard

drwxr-xr-x 2 root root  4096 Dec 21 20:33 test

drwxr-xr-x 2 root root  4096 Dec 21 20:33 xiaodong

drwxr-xr-x 2 root root  4096 Dec 21 20:33 xiaofan

drwxr-xr-x 2 root root  4096 Dec 21 20:33 xingfujie

方法5:ls

[root@hkping oldboy]# ls -F|grep '/'

ext/

test/

xiaodong/

xiaofan/

xingfujie/

cd -=====$OLDPWD

cd.======当前目录 复制/移动 cp /etc/hosts .

cd..=====进入到当前目录的上一级目录

cd ~====进入当前用户的家目录  回老家

cd  ====回老家  回家

cd -=====快速回到上一次的所谓位置/目录

#进入到/etc/sysconfig/network-scripts/目录,并查看你所在位置

#进入到上一级目录,并查看你所在位置

#进入到/root目录下面,并显示你所在位置

#快速返回到/你上一次的位置

#回到老家

[root@hkping ~]# cd /etc/sysconfig/network-scripts/

[root@hkping network-scripts]# pwd

/etc/sysconfig/network-scripts

[root@hkping network-scripts]# cd ..

[root@hkping sysconfig]# pwd

/etc/sysconfig

[root@hkping sysconfig]# cd /root

[root@hkping ~]# pwd

/root

[root@hkping ~]# cd -

/etc/sysconfig

[root@hkping sysconfig]# cd

[root@hkping ~]# pwd

/root

第3题:一个目录中有很多文件(ls查-看时好多屏),想最快速度查看到最近更更新的⽂文

件。如何看?

#ls显示的时候按照时间顺序 最近的在最下面 按时间顺序逆序/倒叙

ls -lrt

-r 逆序显示内容

-t 按照文件的修改时间

第4题:已知apache/nginx服务的访问日志按天记录在服务器器本地目录/app/logs

下,由于磁盘空间紧张,现在要求只能保留留最近7天访问日志!请问如何解决? 请给出解决

办法或配置或处理理命令。(提示:可以从apache服务配置上着手,也可以从生成出来的日志

上着手。)

#数据模拟命令

mkdir -p /app/logs

cd /app/logs

for time in {01..20};do date -s "201705$time"; touch access_www_$(date +%F).log done date -s "20170520"

方法1:

[root@hkping logs]# find -type f -name '*.log' -mtime +7|xargs ls -l

方法2:

[root@hkping logs]#ls -l$ (find -type f -name '*.log' -mtime +7)

方法3:

[root@hkping logs]# find -type f -name '*.log' -mtime +7 -exec ls -l {} \;

第5题:调试系统服务时,希望能实时查看系统日志/var/log/secure的更新,如何做?

tail -f=====tailf 显示文件的实时更新

[root@hkping oldboy]# tail -f /var/log/secure 

第6题:打印配置文件nginx.conf内容的行号及内容,该如何做?

[root@hkping oldboy]# echo stu{01..10}|xargs -n1 >nginx.conf

[root@hkping oldboy]# cat nginx.conf

stu01

stu02

stu03

stu04

stu05

stu06

stu07

stu08

stu09

stu10

方法1:cat

[root@hkping oldboy]# cat -n nginx.conf

    1 stu01

    2 stu02

    3 stu03

    4 stu04

    5 stu05

    6 stu06

    7 stu07

    8 stu08

    9 stu09

    10 stu10

方法2:vi/vim

:set nu #显示行号

:set nonu #取消显示行号

方法3:grep

[root@hkping oldboy]# grep -n '.' nginx.conf

1:stu01

2:stu02

3:stu03

4:stu04

5:stu05

6:stu06

7:stu07

8:stu08

9:stu09

10:stu10

方法4:awk

[root@hkping oldboy]# awk '{print NR,$0}' nginx.conf

1 stu01

2 stu02

3 stu03

4 stu04

5 stu05

6 stu06

7 stu07

8 stu08

9 stu09

10 stu10

小结:

1.cat -n;vi/vim显示行号

2.grep -n

3.awk NR $0 print

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

#  0 - halt (Do NOT set initdefault to this) 关机

#  1 - Single user mode 单用户模式

#  2 - Multiuser, without NFS (The same as 3, if you do not have networking)

#  3 - Full multiuser mode 多用户模式,命令行

#  4 - unused

#  5 - X11 图形化界面桌面模式

#  6 - reboot (Do NOT set initdefault to this) 重启

###如何修改运行级别

init 3 临时

/etc/inittab 永久(修改文件)

###如何查看运行级别

runlevel

第8题  装完系统后,希望让网络文件共享服务NFS(iptabls),仅在3级别上开机自启动,该如何做?

chkconfig iptables on

chkconfig iptables off

[root@hkping ~]# chkconfig --level 3 iptables on

[root@hkping ~]# chkconfig |grep ipt

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

第9题  linux系统中查看中文,但是乱码了,请问如何解决乱码问题?

###原因:linux使用的字符集与远程连接工具的不同

###解决:

###方法1推荐,修改xshell的字符集

###方法2,修改系统字符集

####1)export LANG=en_US.UTF-8

####2)写入配置文件

cp /etc/sysconfig/i18n /etc/sysconfig/i18n.bak 备份

echo 'LANG=en_US.UTF-8' >/etc/sysconfig/i18n

####3)source /etc/sysconfig/i18n

第10题  /etc目录为linux系统的默认的

tar  创建查看解压压缩包

tar zcf              /tmp/etc.tar.gz              /etc/

创建压缩包        压缩包存放的位置        压缩哪个目录/ 文件

z------通过gzip压缩工具压缩

c------表示create创建压缩包

v------表示verbose显示执行过程

f-------表示file 接上压缩包的名字

查看压缩包里的内容

tar tf /tmp/etc.tar.gz

z-----表示list 显示压缩包的内容

解压

tar xf etc.tar.gz

解压到指定目录

tar xf etc.tar.gz -C /opt

排除某个目录压缩指定目录

tar zcf /tmp/etc-paichu.tar.gz /etc/ --exclude=/etc/services

创建

tar zcf

查看

tar tf

解压

tar xf

tar: Removing leading `/' from member names

把压缩包开始的/删除  tar命令打包的时候会把压缩包中的文件-绝对路径变为相对路径

tar zcf              /tmp/sanqian.tar.gz              /etc/hgsq.txt

假设打包的时候使用的是绝对路径,压缩包中也是绝对路径

/etc/hgsq.txt

解压的时候也会按照这个路径解压,会把源文件覆盖

tar命令打包压缩的时候,会自动把绝对路径变化为相对路径,为了安全。

小结:

1.tar 打包压缩

2.创建压缩包 查看压缩包 解压

3.解压到指定文件夹

4.创建压缩包排除某个文件

第11题  已知如下命令及结果

mkdir -p /oldboy

echo "I am oldboy,myqq is 31333741">/oldboy/oldboy.txt

a.现在需要从文件中过滤出‘oldboy’和‘31333741’字符串,请给出命令

方法1:sed

sed 's#I am ##g' oldboy.txt|sed 's#,myqq is##g'

方法2:sed/tr+awk

sed 's#,# #g' oldboy.txt|awk '{print $3,$6}'

tr "," " "

方法3:awk指定多个分隔符

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

-F "[, ]"  表示以逗号或者空格作为分隔符

b.如果需要从文件中过滤出oldboy,31333741字符串,请给出命令

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

小结:

1.tr命令

2.awk指定分隔符,指定多个分隔符

第12题  如何查看/etc/services文件有多少行?

[root@hkping oldboy]# wc -l /etc/services

10774 /etc/services

屌丝去洗浴中心之路

1)查看22端口是否开启 talnet

2)sshd远程连接进程是否在运行

第13题  过滤出/etc/services 文件3306或1521两数字所在行的内容

egrep "3306|1521" /etc/services

第14题  命令行及shell中加单引号和加双引号的区别

单引号:所见即所得  吃啥吐啥

[root@hkping oldboy]# echo '$LANG $(hostname) `pwd`'

$LANG $(hostname) `pwd`

双引号:里面的特殊符号会被解析

[root@hkping oldboy]# echo "$LANG $(hostname) `pwd`"

en_US.UTF-8 hkping /oldboy

第八章  Linux文件属性详解

解决两个问题:

1.No space left on device  磁盘空间不足

2.软连接和硬链接区别

[root@hkping ~]# ls -lhi /etc/hosts

390175 -rw-r--r--. 2 root root 200 Dec 16 17:23 /etc/hosts

文件属性======ls -lhi每一列的含义

390175      -                        rw-r--r--.                                        2                            root      root        200                Dec 16 17:23    /etc/hosts

node号码    文件的类型        文件的权限 (.与selinux有关)      文件硬链接数量      主人    家人      文件大小          文件修改时间  文件名

文件名不是文件的属性

inode和block简介

获得一个硬盘到可以向硬盘存放数据

硬盘(房子),分区(划分隔断),格式化创建文件系统(装修不同风格),安装门窗(挂载)

innode

1)含义

index node索引节点

用来存放文件属性的空间,通过inode号码找到这个空间的。

inode号码----家庭住址

inode空间----家庭

文件名不存放在inode中。

2)怎么来的

格式化创建文件系统

3)特点

1#inode存放文件属性

2#存放block的位置,指向block的指针

3#创建一个文件要占用一个inode

4#inode节点号相同的文件,互为硬链接文件,可以认为是一个文件的不同入口。

硬链接数量====超市入口的数量

5#inode在某一个文件系统(分区),是唯一的。

4)怎么用/看

ls -i(看某些文件的inode号码)或者df -i(系统里面inode用了多少剩余多少)

block

1)含义

数据块

实际存放数据的位置

2)怎么来的

格式化创建文件系统

3)特点

1#block是实际放数据的位置

2#block一般大小4k(centos 6.x)1k 8k

3#创建大文件会占用多个block,如果文件很小1k,4k中剩余的空间被浪费

4#创建一个非空文件要占用一个inode,和至少一个block

5#每读取一个block都会消耗一次磁盘I/O(input/output磁盘读写)

4)怎么用/怎么看

df -h(磁盘block使用情况)

ls -lh

小结:

inode和block小结

1.格式化创建文件系统

2.两个inode文件相同,互为硬链接

3.创建一个非空文件要占用一个inode和至少一个block

4.如何查看inode和block的使用情况:df -i df -h

小故障:No space left on device  磁盘空间不足——因为block满了

#第一步:看看到底哪里满了

[root@hkping ~]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda3      8.8G  1.5G  7.0G  18% /

tmpfs          1.9G    0  1.9G  0% /dev/shm

/dev/sda1      190M  40M  141M  22% /boot

#第二步:是哪个目录占用空间大,最终定位到目录或文件

[root@hkping ~]# du -sh /*|grep G

[root@hkping usr]# du -sh /usr*|grep G

1.1G /usr

第三步:问清楚是否可以删除,然后再操作。

inode数量不够了,造成磁盘空间不足

[root@hkping tmp]# mkdir -p /app/logs

[root@hkping tmp]# dd if=/dev/zero of=/dev/sdc bs=8k count=10

10+0 records in

10+0 records out

81920 bytes (82 kB) copied, 0.000445104 s, 184 MB/s

[root@hkping tmp]# ls -l /dev/sdc

-rw-r--r-- 1 root root 81920 Dec 20 20:31 /dev/sdc

[root@hkping tmp]# mkfs.ext4 /dev/sdc

[root@hkping tmp]# mount -o loop /dev/sdc /app/logs

[root@hkping tmp]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda3      8.8G  2.3G  6.1G  28% /

tmpfs          1.9G    0  1.9G  0% /dev/shm

/dev/sda1      190M  40M  141M  22% /boot

/dev/sdc        73K  14K  55K  21% /app/logs

[root@hkping tmp]# df -i 主要看下inode数量

Filesystem    Inodes IUsed  IFree IUse% Mounted on

/dev/sda3      593344 55386 537958  10% /

tmpfs          488561    1 488560    1% /dev/shm

/dev/sda1      51200    39  51161    1% /boot

/dev/sdc          16    11      5  69% /app/logs

[root@hkping logs]# touch stu{1..6}.log /app/logs/

touch: cannot touch `stu6.log': No space left on deviceFilesystem   

[root@hkping logs]# df -i inode满了

Filesystem    Inodes IUsed  IFree IUse% Mounted on

/dev/sda3      593344 55386 537958  10% /

tmpfs          488561    1 488560    1% /dev/shm

/dev/sda1      51200    39  51161    1% /boot

/dev/sdc          16    16      0  100% /app/logs

[root@hkping logs]# rm -f *.log

文件类型:

- f file 普通文件

d directory 目录

l softlink 软连接(快捷方式)

##二进制文件  命令

[root@hkping ~]# file /bin/ls

/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped

##文本文件

[root@hkping ~]# file /etc/hosts

/etc/hosts: ASCII text

##数据文件 data

[root@hkping ~]# file /tmp/etc.tar.gz

扩展名—文件后面的小围脖

windows通过扩展名区分不同类型的文件

linux扩展名是给我们看到的,不影响使用

.sh 脚本文件

.conf 配置文件

用户和用户组简介

整体对于一个文件/目录来说,用户可以分为3类

主人  家人 陌生人

所有者的名字 所有者属于的组的名字

[root@hkping ~]# ls -hli /etc/hosts

390175 -rw-r--r--. 2 root root 200 Dec 16 17:23 /etc/hosts

假设我是oldboy用户,我与这个文件有什么关系

#id命令查询用户信息

#属于哪个用户组

在linux中存放存在于系统中的用户如何分类

UID user id 用户的id号码,相当于身份证号码 *****

GID group id 用户组的id号码,相对于户口本号码

1.皇帝 root uid:0

2.傀儡 虚拟用户 uid:1-499 系统中每个进程要有一个对应用户,无法使用的。

3.平民百姓 普通用户 uid:500+

如何保护皇帝:

1.禁止root远程登录

2.修改ssh默认端口号22

3.定期分析/var/log/secure 记录着用户的登录信息

#与用户有关的文件

/etc/passwd 存放用户的信息

/etc/shadow 用户的密码信息

/etc/group 用户组的信息

/etc/passwd

root:x:0:0:root:/root:/bin/bash

oldboy:x:500:500::/home/oldboy:/bin/bash

第一列:用户名

第二列:存放密码的位置

第三列:UID

第四列:GID

第五列:用户的一些说明信息,默认为空

第六列:用户的家目录

~

root ~ /root

oldboy ~ /home/oldboy

第七列:用户使用的shell,用户使用的命令解释器

/bin/bash-------centos的默认命令解释器

/sbin/nologin---用户无法登陆系统,相当于傀儡用户

linux基础权限介绍

r 4 read 可以读取文件内容

w 2 write 修改文件内容

x 1 execute 可以运行文件(命令、脚本)

- 0 什么权限都没有

-rw- r-- r--. 2 root root 200 Dec 16 17:23 /etc/hosts

主人 家人 陌生人

6 4 4

-rwx r-x r-x. 1 root root 117048 Mar 23  2017 /bin/ls

7 5 5

软硬链接

软链接-----windows的快捷方式

符号链接

怎么来的(创建软链接)

[root@hkping oldboy]# ln -s oldboy.txt oldboy.txt-soft

[root@hkping oldboy]# ll oldboy*

-rw-r--r-- 1 root root 13 Dec 20 23:16 oldboy.txt

lrwxrwxrwx 1 root root 10 Dec 20 23:17 oldboy.txt-soft -> oldboy.txt

特点

1.存放着源文件的位置

2.源文件被删除

3.节约时间

硬链接

相当于是超市的前后门,通过不同的大门进入超市

在用一个分区中,两个文件或多个文件的inode号码相同,这些文件互为硬链接

怎么来的(硬链接创建)

[root@hkping oldboy]# ln oldboy.txt oldboy.txt-hard

ln命令创建

特点:

1.硬链接相当于超时的前后门,数量就是超市一共有多少门

2.删除硬链接或源文件,文件还是可以使用的

3.把硬链接和源文件都删除,文件被删除=====硬链接数量为0

文件删除原理:

1.删除这个文件所有相关的硬链接-rm  ---删除测试所有入口

2.这个文件的进程调用数也为0  ---没有人使用测试

1)硬链接数为0

2)进程调用数为0

某个文件没有被彻底删除,导致磁盘空间满了。

模拟思路

向/var/log/secure 追加8亿

seq 800000000

[root@hkping ~]# du -sh /var/log/* |grep G

6.5G /var/log/secure

[root@hkping ~]# rm -rf /var/log/secure

[root@hkping ~]# du -sh /*|grep G

du: cannot access `/proc/2433/task/2433/fd/4': No such file or directory

du: cannot access `/proc/2433/task/2433/fdinfo/4': No such file or directory

du: cannot access `/proc/2433/fd/4': No such file or directory

du: cannot access `/proc/2433/fdinfo/4': No such file or directory

1.1G /usr

系统中某个文件没有被彻底删除

如何找出硬链接数为0,进程调用数不为0

[root@hkping ~]# lsof |grep delete

rsyslogd  1258      root    2w      REG                8,3 6944055296    270824 /var/log/secure

软件名称                                                                  文件大小                      文件名

(deleted)

(deleted)标记--- 这个文件的硬链接数为0,进程调用数不为0

[root@hkping ~]# /etc/init.d/rsyslog restart 重启对应的服务

磁盘空间不足—no space left on device

1.block满了正常-500G 存放501g视频

2.inode满了,大量的小文件

3.block满了,硬链接数为0,进程调用数不为0,文件没有被彻底删除磁盘空间不足

linux修改、访问、改变时间

mtime modify time  文件的修改时间  文件内容的变化时间

ctime change time  文件属性的改变时间  硬链接数量  文件的大小  文件权限

atime access time  文件的访问时间  cat

[root@hkping oldboy]# stat oldboy.txt

  File: `oldboy.txt'

  Size: 29        Blocks: 8          IO Block: 4096  regular file

Device: 803h/2051d Inode: 140614      Links: 2

Access: (0644/-rw-r--r--)  Uid: (    0/    root)  Gid: (    0/    root)

Access: 2017-12-22 23:18:34.770633156 +0800

Modify: 2017-12-22 23:17:41.349630857 +0800

Change: 2017-12-22 23:17:41.349630857 +0800

本章总结及作业:

1.文件删除原理

2.软链接与硬链接区别

3.磁盘空间不做系列

4./etc/passwd每行含义

5.linux三种时间

6.第二关练习题-题目+内容(自己过2-3个月还能看懂)

7.linux启动过程

8.屌丝去洗浴中心之路---远程连接排除过程

9.屌丝逃离洗浴中心之路---Linux无法上网如何解决

你可能感兴趣的:(第三周 随堂笔记)