• 自我学习笔记01


    1.Linux版本详解

    Linux诞生

    1991 年,在芬兰,赫尔辛基大学的Linus Torvalds开始在一台386sx 兼容微机上学习minix 操作系统。吸收minix的精华开发出linux内核。

    吉祥物Tux:

    625px-NewTux.svg

    对于linux为什么企鹅作为标志的说法,企鹅是南极洲的标志性动物,根据国际公约,南极洲为全人类共同所有,不属于当今世界上的任何国家,当今任何国家无权将南极洲纳入其版图。Linux,为全人类共同所有,任何公司无权将其私有。还有一种说法是我们的linux之父曾经被企鹅咬过一口。

    一些相关术语

    FSF:Free Software Foundation自由软件基金会。

    GPL:General Public License通用公共许可。是广泛使用的免费软件许可证,可以保证终端用户得自由运行,学习,共享和修改软件。GPL提供的Copyleft对于基于Linux的系统的成功至关重要,给予向内核贡献的程序员保证他们的工作将有益于整个世界并保持自由,而不至于被不提供回馈给社区的不肖软件公司所剥削。通俗地讲,就是软件行业的共产主义运动章程,目的保持开源软件最大自由。

    BSD:Berkeley Software Distribution伯克利软件套件

    GNU:GNU’s Not Unix!G NU操作系统起源于GNU计划,由理查·斯托曼在MIT人工智能实验室发起,希望发展出一套完整的开放源代码操作系统来取代Unix,计划中的操作系统,名为GNU。

    ASF:Apache Software Foundation  Apache软件基金会

    发展现状

    Linux社区或企业都推出一些重要的Linux发行版,包括Linux内核、GNU组件、非GNU组件,以及其他形式的的软件包管理系统软件。目前主要有三大系列:

    1、基于Dpkg (Debian系)。是一种强调使用自由软件的发行版。没商业公司支持,使用上对技术要求高。

    主要发行版有:

    Ubuntu:知名Linux发行版之一,由Canonical有限公司赞助,基于Debian,使用自己的软件包库,与Debian的有所不同,旨在开发出更加友好的桌面。

    Knoppix:基于Debian GNU/Linux,桌面系统主要采用KDE,第一张Debian的自启动运行光盘。包含的软件非常多,有很好的硬件支持,桌面与笔记本电脑的集成也很出色。

    Mint:基于Ubuntu,继承了Ubuntu的众多优点,同时也在Ubuntu的基础上加入很多自己优秀的特性,界面友好和美丽。

    2、基于RPM (Red Hat系),美国和 中国用的最多一个系列,按提供服务响应速度快慢收费。主要发行版有:

    Fedora:可用作工作站、桌面以及服务器,由红帽公司及其社区开发。

    是较具知名度的Linux发行版之一。

    CentOS(Community Enterprise Operating System)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定发布的源代码所编译而成。centos的出现,传说是红帽拿开源软件对消费者作恶的收费引起的,看不惯renhat的收费行为。于是是把Red Hat Enterprise Linux重新编译,去掉红帽的LOGO。功能稳定性和红帽的一样,且免费,在我们目前在中国内的企业用得最多。

    3、Slackware系
    主要发行版有:

    SUSE,是Linux操作系统其中一个发行版,也是德国的一个发行版。SUSE属于Novell旗下的业务,它同时亦是Desktop Linux Consortium的发起成员之一。界面华丽,照顾欧洲人使用习惯。

    openSUSE:openSUSE Project由SUSE公司赞助,开发和维护着SUSE Linux发行版部件。openSUSE是SUSE Linux Professional的接替者,是SUSE社区版。

    Gentoo和Archliux。

    Gentoo:初由Daniel Robbins(前Stampede Linux和FreeBSD的开发者之一)创建。由于开发者对FreeBSD的熟识,所以Gentoo拥有媲美FreeBSD的广受美誉的ports系统 ——portage。(Ports和Portage都是用于在线更新软件的系统,类似apt-get,但还是有很大不同)Gentoo的首个稳定版本发布 于2002年。特点是高度自定制。

    Archliux:加拿大程序员和吉他师Judd Vinet从2001年早期开始开发Arch Linux,并在2002年3月11日正式发行0.1版。优势是是针对特定处理器而优化过的,能够更好地利用CPU周期以提高性能。

    发行版之间的不同

    他们主要表现为软件包管理系统的不同:例如

    Dbian:-deb, 前端管理工具为apt-get。

    RDedHat/CentOS:-rpm, 前端管理工具为yum

    S.u.S.E: -rpm, 前端管理工具为zypper

    ArchLinux:前端管理工具为port

    如何选择linux发行版

    个人桌面:如果是对视觉效果有一定的追求,Ubuntu ,minit,  opensuse 等界面风格非常不错。

    服务器端:CentOS 或Debian。

    LINUX发行版

    2.安装Centos8.0操作系统

    1.加载Centos8.0ISO文件。开机启动。

    第一项为直接安装。

    第二项为测试包的完整度再进行安装(我这里选择第二项,第一次下载的包为了安全起见。我选择了测试再安装)

    第三项为系统故障时紧急修复使用

    image

    2.测试界面,通过后进入安装界面

    image

    3.这一项是让你选择安装系统希望安装那种语言。我这里为了试验环境的搭建。选择了默认设置点击Continue继续。

    image

    4.进入安装菜单选项,按照需要的设置点击相应的选择进行设置。

    image

    5.这里选择时间分区,这里我们选择东八区 Asia/Shanghai。设置好后选择Done。

    image

    6.这里因为我测试需要我选择了友好的的带桌面的系统

    image

    7.系统分区设置。(类似Windows里面的分区。C盘D盘)。初学者可选择自动分配分区。这里我选择自定义测试需要

    image

    8.个人自定义分区。设置好后选择Accept Changes。

    /    :系统根目录(25G)

    /boot   :系统启动时加载的启动程序及kernel (1G)

    swap    :交换分区。内存不足时使用硬盘的虚拟内存分区。(4G)

    /data    :数据分区。自定义设置。用于测试数据时使用 (10G)

    image

    9.设置主机名及网络。主机名和网络后期可自定义设置。

    image

    10.选择开始安装点击Begin installocaltion。

    image

    11.设置管理员密码及创建用户,系统默认有一个管理员用户root。这里需要创建root密码和创建一个自己使用的用户

    image

    image

    12.等待安装完成后就可以享受Centos带来的魅力。

        欢迎进入Linux世界。

    image

    3.配置环境变量,实现history显示命令执行时间

    效果如图。这样做的好处有助于工作上执行命令后的查看

    image

    具体设置如下:

    HISTTIMEFORMAT="%F %T"

    但是呢,虽然设置后会查询历史命令会显示时间。但是只要注销退出后就无法保存了。所以还需要把设置写入到文件当中。

    我们可以创建一个自启的shell文件。保证系统每次开启后自动加载设置。

    echo 'HISTTIMEFORMAT="%F %T"' > /etc/profile.d/env.sh

    这样的话,我们的设置就完成了

    4.Linux哲学思想

    1.一切皆文件

    • 一切皆文件:是 Unix/Linux 的基本哲学之一。不仅普通的文件,目录、字符设备、块设备、 套接字等在 Unix/Linux 中都是以文件被对待;它们虽然类型不同,但是对其提供的却是同一套操作界面。

      把几乎所有资源统统抽象为文件形式;包括硬件设备,甚至通信接口等;

                  open(),read(),write(),close(),delete(),create()

          硬件设备通过文件表示:

                物理终端:/dev/console

                虚拟终端:/dev/tty#[1,6]

                串行终端:/dev/ttyS#

                 伪终端:/dev/pts/#

                  注意:在启动设备之后,在其上关联一个用户接口程序,即可实现与用户交互;

    2.小型,单一用途的程序

    • 小型,单一用途的程序:程序和可执行文件不要太复杂,这样才能保证了linux内核的高效运行。

    3.连接程序,共同完成复杂功能

    • 连接程序,共同完成复杂功能:复杂的任务可以通过连接多个简单的程序实现复杂的功能。对于复杂的功能linux通过许多简单程序的组合等方式实现,在保证简单功能的高效性的同时,复杂的程序也必然是高效性的。

    4.避免令人困惑的用户界面

    • 避免令人困惑的用户界面:如windows那样出了问题一般人选择的会是重启,实在是不行的话就是 重新 安装系统了,因为对于windows那样不是开源的,并且用户界面比较 复杂操作系统出了问题,一般的人是根本没有办法解决的。但是linux就不一样了,第一linux是开源的,无论什么问题都可以通过简洁的命令行实现 排错,修改系统的配置,一切都是简洁明了为基础。

    5.配置数据存储在文本中

    • 配置数据存储在文本中:linux所有的配置文件都存放在文本配置文件当中,无论什么配置修改都只需修改其配置文件即可,配置文件时文本形式的只需任意一款文本编辑器修改即可而不是类似于windows那样将保存在注册表中,并且windows的注册表需要专门的二进制或十六进制的编辑器才可编辑,修改比较复杂

    7.提供机制,而非策略。

    •  机制,是实现某个功能需要的原语操作和结构
    •  策略,是某功能的具体实现
    •  提供机制,而非策略,指的就是要给用户充分的自主可调配性

    8.文件组织形式

    •   目录:路径映射;

            文件:存储空间存储的一段流式数据,对数据可以做到按名存取;

            文件系统:层级结构、有索引、倒置树状结构:

            例:/dev/pts/2:

                /:原初起点:

                最左侧/:表示根目录

                其它的/:表示路径分隔符

                Linux的路径分隔符是/

                Windows的是

    • 文件的路径表示:

            绝对路径:从根开始表示出的路径

            相对路径:从当前位置开始表示出的路径

    • 文件名使用法则:

              严格区分字符大小写:file1,File1,FILE1

              目录也是文件,在同一路径下,两个文件不能同名:

              支持使用除 / 以外的任意字符:

              最长不能超过255个字符;

    • 用户有家目录:home,

            用户的起始目录;普通用户管理文件的位置:

    • 工作目录:

            例:etc/sysconfig/network-scripts/ifcfg-eno16777736

                basename:最右侧的文件或目录名:

                dirname:basename左侧的路径:

    5.Linux常用命令使用格式及使用方法

    ls

    ls命令用来显示目标列表,在Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。

    选项 长选项 含义
    -a --all 列出所有文件,包括以点号开头的文件,这些文件通常是不列出来的(比如隐藏文件)
    -d --directory 通常,如果指定了一个目录,ls命令会列出目录中的内容而不是目录本身。将此选项与-l选项结合使用,可查看目录的详细信息,而不是目录中的内容
    -F --classify 选项会在每个所列出的名字后面加上类型指示符(例如,如果名字是目录名,则会加上一个斜杠)
    -h --human-readable 以人们可读的方式而不是字节数来显示文件大小
    -l   使用长格式显示结果
    -r --reverse 以相反的顺序显示结果。通常,ls命令按照字母升序排列显示结果
    -S   按照文件大小对比结果排序
    -t   按照修改时间排序

    ls 列出文件目录

    [root@localhost data]# ls
    1.txt  2.txt  3.txt  test1

    ls –a 列出所有文件目录。包含隐藏文件

    [root@localhost data]# ls -a
    .  ..  1.txt  2.txt  3.txt  test1

    ls –dl 列出该目录data本身的详细信息 –l 表示以长格式显示结果

    [root@localhost data]# ls -dl
    drwxr-xr-x. 3 root root 58 Nov  2 18:39 .

    ls –F 根据目录内容在名字后面添加指示符。如文件夹会在文件夹名字后面添加/

    [root@localhost data]# ls -F
    1.txt  2.txt  3.txt  test1/

    ls –hl 以长格式列出,并且以易读的方式显示文件大写。M,G,KB

    [root@localhost data]# ls -hl
    total 1.1M
    -rw-r--r--. 1 root root 1.0M Nov  2 18:31 1.txt
    -rw-r--r--. 1 root root    0 Nov  2 18:13 2.txt
    -rw-r--r--. 1 root root   22 Nov  2 18:39 3.txt
    drwxr-xr-x. 2 root root    6 Nov  2 18:23 test1

    ls –l 使用长格式显示文件的类型,权限,大小及时间等结果也可以简写为 ll

    [root@localhost data]# ls -l
    total 1028
    -rw-r--r--. 1 root root 1048576 Nov  2 18:31 1.txt
    -rw-r--r--. 1 root root       0 Nov  2 18:13 2.txt
    -rw-r--r--. 1 root root      22 Nov  2 18:39 3.txt
    drwxr-xr-x. 2 root root       6 Nov  2 18:23 test1

    ls –r 以相反的顺序显示结果

    [root@localhost data]# ls -r
    test1  3.txt  2.txt  1.txt

    ls –S 按照文件大小对比结果排序

    [root@localhost data]# ls -S
    1.txt  3.txt  test1  2.txt

    ls –tl 以长格式的结果。按照修改时间排序,

    [root@localhost data]# ls -tl
    total 1028
    -rw-r--r--. 1 root root      22 Nov  2 18:39 3.txt
    -rw-r--r--. 1 root root 1048576 Nov  2 18:31 1.txt
    drwxr-xr-x. 2 root root       6 Nov  2 18:23 test1
    -rw-r--r--. 1 root root       0 Nov  2 18:13 2.txt

    echo

    echo命令用于在shell中打印shell变量的值,或者直接输出指定的字符串。linux的echo命令,在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的,因此有必要了解下echo的用法echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。

    -e : 激活转移字符

    -e 激活的转义词 含义
    a 发出警告声
     删除前一个字符(后需有字符)
    c 最后不加上换行符号
    f 换行且光标在原来的位置
    换行且光标移至行首
    光标移至行首,但不换行
    插入tab
    v 与f相同
    \ 插入字符

    echo –e “a”发出警报声需在真机上操作

    [root@localhost ~]# echo -e "a"

    echo –e “wahaha123”删除前一个字符 但需要后面有字符才会删除前一个字符

    [root@localhost ~]# echo -e "wahaha"
    wahaha
    [root@localhost ~]# echo -e "wahaha123"
    wahah123

    echo –e “wahahac”输出内容不换行

    [root@localhost ~]# echo -e "wahaha"
    wahaha
    [root@localhost ~]# echo -e "wahahac"
    wahaha[root@localhost ~]#

    echo -e "wafhaha" 换行且原来的位置

    [root@localhost ~]# echo -e "wafhaha"
    wa
      haha

    echo -e "wa haha" 换行且在行首

    [root@localhost ~]# echo -e "wa
    haha"
    wa
    haha

    echo –e “waha ha”TAB键

    [root@localhost ~]# echo -e "waha	ha"
    waha    ha

    echo –e “wavhaha”相当于f 光标换行在原来的位置

    [root@localhost ~]# echo -e "wavhaha"
    wa
      haha

    echo -e "\"  输出

    [root@localhost ~]# echo -e "d:\"
    d:

    screen命令行终端切换

    Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。

    在Screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。

    选项 含义
    -S 创建一个新会话后面跟会话的名称
    -ls 查看当前已有的会话
    -x 加入已知的会话。后面跟会话的名称
    -d 退出当前会话,但不结束掉会话进程
    -r 恢复已知的会话。后面跟会话的名称

    screen 需要安装 rpm –ivh [path]

    screen –S [session] 创建一个test的新会话

    [root@localhost ~]# screen -S test

    screen –ls 查询已有的会话

    [root@localhost ~]# screen -ls
    There is a screen on:
        10489.test    (Attached)
    1 Socket in /var/run/screen/S-root.

    screen –x test 加入到test会话当中

    [root@localhost ~]# screen -x test

    screen –d 退出当前会话不结束会话进程

    [root@localhost ~]# screen -d

    screen –r test 恢复test会话

    [root@localhost ~]# screen -r test

    date 显示或设置系统时间与日期

    很多shell脚本里面需要打印不同格式的时间或日期,以及要根据时间和日期执行操作。延时通常用于脚本执行过程中提供一段等待的时间。日期可以以多种格式去打印,也可以使用命令设置固定的格式。在类UNIX系统中,日期被存储为一个整数,其大小为自世界标准时间(UTC)1970年1月1日0时0分0秒起流逝的秒数。

    选项 长选项 含义
    -d<字符串>   显示字符串所指的日期和时间。字符串前后必须加上双引号
    -s<字符串>   根据字符串来设置日期与时间。字符串前后必须加上双引号
    -u   显示GMT(格林尼治时间)
      --help 在线帮助
      --version 显示版本信息
    [root@Centos8 Ronald]# date
    Fri Nov  1 05:28:31 CST 2019

    时间加减操作:

    date +%Y%m%d                   //显示当前年月日
    date -d "+1 day" +%Y%m%d       //显示前一天的日期
    date -d "-1 day" +%Y%m%d       //显示后一天的日期
    date -d "-1 month" +%Y%m%d     //显示上一月的日期
    date -d "+1 month" +%Y%m%d     //显示下一月的日期
    date -d "-1 year" +%Y%m%d      //显示前一年的日期
    date -d "+1 year" +%Y%m%d      //显示下一年的日期

    date -d "10 day" +"%Y-%m-%d %H:%M:%S" 显示10天后的日期时间

    [root@localhost ~]# date -d "10 day" +"%Y-%m-%d %H:%M:%S"
    2019-11-12 23:23:02

    date -d "-10 day" +"%Y-%m-%d %H:%M:%S" 显示10天前的日期时间

    [root@localhost ~]# date -d "-10 day" +"%Y-%m-%d %H:%M:%S"
    2019-10-23 23:23:50

    date -d "-10 min" +"%Y-%m-%d %H:%M:%S" 显示10分钟之前的日期时间

    [root@localhost ~]# date -d "-10 min" +"%Y-%m-%d %H:%M:%S"
    2019-11-02 23:14:51

    date -d "2008-08-08 08:08 88888 second" +"%Y-%m-%d %H:%M:%S" 显示2018.8.8.8点8分之后88888秒后的时间

    [root@localhost ~]# date -d "2008-08-08 08:08 88888 second" +"%Y-%m-%d %H:%M:%S"
    2008-08-09 08:49:28

    date -d "2019-10-10" +"%Y/%m/%d" 时间格式转换

    [root@localhost ~]# date -d "2019-10-10" +"%Y/%m/%d"
    2019/10/10

    设定时间:

    date -s                        //设置当前时间,只有root权限才能设置,其他只能查看
    date -s 20120523               //设置成20120523,这样会把具体时间设置成空00:00:00
    date -s 01:01:01               //设置具体时间,不会对日期做更改
    date -s "01:01:01 2012-05-23"  //这样可以设置全部时间
    date -s "01:01:01 20120523"    //这样可以设置全部时间
    date -s "2012-05-23 01:01:01"  //这样可以设置全部时间
    date -s "20120523 01:01:01"    //这样可以设置全部时间

    <+时间日期格式>

    %H 小时,24小时制(00~23)
    %I 小时,12小时制(01~12)
    %k 小时,24小时制(0~23)
    %l 小时,12小时制(1~12)
    %M 分钟(00~59)
    %p 显示出AM或PM
    %r 显示时间,12小时制(hh:mm:ss %p)
    %s 从1970年1月1日00:00:00到目前经历的秒数
    %S 显示秒(00~59)
    %T 显示时间,24小时制(hh:mm:ss)
    %X 显示时间的格式(%H:%M:%S)
    %Z 显示时区,日期域(CST)
    %a 星期的简称(Sun~Sat)
    %A 星期的全称(Sunday~Saturday)
    %h,%b 月的简称(Jan~Dec)
    %B 月的全称(January~December)
    %c 日期和时间(Tue Nov 20 14:12:58 2012)
    %d 一个月的第几天(01~31)
    %x,%D 日期(mm/dd/yy)
    %j 一年的第几天(001~366)
    %m 月份(01~12)
    %w 一个星期的第几天(0代表星期天)
    %W 一年的第几个星期(00~53,星期一为第一天)
    %y 年的最后两个数字(1999则是99)%Y 年的四位数(1999)

    date +”%Y-%m-d”格式化输出当前年月日

    [root@localhost ~]# date +"%Y-%m-%d"
    2019-11-02

    date +”%j-%W-%w” 显示当前是一年的第几天,一年的第几个星期,一个星期的第几天

    [root@localhost ~]# date +"%j-%W-%w"
    306-43-6

    date –u 显示格林尼治时间

    [root@localhost ~]# date -u
    Sat Nov  2 15:05:13 UTC 2019

    与之相关的还有一个cal命令,在默认情况下,cal命令显示当月的日历

    [root@Centos8 Ronald]# cal
        November 2019   
    Su Mo Tu We Th Fr Sa
                    1  2
     3  4  5  6  7  8  9
    10 11 12 13 14 15 16
    17 18 19 20 21 22 23
    24 25 26 27 28 29 30

    df、查看磁盘当前可用空间

    df命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

    选项 长选项 含义
    -a --all 包含全部的文件系统
      --block-size=<区块大小> 以指定的区块大小来显示区块数目
    -h --human-readable 以易读性较高的方式来显示信息
    -H --si 与-h参数相等,但在计算时是以1000Bytes为换算单位而非1024Bytes
    -i --inodes 显示inode的信息
    -k --kilobytes 指定区块大小为1024字节
    -l --local 仅显示本地端的文件系统
    -m --megabytes 指定区块大小为1048576字节
      --no-sync 在取得磁盘使用信息前,不要执行sync指令,此为预设值
    -p --portability 使用POSIX的输出格式
      --sync 在取得磁盘使用信息前,先执行sync指令
    -t <文件系统类型> --type=<文件系统类型> 仅显示指定文件系统类型的磁盘信息
    -T --print-type 显示文件系统的类型
    -x <文件系统类型> --exclude-type=<文件系统类型> 不要显示指定文件系统类型的磁盘文件
      --help 显示帮助
      --version 显示版本信息

    df 查看系统磁盘设备,默认是以KB为单位

    [root@Centos8 Ronald]# df
    Filesystem     1K-blocks    Used Available Use% Mounted on
    devtmpfs         1909524       0   1909524   0% /dev
    tmpfs            1924400       0   1924400   0% /dev/shm
    tmpfs            1924400   10104   1914296   1% /run
    tmpfs            1924400       0   1924400   0% /sys/fs/cgroup
    /dev/sda2       26201600 5066132  21135468  20% /
    /dev/sda5       10473472  106172  10367300   2% /data
    /dev/sda1         999320  132816    797692  15% /boot
    tmpfs             384880      28    384852   1% /run/user/42
    tmpfs             384880       4    384876   1% /run/user/0
    tmpfs             384880    4676    380204   2% /run/user/1000

    df -a 显示全部的文件系统

    [root@localhost ~]# df -a
    Filesystem     1K-blocks    Used Available Use% Mounted on
    rootfs                 -       -         -    - /
    sysfs                  0       0         0    - /sys
    proc                   0       0         0    - /proc
    devtmpfs          998232       0    998232   0% /dev
    securityfs             0       0         0    - /sys/kernel/security
    tmpfs            1014044       0   1014044   0% /dev/shm
    devpts                 0       0         0    - /dev/pts
    tmpfs            1014044   10424   1003620   2% /run
    tmpfs            1014044       0   1014044   0% /sys/fs/cgroup
    cgroup                 0       0         0    - /sys/fs/cgroup/systemd
    pstore                 0       0         0    - /sys/fs/pstore
    cgroup                 0       0         0    - /sys/fs/cgroup/freezer
    cgroup                 0       0         0    - /sys/fs/cgroup/devices
    cgroup                 0       0         0    - /sys/fs/cgroup/net_cls,net_prio
    cgroup                 0       0         0    - /sys/fs/cgroup/memory
    cgroup                 0       0         0    - /sys/fs/cgroup/pids
    cgroup                 0       0         0    - /sys/fs/cgroup/perf_event
    cgroup                 0       0         0    - /sys/fs/cgroup/hugetlb
    cgroup                 0       0         0    - /sys/fs/cgroup/blkio
    cgroup                 0       0         0    - /sys/fs/cgroup/cpu,cpuacct
    cgroup                 0       0         0    - /sys/fs/cgroup/cpuset
    configfs               0       0         0    - /sys/kernel/config
    /dev/sda2      104806400 4689936 100116464   5% /
    selinuxfs              0       0         0    - /sys/fs/selinux
    systemd-1              -       -         -    - /proc/sys/fs/binfmt_misc
    debugfs                0       0         0    - /sys/kernel/debug
    mqueue                 0       0         0    - /dev/mqueue
    hugetlbfs              0       0         0    - /dev/hugepages
    /dev/sda3       52403200   34020  52369180   1% /data
    /dev/sda1        1038336  166972    871364  17% /boot
    sunrpc                 0       0         0    - /var/lib/nfs/rpc_pipefs
    tmpfs             202812       0    202812   0% /run/user/0
    tmpfs             202812      12    202800   1% /run/user/42
    binfmt_misc            0       0         0    - /proc/sys/fs/binfmt_misc

    df –block-size=<区块大小> 以指定的区块显示区块数目

    [root@localhost ~]# df --block-size=1024
    Filesystem     1K-blocks    Used Available Use% Mounted on
    /dev/sda2      104806400 4689936 100116464   5% /
    devtmpfs          998232       0    998232   0% /dev
    tmpfs            1014044       0   1014044   0% /dev/shm
    tmpfs            1014044   10424   1003620   2% /run
    tmpfs            1014044       0   1014044   0% /sys/fs/cgroup
    /dev/sda3       52403200   34020  52369180   1% /data
    /dev/sda1        1038336  166972    871364  17% /boot
    tmpfs             202812       0    202812   0% /run/user/0
    tmpfs             202812      12    202800   1% /run/user/42
    [root@localhost ~]# df --block-size=2048
    Filesystem     2K-blocks    Used Available Use% Mounted on
    /dev/sda2       52403200 2344968  50058232   5% /
    devtmpfs          499116       0    499116   0% /dev
    tmpfs             507022       0    507022   0% /dev/shm
    tmpfs             507022    5212    501810   2% /run
    tmpfs             507022       0    507022   0% /sys/fs/cgroup
    /dev/sda3       26201600   17010  26184590   1% /data
    /dev/sda1         519168   83486    435682  17% /boot
    tmpfs             101406       0    101406   0% /run/user/0
    tmpfs             101406       6    101400   1% /run/user/42

    df –h 以易读性较高的方式来显示信息

    [root@localhost ~]# df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda2       100G  4.5G   96G   5% /
    devtmpfs        975M     0  975M   0% /dev
    tmpfs           991M     0  991M   0% /dev/shm
    tmpfs           991M   11M  981M   2% /run
    tmpfs           991M     0  991M   0% /sys/fs/cgroup
    /dev/sda3        50G   34M   50G   1% /data
    /dev/sda1      1014M  164M  851M  17% /boot
    tmpfs           199M     0  199M   0% /run/user/0
    tmpfs           199M   12K  199M   1% /run/user/42

    df –H 以1000Bytes显示而非1024Bytes显示

    [root@localhost ~]# df -H
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda2       108G  4.9G  103G   5% /
    devtmpfs        1.1G     0  1.1G   0% /dev
    tmpfs           1.1G     0  1.1G   0% /dev/shm
    tmpfs           1.1G   11M  1.1G   2% /run
    tmpfs           1.1G     0  1.1G   0% /sys/fs/cgroup
    /dev/sda3        54G   35M   54G   1% /data
    /dev/sda1       1.1G  171M  893M  17% /boot
    tmpfs           208M     0  208M   0% /run/user/0
    tmpfs           208M   13k  208M   1% /run/user/42

    df –i 显示inode信息

    [root@localhost ~]# df -i
    Filesystem       Inodes  IUsed    IFree IUse% Mounted on
    /dev/sda2      52428800 131698 52297102    1% /
    devtmpfs         249558    386   249172    1% /dev
    tmpfs            253511      1   253510    1% /dev/shm
    tmpfs            253511    881   252630    1% /run
    tmpfs            253511     16   253495    1% /sys/fs/cgroup
    /dev/sda3      26214400      7 26214393    1% /data
    /dev/sda1        524288    340   523948    1% /boot
    tmpfs            253511      1   253510    1% /run/user/0
    tmpfs            253511      9   253502    1% /run/user/42

    df –k 指定区块大小为1024字节

    [root@localhost ~]# df -k
    Filesystem     1K-blocks    Used Available Use% Mounted on
    /dev/sda2      104806400 4690000 100116400   5% /
    devtmpfs          998232       0    998232   0% /dev
    tmpfs            1014044       0   1014044   0% /dev/shm
    tmpfs            1014044   10424   1003620   2% /run
    tmpfs            1014044       0   1014044   0% /sys/fs/cgroup
    /dev/sda3       52403200   34020  52369180   1% /data
    /dev/sda1        1038336  166972    871364  17% /boot
    tmpfs             202812       0    202812   0% /run/user/0
    tmpfs             202812      12    202800   1% /run/user/42

    df –l 仅显示本地端的文件系统

    [root@localhost ~]# df -l
    Filesystem     1K-blocks    Used Available Use% Mounted on
    /dev/sda2      104806400 4689940 100116460   5% /
    devtmpfs          998232       0    998232   0% /dev
    tmpfs            1014044       0   1014044   0% /dev/shm
    tmpfs            1014044   10424   1003620   2% /run
    tmpfs            1014044       0   1014044   0% /sys/fs/cgroup
    /dev/sda3       52403200   34020  52369180   1% /data
    /dev/sda1        1038336  166972    871364  17% /boot
    tmpfs             202812       0    202812   0% /run/user/0
    tmpfs             202812      12    202800   1% /run/user/42

    df –m 指定区块大小为1048576字节

    [root@localhost ~]# df -m
    Filesystem     1M-blocks  Used Available Use% Mounted on
    /dev/sda2         102350  4581     97770   5% /
    devtmpfs             975     0       975   0% /dev
    tmpfs                991     0       991   0% /dev/shm
    tmpfs                991    11       981   2% /run
    tmpfs                991     0       991   0% /sys/fs/cgroup
    /dev/sda3          51175    34     51142   1% /data
    /dev/sda1           1014   164       851  17% /boot
    tmpfs                199     0       199   0% /run/user/0
    tmpfs                199     1       199   1% /run/user/42

    df –t xfs 显示文件系统信息为xfs的磁盘信息

    [root@localhost ~]# df -t xfs
    Filesystem     1K-blocks    Used Available Use% Mounted on
    /dev/sda2      104806400 4689940 100116460   5% /
    /dev/sda3       52403200   34020  52369180   1% /data
    /dev/sda1        1038336  166972    871364  17% /boot

    df –T 显示文件系统的类型

    [root@localhost ~]# df -T
    Filesystem     Type     1K-blocks    Used Available Use% Mounted on
    /dev/sda2      xfs      104806400 4689940 100116460   5% /
    devtmpfs       devtmpfs    998232       0    998232   0% /dev
    tmpfs          tmpfs      1014044       0   1014044   0% /dev/shm
    tmpfs          tmpfs      1014044   10424   1003620   2% /run
    tmpfs          tmpfs      1014044       0   1014044   0% /sys/fs/cgroup
    /dev/sda3      xfs       52403200   34020  52369180   1% /data
    /dev/sda1      xfs        1038336  166972    871364  17% /boot
    tmpfs          tmpfs       202812       0    202812   0% /run/user/0
    tmpfs          tmpfs       202812      12    202800   1% /run/user/42

    ifconfig、

    ifconfig命令被用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。

    参数 含义
    add<地址> 设置网络设备IPv6的IP地址
    del<地址> 删除网络设备的IPv6的IP地址
    down 关闭指定的网络设备
    <hw<网络设备类型><硬件地址>> 设置网络设备的类型与硬件地址
    io_addr<I/O地址> 设备网络设备的I/O地址
    irq<IRQ地址> 设置网络设备的IRQ
    media<网络媒介类型> 设置网络设备的媒介类型
    mem_start<内存地址> 设置网络设备在主内存所占用的起始地址
    metric<数目> 指定在计算数据包的转送次数时,所要加上的数目
    mtu<字节> 设置网络设备的MTU
    netmask<子网掩码> 设置网络设备的子网掩码
    tunnel<地址> 建立IPv4与ipv6之间的隧道通信地址
    up 启动指定的网络设备
    -broadcast<地址> 将要送往指定地址的数据包当成广播数据包来处理
    -pointopoint<地址> 与指定地址的网络设备建立直接连线,此模式具有保密功能
    -promisc 关闭或启动指定网络设备的promiscuous模式
    IP地址 指定网络设备的IP地址
    网络设备 指定网络设备的名称

    启动或关闭指定网卡

    [root@localhost ~]# ifconfig ens33 down
    [root@localhost ~]# ifconfig ens33 up

    配置IP地址

    ifconfig ens33 192.168.232.150 netmask 255.255.255.0 broadcast 192.168.232.255

    export

    export命令用于将shell变量输出为环境变量,或者将shell函数输出为环境变量。

    一个变量创建时,它不会自动地为在它之后创建的shell进程所知。而命令export可以向后面的shell传递变量的值。当一个shell脚本调用并执 行时,它不会自动得到原为脚本(调用者)里定义的变量的访问权,除非这些变量已经被显式地设置为可用。export命令可以用于传递一个或多个变量的值到任何后继脚本。

    参数 含义
    -f 代表[变量名称]中函数名称
    -n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中
    -p 列出所有的shell赋予程序的环境变量

    export MYENV=wahaha 定义一个环境变量MYENV并赋值为wahaha

    [root@localhost ~]# export MYENV=wahaha
    declare -x MYENV="wahaha"
    [root@localhost ~]# echo $MYENV
    wahaha
  • 相关阅读:
    【2012 百度之星资格赛 E:C++ 与Java】
    【hdu 1009】
    【2012 百度之星 / 初赛第一场 B:小小度刷礼品】
    【2012 百度之星资格赛 F:百科蝌蚪团】
    【在ubuntu下安装sublime text2】
    【2012 百度之星资格赛 B:小诺爱USB设备】
    【2012 百度之星资格赛 H:用户请求中的品牌】
    【pass】
    【黑客宣言】
    【基础训练题解 3106 石头剪刀布 】
  • 原文地址:https://www.cnblogs.com/Ronald-wang/p/11785029.html
Copyright © 2020-2023  润新知