美文网首页
第三周 随堂笔记

第三周 随堂笔记

作者: 康乐_SH | 来源:发表于2018-01-02 11:16 被阅读0次

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

    相关文章

      网友评论

          本文标题:第三周 随堂笔记

          本文链接:https://www.haomeiwen.com/subject/vusfnxtx.html