Lesson 007 —— Linux 文件及系统基础

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/woodhost/article/details/83089040

Lesson 007 —— Linux 文件及系统基础

文件操作

cat: 查看文件内容

> : 重定向(管道)符号,将输出内容定向到其它文件,覆盖原来的内容

>>: 重定向(管道)符号,将输出内容添加到其它文件末尾

归档压缩文件

tar: 将文件打包

-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件

这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。

-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
-p:使用原文件的原来属性(属性不会依据使用者而变)
-P:可以使用绝对路径来压缩! 
-N:比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
--exclude FILE:在压缩的过程中,不要将 FILE 打包!

-C:在后面跟目录,表示解压目录

下面的参数-f是必须的
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。

总结
1、*.tar 用 tar -xvf 解压
2、*.gz 用 gzip -d或者gunzip 解压
3、*.tar.gz和*.tgz 用 tar -xzf 解压
4、*.bz2 用 bzip2 -d或者用bunzip2 解压
5、*.tar.bz2用tar -xjf 解压
6、*.Z 用 uncompress 解压
7、*.tar.Z 用tar -xZf 解压
8、*.rar 用 unrar e解压
9、*.zip 用 unzip 解压

命令行中,Ctrl + a: 跳到命令首部;Ctrl + e: 跳到命令尾部
vim中,0: 跳到行首; $: 跳到行尾

系统基础

uname -r: 内核版本

uname -a: 内核及主机名等

cache: 高速缓存(内存),存放 cpu 经常存取的数据(A cache is something that has been “read” from the disk and stored for later use.)

buffer: 缓冲区(内存),存放硬盘中经常读入内存的数据,一次性大量写入硬盘或者从硬盘读取( A buffer is something that has yet to be “written” to disk.)

启动级别:

0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
2:多用户状态(没有NFS)
3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
4:系统未使用,保留
5:X11控制台,登陆后进入图形GUI模式
6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

查看运行级别用:runlevel
进入其它运行级别用:init N
另外init0为关机,init 6为重启系统

grub 加密:

1、计算grub的MD5加密密码:

#grub-md5-crypt
Password: 
Retype password:
输入两遍密码进行确认以后,就会计算出你所输入密码的MD5加密值,如:$1$3VbjX/$PTzUC7OpcO3QunjIsB6LZ
复制该密码进行MD5加密后的值。

2、设置grub密码:

#vi /boot/grub/grub.conf

比如我原来的/boot/grub/grub.conf文件的内容是下面的。
            default=1
            timeout=10
            splashimage=(hd0,7)/boot/grub/splash.xpm.gz
            title Fedora Core (2.4.22-1.2061.nptl)
            root (hd0,7)
            kernel /boot/vmlinuz-2.4.22-1.2061.nptlro root=LABEL=/
            initrd /boot/initrd-2.4.22-1.2061.nptl.img
            title WindowsXP
            rootnoverify (hd0,0)
            chainloader +1

所以我要在/boot/grub/grub.conf中加入 password ——md5 $1$3VbjX/$PTzUC7OpcO3QunjIsB6LZ 这行,以及lock,应该加到哪呢,请看下面的更改实例;

            timeout=10
            splashimage=(hd0,7)/boot/grub/splash.xpm.gz
            password ——md5 $1$3VbjX/$PTzUC7OpcO3QunjIsB6LZ
            title Fedora Core (2.4.22-1.2061.nptl)
            lock
            root (hd0,7)
            kernel /boot/vmlinuz-2.4.22-1.2061.nptlro root=LABEL=/
            initrd /boot/initrd-2.4.22-1.2061.nptl.img
            title WindowsXP
            rootnoverify (hd0,0)
            chainloader +1
lock的意思就是把Redhat Fedora锁住了。如果启动时会提示错误。这时就应该按P键,然后输入密码就行了。

使用password,lock命令实现几种加密方法如下:
1)单纯对GRUB界面加密,而不对被引导的系统加密在timeout一行下面加一行: password ——md5 PASSWORD
2)对GRUB界面加密,同时对被引导的系统加密在timeout一行下面加一行: password ——md5 PASSWORD 在title一行下面加一行: lock
3)同时存在多个被引导系统,针对特定的系统实例分别加密(未对GRUB操作界面加密) 在title一行下面加一行: lock 在lock一行下面紧贴着再加一行: password ——md5 PASSWORD 注:lock不能单独使用.


解密:
 当Linux系统管理员密码忘记,又不能编辑grub菜单进行单用户模式重置密码,怎么办呢,只有对grub进行解密了。
    1、用Linux第一张安装光盘引导系统,进入修复模式。
    2、光盘引导系统,选择区域和语言,不用启动网卡。
    3、出现Rescue菜单,选择Continue,再弹出一个Rescue菜单,会显示“chroot /mnt/sysimage”,OK。
    4、sh-3.2#chroot /mnt/sysimage,若不执行此步,进系统不能进行改写。
    5、执行passwd对用户密码进行重置,完后重启正常进入系统。
    6、编辑/boot/grub/grub.conf,去掉“password --md5 $1$3VbjX/$PTzUC7OpcO3QunjIsB6LZ”这一行即可。

操作系统监控命令

top: 动态监控系统

007-01

top视图分为两部分:操作系统资源概况信息和进程信息。首先分析资源概况中各个参数的含义,再来分析下进程信息中各个参数含义。

资源概况

  1. 操作系统时间、登录用户、负载情况-top

    • 10:33:25: 操作系统当前时间
    • up xx days, HH:MM: 操作系统从开机以后运行的时间,运行多少天多少时多少分
    • users: 当前系统有三个用户登录在线
    • load average: 1s, 5s, 15s系统平均负载
  2. 运行的任务概览-Tasks

    • total: 系统当前的进程数
    • running: 当前正在运行的进程数
    • sleeping 当前睡眠中的进程数
  3. CPU概览: %Cpu(s) 表示CPU使用百分比,按照时间占用计算,单位s

    • us: 用户空间占用CPU时间百分比,如果是多核,这个数值表示占用的平均百分比,可以按1进行多核统计和平均统计切换

    • sy: 内核空间占用CPU时间百分比,如果是多核,同上

    • ni 用户进程空间内改变过优先级的进程占用CPU时间百分比

    • id: 空闲时间占用CPU百分比

    • wa: 等待输入输出的CPU时间百分比

    • hi: CPU服务于硬件中断的CPU时间百分比

    • si: CPU服务于软件中断的CPU时间百分比

      注:时间占用百分比=该种类型操作消耗CPU时间/top刷新间隔时间。top 3s刷新一次,用户空间进程在这3s内使用了CPU 1.5s,那么us等于50%=1.5s/3s

  4. 内存(Mem)概览:单位KiB

    • total: 内存总量
    • free: 剩余的内存数量
    • used: 内存使用数量
    • buff/cache: 用于缓冲的内存数量
  5. 交换区概览:单位KiB

    • total: 交换区总量
    • free: 空闲的交换区数量
    • used: 使用的交换区数量

进程概况

进程概况的统计从多维度参数进行展示的,其中最重要的参数:

  • PID 进程ID,唯一标识

  • USER 进程所属用户

  • %CPU 自上一次top刷新该进程占用CPU的时间百分比

  • %MEM 进程消耗内存百分比

  • TIME+ 自进程开始以来,消耗CPU时间,单位1/100秒

  • VIRT:virtual memory usage 虚拟内存

    1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
    2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量

  • RES:resident memory usage 常驻内存
    1、进程当前使用的内存大小,但不包括swap out
    2、包含其他进程的共享
    3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
    4、关于库占用内存的情况,它只统计加载的库文件所占内存大小

  • SHR:shared memory 共享内存
    1、除了自身进程的共享内存,也包括其他进程的共享内存
    2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
    3、计算某个进程所占的物理内存大小公式:RES – SHR
    4、swap out后,它将会降下来

  • DATA
    1、数据占用的内存。如果top没有显示,按f键可以显示出来。
    2、真正的该程序要求的数据空间,是真正在运行中要使用的。

top 命令参数

  1. 全局
    • Enter/space: 刷新视图
    • h: 帮助信息,查询各个交互式命令的含义
    • 0: 是否展示在进程区域中的0值,比如%CPU是0的将全部隐藏
    • A: 在全屏模式和多窗口选择模式之间切换
    • d: 设置刷新的时间间隔
    • E: 切换内存和交换区单位
    • H: 开启/关闭线程模式,以线程的方式展示
    • k: kill掉指定进程或者线程
    • Z: 改变颜色配置
    • q: 退出
  2. 概要区域
    • 1: 显示CPU平均状态/分开显示各个逻辑CPU状态
    • m: 切换显示内存统计的数据
  3. 进程区域
    • x: 切换高亮行的排序位置
    • z: 切换颜色
    • b: 块状标记高亮行
    • c: 切换显示命令/程序名和参数
    • f: 显示field管理
    • u: 按照指定用户显示进程
    • i: 显示所有进程或者活跃的进程
    • n: 设置显示的进程数
  4. 命令参数
    • -h | -v: 显示帮助或者版本信息】
    • -c: 命令行列显示程序名以及参数
    • -d: 启动时设置刷新时间间隔
    • -H: 设置线程模式
    • -i: 只显示活跃进程
    • -n: 显示指定数量的进程
    • -p: 显示指定PID的进程
    • -q: 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
    • -u: 显示指定用户的进程

free: 显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。共享内存将被忽略

命令参数:
-b  以Byte为单位显示内存使用情况。 
-k  以KB为单位显示内存使用情况。 
-m  以MB为单位显示内存使用情况。
-g   以GB为单位显示内存使用情况。 
-o  不显示缓冲区调节列。 
-s<间隔秒数>  持续观察内存使用状况。 
-t  显示内存总和列。 
-V  显示版本信息。 

进程管理

进程: 程序的一次动态执行

守护进程: 在后台运行并提供系统服务的一些进程

父进程与子进程: 当一个进程创建另一个进程时,创建进程的进程被称为父进程,被创建的进程被称为子进程

ps: 查看进程(process search)

ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
-A 列出所有的行程
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程
au(x) 输出格式 :
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 行程拥有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的记忆体使用率
VSZ: 占用的虚拟记忆体大小
RSS: 占用的记忆体大小
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该行程的状态:
D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
R: 正在执行中
S: 静止状态
T: 暂停执行
Z: 不存在但暂时无法消除
W: 没有足够的记忆体分页可分配
<: 高优先序的行程
N: 低优先序的行程
L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令

-e 显示所有进程,环境变量
-f 全格式
-h 不显示标题
-l 长格式
-w 宽输出
a 显示终端上地所有进程,包括其他用户地进程
r 只显示正在运行地进程
x 显示没有控制终端地进程

pstree: 以树状图只显示进程的名字,且相同进程合并显示

 -a:显示执行程序的命令与完整参数。
-c:取消同名程序,合并显示。
-n:以PID大小排序。
-p:显示PID。
-u:显示UID信息。

kill: 杀死进程

-l  信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
-a  当处理当前进程时,不限制命令名和进程号的对应关系
-p  指定kill 命令只打印相关进程的进程号,而不发送任何信号
-s  指定发送信号
-u  指定用户

常用的信号:
HUP 1 终端断线
INT 2 中断(同 Ctrl + C)
QUIT 3 退出(同 Ctrl + \)
TERM 15 终止
KILL 9 强制终止
CONT 18 继续(与STOP相反, fg/bg命令)
STOP 19 暂停(同 Ctrl + Z)

kill PID
kill -9 PID   # 强制杀死
kill %n   # n: jobs 命令显示的进程工作号(序号)


1. 用kill来杀死某一个进程
2. 用killall杀死一类进程
3. 用pkill踢出某个终端

pgrep: 通过程序的名字来查询进程

ps 参数选项 程序名

参数:
-l  列出程序名和进程ID;
-o  进程起始的ID;
-n  进程终止的ID;

linux 磁盘

fdisk: 创建和维护分区表

fdisk [必要参数][选择参数]

必要参数:
-l 列出素所有分区表
-u 与"-l"搭配使用,显示分区数目

选择参数:
-s<分区编号> 指定分区
-v 版本信息

菜单操作说明
m :显示菜单和帮助信息
a :活动分区标记/引导分区
d :删除分区
l :显示分区类型
n :新建分区
p :显示分区信息
q :退出不保存
t :设置分区号
v :进行分区检查
w :保存修改
x :扩展应用,高级功能

mkfs: 分区格式化(make filesystem)

mkfs [-V] [-t fstype] [fs-options] filesys [blocks]

参数 :
device : 预备检查的硬盘分区,例如:/dev/sda1
-V : 详细显示模式
-t : 给定档案系统的型式,Linux 的预设值为 ext2
-c : 在制做档案系统前,检查该partition 是否有坏轨
-l bad_blocks_file : 将有坏轨的block资料加到 bad_blocks_file 里面
block : 给定 block 的大小

该命令用来在特定的分区创建linux文件系统,常见的文件系统有ext2,ext3,vfat等,执行mkfs命令其实是在调用:mkfs.ext3 | mkfs.reiserfs |mkfs.ext2 | mkdosfs | mkfs.msdos | mkfs.vfat

mount: 挂载硬盘

umount: 卸载硬盘

df: 显示文件系统

du: 统计目录下文件大小

硬盘用满的两种情况:

  1. 磁盘空间占满
  2. Inodes 编号号占满

链接

我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 (metadata)。用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;而元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号)才是文件的唯一标识而非文件名。文件名仅是为了方便人们的记忆和使用,系统或程序通过 inode 号寻找正确的文件数据块。

007-02

  1. 软链接(又称符号链接,即 soft link 或 symbolic link)

    ln -s old.file soft.link
    
    特征:
    1. 软链接有自己的文件属性及权限等;
    2. 可对不存在的文件或目录创建软链接;
    3. 软链接可交叉文件系统;
    4. 软链接可对文件或目录创建;
    5. 创建软链接时,链接计数 i_nlink 不会增加;
    6. 删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即    dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。
    7. 修改源文件/链接文件,内容都改变
    

    007-03

  2. 硬链接(hard link)

    若一个 inode 号对应多个文件名,则称这些文件为硬链接。换言之,硬链接就是同一个文件使用了多个别名。

    link oldfile newfile 
    ln oldfile newfile
    
    特征:
    1. 文件有相同的 inode 及 data block;
    2. 只能对已存在的文件进行创建;
    3. 不能交叉文件系统进行硬链接的创建;
    4. 不能对目录进行创建,只可对文件创建;
    5. 删除一个硬链接文件并不影响其他有相同 inode 号的文件。
    6. 修改源文件/链接文件,内容都改变
    

网络配置

ifconfig: 查看网络配置及网卡信息

chkconfig: 查看及设置服务启用与关闭

route -n: 查看网关

ping: 尝试连接一个 IP 地址

arping: 尝试获取一个 IP 地址的 MAC 地址

猜你喜欢

转载自blog.csdn.net/woodhost/article/details/83089040