自我学习笔记01
1.Linux版本详解
Linux诞生
1991 年,在芬兰,赫尔辛基大学的Linus Torvalds开始在一台386sx 兼容微机上学习minix 操作系统。吸收minix的精华开发出linux内核。
吉祥物Tux:
对于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。
2.安装Centos8.0操作系统
1.加载Centos8.0ISO文件。开机启动。
第一项为直接安装。
第二项为测试包的完整度再进行安装(我这里选择第二项,第一次下载的包为了安全起见。我选择了测试再安装)
第三项为系统故障时紧急修复使用
2.测试界面,通过后进入安装界面
3.这一项是让你选择安装系统希望安装那种语言。我这里为了试验环境的搭建。选择了默认设置点击Continue继续。
4.进入安装菜单选项,按照需要的设置点击相应的选择进行设置。
5.这里选择时间分区,这里我们选择东八区 Asia/Shanghai。设置好后选择Done。
6.这里因为我测试需要我选择了友好的的带桌面的系统
7.系统分区设置。(类似Windows里面的分区。C盘D盘)。初学者可选择自动分配分区。这里我选择自定义测试需要
8.个人自定义分区。设置好后选择Accept Changes。
/ :系统根目录(25G)
/boot :系统启动时加载的启动程序及kernel (1G)
swap :交换分区。内存不足时使用硬盘的虚拟内存分区。(4G)
/data :数据分区。自定义设置。用于测试数据时使用 (10G)
9.设置主机名及网络。主机名和网络后期可自定义设置。
10.选择开始安装点击Begin installocaltion。
11.设置管理员密码及创建用户,系统默认有一个管理员用户root。这里需要创建root密码和创建一个自己使用的用户
12.等待安装完成后就可以享受Centos带来的魅力。
欢迎进入Linux世界。
3.配置环境变量,实现history显示命令执行时间
效果如图。这样做的好处有助于工作上执行命令后的查看
具体设置如下:
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 test1ls –a 列出所有文件目录。包含隐藏文件
[root@localhost data]# ls -a . .. 1.txt 2.txt 3.txt test1ls –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 test1ls –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 test1ls –r 以相反的顺序显示结果
[root@localhost data]# ls -r test1 3.txt 2.txt 1.txtls –S 按照文件大小对比结果排序
[root@localhost data]# ls -S 1.txt 3.txt test1 2.txtls –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.txtecho
echo命令用于在shell中打印shell变量的值,或者直接输出指定的字符串。linux的echo命令,在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的,因此有必要了解下echo的用法echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。
-e : 激活转移字符
-e 激活的转义词 含义 \a 发出警告声 \b 删除前一个字符(\b后需有字符) \c 最后不加上换行符号 \f 换行且光标在原来的位置 \n 换行且光标移至行首 \r 光标移至行首,但不换行 \t 插入tab \v 与\f相同 \\ 插入\字符
echo –e “\a”发出警报声需在真机上操作
[root@localhost ~]# echo -e "\a"echo –e “wahaha\b123”删除\b前一个字符 但需要\b后面有字符才会删除前一个字符
[root@localhost ~]# echo -e "wahaha\b" wahaha [root@localhost ~]# echo -e "wahaha\b123" wahah123echo –e “wahaha\c”输出内容不换行
[root@localhost ~]# echo -e "wahaha" wahaha [root@localhost ~]# echo -e "wahaha\c" wahaha[root@localhost ~]#echo -e "wa\fhaha" 换行且原来的位置
[root@localhost ~]# echo -e "wa\fhaha" wa haha
echo -e "wa\nhaha" 换行且在行首
[root@localhost ~]# echo -e "wa\nhaha" wa hahaecho –e “waha\tha”TAB键
[root@localhost ~]# echo -e "waha\tha" waha haecho –e “wa\vhaha”相当于\f 光标换行在原来的位置
[root@localhost ~]# echo -e "wa\vhaha" wa hahaecho -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 testscreen –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 testscreen –d 退出当前会话不结束会话进程
[root@localhost ~]# screen -dscreen –r test 恢复test会话
[root@localhost ~]# screen -r testdate 显示或设置系统时间与日期
很多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:02date -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:50date -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:51date -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:28date -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-02date +”%j-%W-%w” 显示当前是一年的第几天,一年的第几个星期,一个星期的第几天
[root@localhost ~]# date +"%j-%W-%w" 306-43-6date –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 30df、查看磁盘当前可用空间
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/1000df -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_miscdf –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/42df –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/42df –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/42df –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/42df –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/42df –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/42df –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/42df –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% /bootdf –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