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无法上网如何解决