社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
操作系统,英语Operating System简称为OS。说道操作系统就需要先讲一讲Unix,UNIX操作系统,是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统,最早由KenThompson、Dennis Ritchie和Douglas McIlroy于1969年在AT&T的贝尔实验室开发。而linux就是一款类Unix系统。
通常人们对linux都有一个错误的认识,就是这个名词"linux",其实是"linux not unix",linux是一个内核,linux系统构成包括:、Linux 内核、GNU 项目及其他项目的软件。当然,但人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。
林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds, 1969年~ ),著名的电脑程序员、黑客。Linux内核的发明人及该计划的合作者。托瓦兹利在大学读书期间创造出了这套当今全球最流行的操作系统(作业系统)内核之一。
Linux操作系统的诞生、发展和成长过程始终依赖着五个重要支柱:UNIX 操作系统、MINIX 操作系统、GNU计划、POSIX 标准和Internet 网络。
1984年,Andrew S.Tanenbaum开发了用于教学的UNIX系统,命名为Mininx。
1989年,Andrew S.Tanenbaum将Minix系统运行于x86的PC平台。
1990年,芬兰赫尔辛基大学学生Linux Torvalds首次接触Minix系统。
1991年,Linux Torvalds开始在Minix上编写各种驱动程序等操作系统内核组件。
1991年年底,Linux Torvalds公开了Linux内核源码0.02版(http://www.kernel.org),此版本仅仅是部分代码。
1993年,Linux 1.0版本发行,Linux转向GPL版本协议。
1994年,Linux的第一个商业发行版Slackware问世。
1996年,美国国家标准技术局的计算机系统实验室确认Linux版本1.2.13符合POSIX标准。
1999年,Linux的简体中文发行版问世。
2000年以后,Linux系统日趋成熟,涌现出大量基于Linux服务器平台的应用,并且广泛应用于基于ARM技术的嵌入式系统中。
Linux发展历史还可参考:https://www.linuxprobe.com/linux-historical-chronology.html
Ubuntu是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词(译为吾帮托或乌班图),意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu基于Debian发行版和unity桌面环境,与Debian的不同在于它每6个月会发布一个新版本。Ubuntu的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。Ubuntu具有庞大的社区力量,用户可以方便地从社区获得帮助。随着云计算的流行,ubuntu推出了一个云计算环境搭建的解决方案,可以在其官方网站找到相关信息。于2012年4月26日发布最终版ubuntu 12.04,ubuntu 12.04是长期支持的版本。
可能这是最著名的Linux版本了,Red Hat Linux已经创造了自己的品牌,越来越多的人听说过它。Red Hat在1994年创业,当时聘用了全世界500多名员工,他们都致力于开放的源代码体系。
Red Hat Linux是公共环境中表现上佳的服务器。它拥有自己的公司,能向用户提供一套完整的服务,这使得它特别适合在公共网络中使用。这个版本的Linux也使用最新的内核,还拥有大多数人都需要使用的主体软件包。
Red Hat Linux的安装过程也十分简单明了。它的图形安装过程提供简易设置服务器的全部信息。磁盘分区过程可以自动完成,还可以选择GUI工具完成,即使对于 Linux新手来说这些都非常简单。选择软件包的过程也与其他版本类似;用户可以选择软件包种类或特殊的软件包。系统运行起来后,用户可以从Web站点和 Red Hat那里得到充分的技术支持。我发现Red Hat是一个符合大众需求的最优版本。在服务器和桌面系统中它都工作得很好。Red Hat的唯一缺陷是带有一些不标准的内核补丁,这使得它难于按用户的需求进行定制。 Red Hat通过论坛和邮件列表提供广泛的技术支持,它还有自己公司的电话技术支持,后者对要求更高技术支持水平的集团客户更有吸引力。
CentOS(Community ENTerprise Operating System)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。两者的不同,在于CentOS并不包含封闭源代码软件,CentOS 是一个基于Red Hat Linux 提供的可自由使用源代码的企业级Linux发行版本。每个版本的 CentOS都会获得十年的支持(通过安全更新方式)。新版本的 CentOS 大约每两年发行一次,而每个版本的 CentOS 会定期(大概每六个月)更新一次,以便支持新的硬件。这样,建立一个安全、低维护、稳定、高预测性、高重复性的 Linux 环境。CentOS是Community Enterprise Operating System的缩写。
CentOS 是RHEL(Red Hat Enterprise Linux)源代码再编译的产物,而且在RHEL的基础上修正了不少已知的 Bug ,相对于其他 Linux 发行版,其稳定性值得信赖。
RHEL 在发行的时候,有两种方式。一种是二进制的发行方式,另外一种是源代码的发行方式。
Centos生成环境中运用的比较多,所以本次课程使用的Linux操作系统就是Centos,版本为6.5 或者6.10
镜像列表:http://isoredirect.centos.org/centos/6.10/isos/x86_64/
开源镜像网站:https://opsx.alibaba.com/?lang=zh-CN 、 http://mirrors.163.com/ 等等
使用相关镜像制作软件(软碟通等)制作U盘启动盘即可,按照正常的安装步骤安装即可,一般来说(迷你版本)有线网卡直接会有驱动,无线网卡的驱动需要自行编译或者查找。
虚化技术是一个非常宽的概念,例如服务器(主机)虚化、存储虚化、应用程序虚化、网络虚化等等,本次课程特指服务器(主机)虚化
Intel VT-x
Intel VT即Intel公司的Virtualization Technology虚拟化技术。
为解决纯软件虚拟化解决方案在可靠性、安全性和性能上的不足,Intel在它的硬件产品上引入了Intel VT(Virtualization Technology,虚拟化技术)。2005年8月,Intel首次公布了针对硬件辅助虚拟化的Vanderpool(Intel VT虚拟化技术的前身)技术细节。Vanderpool技术通过增加新的指令,使得Intel处理器支持硬件虚拟化。2005年11月,Intel宣布,虚拟化技术Vanderpool改成VT,被Acer和联想应用在其基于Intel Pentium 4的PC上。
AMD AMD-V
AMD-V技术(AMD虚拟化技术)是对x86处理器系统架构的一组硬件扩展和硬件辅助虚拟化技术,可以简化纯软件的虚拟化解决方案,改进VMM(虚拟机监视器)的设计,更充分地利用硬件资源,提高服务器和数据中心的虚拟化效率。
目前AMD提供的所有处理器均具备AMD-V虚拟化功能,不论是笔记本电脑还是刀片服务器,均可为其提供强大的虚拟化性能、安全性及可靠性。 虚拟化 (AMD-V™) 技术是一系列芯片集成功能,可帮助您更好地利用和提高虚拟化资源的性能AMD 虚拟化 (AMD-V™) 技术是一系列芯片集成功能,可帮助您更好地利用和提高虚拟化资源的性能AMD 虚拟化 (AMD-V™) 技术是一系列芯片集成功能,可帮助您更好地利用和提
所以Win10|Win7 (学习环境)安装虚拟机需要开启相关硬件虚化机制
在学习和测试环境下,一般采用在物理机上创建虚拟机,本次课程也是这种方式
本次课程不涉及
VirtualBox 是一款开源虚拟机软件。VirtualBox 是由德国 Innotek 公司开发,由Sun Microsystems公司出品的软件,使用Qt编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。Innotek 以 GNU General Public License (GPL) 释出 VirtualBox,并提供二进制版本及 OSE 版本的代码。使用者可以在VirtualBox上安装并且执行Solaris、Windows、DOS、Linux、OS/2 Warp、BSD等系统作为客户端操作系统。现在则由甲骨文公司进行开发,是甲骨文公司xVM虚拟化平台技术的一部份。
VirtualBox号称是最强的免费虚拟机软件,它不仅具有丰富的特色,而且性能也很优异!它简单易用,可虚拟的系统包括Windows(从Windows 3.1到Windows10、Windows Server 2012,所有的Windows系统都支持)、Mac OS X、Linux、OpenBSD、Solaris、IBM OS2甚至Android等操作系统!使用者可以在VirtualBox上安装并且运行上述的这些操作系统! 与同性质的VMware及Virtual PC比较下,VirtualBox独到之处包括远端桌面协定(RDP)、iSCSI及USB的支持,VirtualBox在客户端操作系统上已可以支持USB 2.0的硬件装置,不过要安装 VirtualBox Extension Pack。
本次课程使用的虚化平台
Mware Workstation(中文名“威睿工作站”)是一款功能强大的桌面虚拟计算机软件,提供用户可在单一的桌面上同时运行不同的操作系统,和进行开发、测试 、部署新的应用程序的最佳解决方案。VMware Workstation可在一部实体机器上模拟完整的网络环境,以及可便于携带的虚拟机器,其更好的灵活性与先进的技术胜过了市面上其他的虚拟计算机软件。对于企业的 IT开发人员和系统管理员而言, VMware在虚拟网路,实时快照,拖曳共享文件夹,支持 PXE 等方面的特点使它成为必不可少的工具。
根据提供的软件,图形化界面,下一步即可
下载CentOS 6.10 Minimal 即可,保存在本地磁盘
操作完成请点击确定
选择第一个,回车即可
键盘选择Skip,点击确认即可
选择语言版本,默认英语即可
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.134.99
NETMASK=255.255.255.0
BROADCAST=192.168.134.255
#解释: 双网卡配置之网卡一 使用只粘贴上方文字
#网卡1使用NAT模式
#静态IP
#网段与自身虚拟机配置保持一致 即可
#作为虚拟机之前通信使用
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
#解释: 双网卡配置之网卡二 使用只粘贴上方文字
#网卡1使用桥接模式
#动态IP
#作为连接公网使用
vi /etc/sysconfig/network-scripts/ifcfg-eth0 #配置网卡
rm -rf /etc/udev/rules.d/70-persistent-net.rules #删除MAC地址
service network restart #重启网络
service iptables stop #关闭防火墙
chkconfig iptables off # 关闭防火墙自启
ifconfig # 查看网路状态
显示指定工作目录下的内容及属性信息
ls 命令是Linux下最常用的指令之一。ls命令为英文单词 list 的缩写,正如英文单词 list 的意思,其功能是列出指定目录下的内容及其相关属性信息。
默认状态下,ls命令会列出当前目录的内容。而带上参数后,我们可以用ls做更多的事情。
语法格式: ls [选项] [文件]
常用参数:
-a | 显示所有文件及目录 (包括以“.”开头的隐藏文件) |
---|---|
-l | 使用长格式列出文件及目录信息 |
-r | 将文件以相反次序显示(默认依英文字母次序) |
-t | 根据最后的修改时间排序 |
-A | 同 -a ,但不列出 “.” (当前目录) 及 “…” (父目录) |
-S | 根据文件大小排序 |
-R | 递归列出所有子目录 |
显示当前路径
pwd命令是“print working directory”中每个单词的首字母缩写,其功能正如所示单词一样,为打印工作目录,即显示当前工作目录的绝对路径。
在实际工作中,我们经常会在不同目录之间进行切换,为了防止“迷路”,我们可以使用pwd命令快速查看当前我们所在的目录路径。
语法格式: pwd [参数]
常用参数:
-L | 显示逻辑路径 |
---|---|
mkdir命令是“make directories”的缩写,用来创建目录。
默认状态下,如果要创建的目录已经存在,则提示已存在,而不会继续创建目录。 所以在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。
语法格式 : mkdir [参数] [目录]
常用参数:
-p | 递归创建多级目录 |
---|---|
-m | 建立目录的同时设置目录的权限 |
-z | 设置安全上下文 |
-v | 显示目录的创建过程 |
cp命令可以理解为英文单词copy的缩写,其功能为复制文件或目录。
cp命令可以将多个文件复制到一个具体的文件名或一个已经存在的目录下,也可以同时复制多个文件到一个指定的目录中。
语法格式:cp [参数] [文件]
常用参数:
-f | 若目标文件已存在,则会直接覆盖原文件 |
---|---|
-i | 若目标文件已存在,则会询问是否覆盖 |
-p | 保留源文件或目录的所有属性 |
-r | 递归复制文件和目录 |
-d | 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录 |
-l | 对源文件建立硬连接,而非复制文件 |
-s | 对源文件建立符号连接,而非复制文件 |
-b | 覆盖已存在的文件目标前将目标文件备份 |
-v | 详细显示cp命令执行的操作过程 |
-a | 等价于“dpr”选项 |
改名|移动
mv命令是“move”单词的缩写,其功能大致和英文含义一样,可以移动文件或对其改名。
这是一个使用频率超高的文件管理命令,我们需要特别留意它与复制的区别:mv与cp的结果不同。mv命令好像文件“搬家”,文件名称发生改变,但个数并未增加。而cp命令是对文件进行复制操作,文件个数是有增加的。
语法格式:mv [参数]
常用参数:
-i | 若存在同名文件,则向用户询问是否覆盖 |
---|---|
-f | 覆盖已有文件时,不进行任何提示 |
-b | 当文件存在时,覆盖前为其创建一个备份 |
-u | 当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作 |
显示文件内容
当文件内容较大时,文本内容会在屏幕上快速闪动(滚屏),用户往往看不清所显示的具体内容。因此对于较长文件内容可以按Ctrl+S键,停止滚屏;以及Ctrl+Q键可以恢复滚屏;而按Ctrl+C(中断)键则可以终止该命令的执行。或者对于大文件,干脆用more命令吧!
语法格式:cat [参数] [文件]
常用参数:
-n | 显示行数(空行也编号) |
---|---|
-s | 显示行数(多个空行算一个编号) |
-b | 显示行数(空行不编号) |
-E | 每行结束处显示$符号 |
-T | 将TAB字符显示为 ^I符号 |
-v | 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外 |
-e | 等价于”-vE”组合 |
-t | 等价于”-vT”组合 |
-A | 等价于 -vET组合 |
–help | 显示帮助信息 |
–version | 显示版本信息 |
输出字符或者 提取Shell 变量的值
echo命令用于在终端设备上输出字符串或变量提取后的值,这是在Linux系统中最常用的几个命令之一,但操作却非常简单。
人们一般使用在变量前加上$符号的方式提取出变量的值,例如:$PATH,然后再用echo命令予以输出。或者直接使用echo命令输出一段字符串到屏幕上,起到给用户提示的作用。
语法格式:echo [参数] [字符串]
常用参数:
-n | 不输出结尾的换行符 |
---|---|
-e “\a” | 发出警告音 |
-e “\b” | 删除前面的一个字符 |
-e “\c” | 结尾不加换行符 |
-e “\f” | 换行,光标扔停留在原来的坐标位置 |
-e “\n” | 换行,光标移至行首 |
-e “\r” | 光标移至行首,但不换行 |
-E | 禁止反斜杠转移,与-e参数功能相反 |
—version | 查看版本信息 |
–help | 查看帮助信息 |
查看尾部内容
tail用于显示文件尾部的内容,默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。
语法格式:tail [参数]
常用参数:
–retry | 即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用 |
---|---|
-c或——bytes= | 输出文件尾部的N(N为整数)个字节内容 |
-f<name/descriptor> | –follow:显示文件最新追加的内容 |
-F | 与选项“-follow=name”和“–retry”连用时功能相同 |
-n或——line= | 输出文件的尾部N(N位数字)行内容 |
–pid=<进程号> | 与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令 |
–help | 显示指令的帮助信息 |
–version | 显示指令的版本信息 |
命令行计数器
expr命令的英文全称是“expression”,即是表达式的意思,作用是一个命令行的计数器,常用于在UNIX/LINUX系统中求表达式变量的值,一般用于整数值,也可用于字符串。
语法格式:expr [表达式]
常用参数:
空格 | 隔开每个项 |
---|---|
\(反斜杠) | 放在 shell 特定的字符前面 |
“”(引号) | 对包含空格和其他特殊字符的字符串要用引号括起来 |
1、计算字串长度
> expr length “this is a test”
14
2、抓取字串
> expr substr “this is a test” 3 5
is is
3、抓取第一个字符数字串出现的位置
> expr index "sarasara" a
2
4、整数运算
> expr 14 % 9
5
> expr 10 + 10
20
> expr 1000 + 900
1900
> expr 30 / 3 / 2
5
> expr 30 \* 3 (使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解显示星号的意义)
90
> expr 30 * 3
expr: Syntax error
文本搜索工具
grep是“global search regular expression and print out the line”的简称,意思是全面搜索正则表达式,并将其打印出来。这个命令可以结合正则表达式使用,它也是linux使用最为广泛的命令。
grep命令的选项用于对搜索过程的补充,而其命令的模式十分灵活,可以是变量、字符串、正则表达式。需要注意的是:一当模式中包含了空格,务必要用双引号将其引起来。
linux系统支持三种形式的grep命令,大儿子就是grep,标准,模仿的代表。二儿子兴趣爱好多-egrep,简称扩展grep命令,其实和grep -E等价,支持基本和扩展的正则表达式。小儿子跑的最快-fgrep,简称快速grep命令,其实和grep -F等价,不支持正则表达式,按照字符串表面意思进行匹配。
语法格式: grep [参数]
常用参数:
-i | 搜索时,忽略大小写 |
---|---|
-c | 只输出匹配行的数量 |
-l | 只列出符合匹配的文件名,不列出具体的匹配行 |
-n | 列出所有的匹配行,显示行号 |
-h | 查询多文件时不显示文件名 |
-s | 不显示不存在、没有匹配文本的错误信息 |
-v | 显示不包含匹配文本的所有行 |
-w | 匹配整词 |
-x | 匹配整行 |
-r | 递归搜索 |
-q | 禁止输出任何结果,已退出状态表示搜索是否成功 |
-b | 打印匹配行距文件头部的偏移量,以字节为单位 |
-o | 与-b结合使用,打印匹配的词据文件头部的偏移量,以字节为单位 |
RPM软件管理器
rpm命令是Red-Hat Package Manager(RPM软件包管理器)的缩写, 该命令用于管理Linux 下软件包的软件。在 Linux 操作系统下,几乎所有的软件均可以通过RPM 进行安装、卸载及管理等操作。
概括的说,rpm命令包含了五种基本功能:安装、卸载、升级、查询和验证。
语法格式:rpm [参数] [软件包]
常用参数:
-a | 查询所有的软件包 |
---|---|
-b或-t | 设置包装套件的完成阶段,并指定套件档的文件名称; |
-c | 只列出组态配置文件,本参数需配合”-l”参数使用 |
-d | 只列出文本文件,本参数需配合”-l”参数使用 |
-e或–erase | 卸载软件包 |
-f | 查询文件或命令属于哪个软件包 |
-h或–hash | 安装软件包时列出标记 |
-i | 显示软件包的相关信息 |
–install | 安装软件包 |
-l | 显示软件包的文件列表 |
-p | 查询指定的rpm软件包 |
-q | 查询软件包 |
-R | 显示软件包的依赖关系 |
-s | 显示文件状态,本参数需配合”-l”参数使用 |
-U或–upgrade | 升级软件包 |
-v | 显示命令执行过程 |
-vv | 详细显示指令执行过程 |
查找和搜索文件
find命令可以根据给定的路径和表达式查找的文件或目录。find参数选项很多,并且支持正则,功能强大。和管道结合使用可以实现复杂的功能,是系统管理者和普通用户必须掌握的命令。
find如不加任何参数,表示查找当前路径下的所有文件和目录,如果服务器负载比较高尽量不要在高峰期使用find命令,find命令模糊搜索还是比较消耗系统资源的。
语法格式:find [参数] [路径] [查找和搜索范围]
常用参数:
-name | 按名称查找 |
---|---|
-size | 按大小查找 |
-user | 按属性查找 |
-type | 按类型查找 |
-iname | 忽略大小写 |
定时任务
crontab是英文“cron table”的简写。该命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
Linux下的任务调度分为两类,系统任务调度和用户任务调度。
系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。/etc/crontab文件是系统任务调度的配置文件。用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。
语法格式:crontab [参数]
常用参数:
-e | 编辑该用户的计时器设置 |
---|---|
-l | 列出该用户的计时器设置 |
-r | 删除该用户的计时器设置 |
-u | 指定要设定计时器的用户名称 |
–help | 显示帮助信息 |
重启计算机
Linux reboot命令用于用来重新启动计算机,和Windows系统中的restart一样。但是机器重启必须要root用户才有权限。
语法格式: reboot [参数]
常用参数:
-n | 在重开机前不做将记忆体资料写回硬盘的动作 帮助 |
---|---|
-w | 并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里 |
-d | 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d) |
-f | 强迫重开机,不呼叫 shutdown 这个指令 |
-i | 在重开机之前先把所有网络相关的装置先停止 |
关机
halt命令用来关闭正在运行的Linux操作系统,如果是线上跑了业务的服务器,执行此命令需谨慎。
halt命令会先检测系统的runlevel,若runlevel为0或6,则关闭系统,否则即调用shutdown来关闭系统。
语法格式:halt [参数]
常用参数:
-w | 并不是真正的重启或关机,只是写wtmp(/var/log/wtmp)纪录 |
---|---|
-d | 不写wtmp纪录(已包含在选项[-n]中) |
-f | 没有调用shutdown而强制关机或重启 |
-i | 关机(或重启)前关掉所有的网络接口 |
-p | 该选项为缺省选项,就是关机时调用poweroff |
显示系统信息
uname命令的英文全称即“Unix name”。
用于显示系统相关信息,比如主机名、内核版本号、硬件架构等。
如果未指定任何选项,其效果相当于执行”uname -s”命令,即显示系统内核的名字。
语法格式:uname [参数]
常用参数:
-a | 显示系统所有相关信息 |
---|---|
-m | 显示计算机硬件架构 |
-n | 显示主机名称 |
-r | 显示内核发行版本号 |
-s | 显示内核名称 |
-v | 显示内核版本 |
-p | 显示主机处理器类型 |
-o | 显示操作系统名称 |
-i | 显示硬件平台 |
清除屏幕
clear命令用于清除屏幕。这个命令将会刷新屏幕,本质上只是让终端显示页向后翻了一页,如果向上滚动屏幕还可以看到之前的操作信息。
语法格式:clear [参数]
常用参数:
–help | 在线帮助 |
---|---|
–vesion | 显示版本信息 |
后端运行程序
nohup命令的全称为“no hang up”,该命令可以将程序以忽略挂起信号的方式运行起来,被运行的程序的输出信息将不会显示到终端。
无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到$HOME/nohup.out文件中。如果没有文件能创建或打开以用于追加,那么 command 参数指定的命令不可调用。如果标准错误是一个终端,那么把指定的命令写给标准错误的所有输出作为标准输出重定向到相同的文件描述符。
语法格式:nohup [参数]
常用参数:
–help | 在线帮助 |
---|---|
–version | 显示版本信息 |
实时显示进程状态
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,常用于服务端性能分析。
在top命令中按f按可以查看显示的列信息,按对应字母来开启/关闭列,大写字母表示开启,小写字母表示关闭。带*号的是默认列。
语法格式:top [参数]
常用参数:
-d | 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s |
---|---|
-q | 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 |
-c | 切换显示模式 |
-s | 安全模式,将交谈式指令取消, 避免潜在的危机 |
-i | 不显示任何闲置 (idle) 或无用 (zombie) 的行程 |
-n | 更新的次数,完成后将会退出 top |
-b | 批次档模式,搭配 “n” 参数一起使用,可以用来将 top 的结果输出到档案内 |
切换系统运行级别
init命令是Linux下的进程初始化工具,init进程是所有Linux进程的父进程,它的进程号为1。init命令是Linux操作系统中不可缺少的程序之一,init进程是Linux内核引导运行的,是系统中的第一个进程。
语法格式:init [参数]
常用参数:
0 | 关机 |
---|---|
1 | 单用户 |
2 | 多用户 |
3 | 完全多用户模式 |
5 | 图形界面 |
6 | 重启 |
杀死进程
kill正如这个单词的意思一样,就是杀死。linux系统中kill命令用来删除执行中的程序或工作。
kill命令可将指定的信号发送给相应的进程或工作。 kill命令默认使用信号为15,用于结束进程或工作。如果进程或工作忽略此信号,则可以使用信号9,强制杀死进程或作业。
语法格式:kill [参数] [进程号]
常用参数:
-l | 列出系统支持的信号 |
---|---|
-s | 指定向进程发送的信号 |
-a | 处理当前进程时不限制命令名和进程号的对应关系 |
-p | 指定kill命令只打印相关进程的进程号,而不发送任何信号 |
显示进程状态
ps命令是“process status”的缩写,ps命令用于显示当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。
ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。
语法格式:ps [参数]
常用参数:
-a | 显示所有终端机下执行的程序,除了阶段作业领导者之外 |
---|---|
a | 显示现行终端机下的所有程序,包括其他用户的程序 |
-A | 显示所有程序 |
-c | 显示CLS和PRI栏位 |
c | 列出程序时,显示每个程序真正的指令名称,而不包含路径,选项或常驻服务的标示 |
-C <指令名称> | 指定执行指令的名称,并列出该指令的程序的状况 |
-d | 显示所有程序,但不包括阶段作业领导者的程序 |
-e | 此选项的效果和指定”A”选项相同 |
e | 列出程序时,显示每个程序所使用的环境变量 |
-f | 显示UID,PPIP,C与STIME栏位 |
f | 用ASCII字符显示树状结构,表达程序间的相互关系 |
-g <群组名称> | 此选项的效果和指定”-G”选项相同,当亦能使用阶段作业领导者的名称来指定 |
g | 显示现行终端机下的所有程序,包括群组领导者的程序 |
-G <群组识别码> | 列出属于该群组的程序的状况,也可使用群组名称来指定 |
h | 不显示标题列 |
-H | 显示树状结构,表示程序间的相互关系 |
-j或j | 采用工作控制的格式显示程序状况 |
-l或l | 采用详细的格式来显示程序状况 |
L | 列出栏位的相关信息 |
-m或m | 显示所有的执行绪 |
n | 以数字来表示USER和WCHAN栏位 |
-N | 显示所有的程序,除了执行ps指令终端机下的程序之外 |
-p <程序识别码> | 指定程序识别码,并列出该程序的状况 |
p <程序识别码> | 此选项的效果和指定”-p”选项相同,只在列表格式方面稍有差异 |
r | 只列出现行终端机正在执行中的程序 |
-s <阶段作业> | 指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况 |
s | 采用程序信号的格式显示程序状况 |
S | 列出程序时,包括已中断的子程序资料 |
-t <终端机编号> | 指定终端机编号,并列出属于该终端机的程序的状况 |
t <终端机编号> | 此选项的效果和指定”-t”选项相同,只在列表格式方面稍有差异 |
-T | 显示现行终端机下的所有程序 |
-u <用户识别码> | 此选项的效果和指定”-U”选项相同 |
u | 以用户为主的格式来显示程序状况 |
-U <用户识别码> | 列出属于该用户的程序的状况,也可使用用户名称来指定 |
U <用户名称> | 列出属于该用户的程序的状况 |
v | 采用虚拟内存的格式显示程序状况 |
-V或V | 显示版本信息 |
-w或w | 采用宽阔的格式来显示程序状况 |
x | 显示所有程序,不以终端机来区分 |
X | 采用旧式的Linux i386登陆格式显示程序状况 |
-y | 配合选项”-l”使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位 |
– <程序识别码> | 此选项的效果和指定”p”选项相同 |
–cols <每列字符数> | 设置每列的最大字符数 |
–columns <每列字符数> | 此选项的效果和指定”–cols”选项相同 |
–cumulative | 此选项的效果和指定”S”选项相同 |
–deselect | 此选项的效果和指定”-N”选项相同 |
–forest | 此选项的效果和指定”f”选项相同 |
–headers | 重复显示标题列 |
–help | 在线帮助 |
–info | 显示排错信息 |
–lines <显示列数> | 设置显示画面的列数 |
–no-headers | 此选项的效果和指定”h”选项相同,只在列表格式方面稍有差异 |
–group <群组名称> | 此选项的效果和指定”-G”选项相同 |
–Group <群组识别码> | 此选项的效果和指定”-G”选项相同 |
–pid <程序识别码> | 此选项的效果和指定”-p”选项相同 |
–rows <显示列数> | 此选项的效果和指定”–lines”选项相同 |
–sid <阶段作业> | 此选项的效果和指定”-s”选项相同 |
-tty <终端机编号> | 此选项的效果和指定”-t”选项相同 |
–user <用户名称> | 此选项的效果和指定”-U”选项相同 |
–User <用户识别码> | 此选项的效果和指定”-U”选项相同 |
–version | 此选项的效果和指定”-V”选项相同 |
–widty <每列字符数> | 此选项的效果和指定”-cols”选项相同 |
显示磁盘空间使用情况
df命令的英文全称即“Disk Free”,顾名思义功能是用于显示系统上可使用的磁盘空间。默认显示单位为KB,建议使用“df -h”的参数组合,根据磁盘容量自动变换合适的单位,更利于阅读。
日常普遍用该命令可以查看磁盘被占用了多少空间、还剩多少空间等信息。
语法格式: df [参数] [指定文件]
常用参数:
-a | 显示所有系统文件 |
---|---|
-B <块大小> | 指定显示时的块大小 |
-h | 以容易阅读的方式显示 |
-H | 以1000字节为换算单位来显示 |
-i | 显示索引字节信息 |
-k | 指定块大小为1KB |
-l | 只显示本地文件系统 |
-t <文件系统类型> | 只显示指定类型的文件系统 |
-T | 输出时显示文件系统类型 |
– -sync | 在取得磁盘使用信息前,先执行sync命令 |
查看系统的磁盘
lsblk命令的英文是“list block”,即用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息。
lsblk命令包含在util-linux-ng包中,现在该包改名为util-linux。
语法格式:lsblk [参数]
常用参数:
-a | 显示所有设备 |
---|---|
-b | 以bytes方式显示设备大小 |
-d | 不显示 slaves 或 holders |
-D | print discard capabilities |
-e | 排除设备 |
-f | 显示文件系统信息 |
-h | 显示帮助信息 |
-i | use ascii characters only |
-m | 显示权限信息 |
-l | 使用列表格式显示 |
-n | 不显示标题 |
-o | 输出列 |
-P | 使用key=”value”格式显示 |
-r | 使用原始格式显示 |
-t | 显示拓扑结构信息 |
磁盘分区
fdisk命令的英文全称是“Partition table manipulator for Linux”,即作为磁盘的分区工具。进行硬盘分区从实质上说就是对硬盘的一种格式化, 用一个形象的比喻,分区就好比在一张白纸上画一个大方框,而格式化好比在方框里打上格子。
语法格式:fdisk [参数]
常用参数:
-b | 指定每个分区的大小 |
---|---|
-l | 列出指定的外围设备的分区表状况 |
-s | 将指定的分区大小输出到标准输出上,单位为区块 |
-u | 搭配”-l”参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址 |
-v | 显示版本信息 |
显示磁盘已经使用的空间与限制
quota命令用于显示磁盘已使用的空间与限制。执行quota命令可查询磁盘空间的限制,并得知已使用多少空间。
语法参数:quota [参数]
常用参数:
-g | 列出群组的磁盘空间限制 |
---|---|
-q | 简明列表,只列出超过限制的部分 |
-u | 列出用户的磁盘空间限制 |
-v | 显示该用户或群组,在所有挂入系统的存储设备的空间限制 |
-V | 显示版本信息 |
收集arp信息
arpd命令是用来收集免费arp信息的一个守护进程,它将收集到的信息保存在磁盘上或者在需要时,提供给内核用户用于避免多余广播。
语法格式:arpd [参数]
启动arpd进程:
arpd -b /var/tmp/arpd.db
运行一段时间后,查看结果:
arpd -b /var/tmp/arpd.db
参考实例
-l | 将arp数据库输出到标准输出设备显示并退出 |
---|---|
-f | 指定读取和加载arpd数据库的文本文件,文件的格式与“-l”输出信息类似 |
-b | 指定arpd数据库文件,默认的位置为“/var/lib/arpd.db |
-a | 指定目标被认为死掉前查询的次数 |
-k | 禁止通过内核发送广播查询 |
-n | 设定缓冲失效时间 |
文件传输命令
curl命令是一个利用URL规则在shell终端命令行下工作的文件传输工具;它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。
作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征;做网页处理流程和数据检索自动化。
语法格式:curl [参数] [网址]
常用参数:
-O | 把输出写到该文件中,保留远程文件的文件名 |
---|---|
-u | 通过服务端配置的用户名和密码授权访问 |
显示FTP会话信息
ftpwho命令用于显示当前所有以FTP登入的用户会话信息。
执行该命令可得知当前用FTP登入系统的用户有哪些人,以及他们正在进行的操作。
语法格式:ftpwho [参数]
常用参数:
-h | 显示帮助信息 |
---|---|
-v | 详细模式,输出更多信息 |
检查并修复Linux文件系统
fsck命令的英文全称是“filesystem check”,即检查文件系统的意思,常用于检查并修复Linux文件系统的一些错误信息,操作文件系统需要先备份重要数据,以防丢失。
Linux fsck命令用于检查并修复Linux文件系统,可以同时检查一个或多个 Linux 文件系统;若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查。
语法格式:fsck [参数] [文件系统]
常用参数:
-a | 自动修复文件系统,不询问任何问题 |
---|---|
-A | 依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统 |
-N | 不执行指令,仅列出实际执行会进行的动作 |
-P | 当搭配”-A”参数使用时,则会同时检查所有的文件系统 |
-r | 采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式 |
-R | 当搭配”-A”参数使用时,则会略过/目录的文件系统不予检查 |
-t | 指定要检查的文件系统类型 |
-T | 执行fsck指令时,不显示标题信息 |
-V | 显示指令执行过程 |
测试主机间网络连通性
ping命令主要用来测试主机之间网络的连通性,也可以用于。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。
不过值得我们注意的是:Linux系统下的ping命令与Windows系统下的ping命令稍有不同。Windows下运行ping命令一般会发出4个请求就结束运行该命令;而Linux下不会自动终止,此时需要我们按CTR+C终止或者使用-c参数为ping命令指定发送的请求数目。
语法格式:ping [参数] [目标主机]
常用参数:
-d | 使用Socket的SO_DEBUG功能 |
---|---|
-c | 指定发送报文的次数 |
-i | 指定收发信息的间隔时间 |
-I | 使用指定的网络接口送出数据包 |
-l | 设置在送出要求信息之前,先行发出的数据包 |
-n | 只输出数值 |
-p | 设置填满数据包的范本样式 |
-q | 不显示指令执行过程 |
-R | 记录路由过程 |
-s | 设置数据包的大小 |
-t | 设置存活数值TTL的大小 |
-v | 详细显示指令的执行过程 |
显示网络状态
netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。
从整体上看,netstat的输出结果可以分为两个部分:一个是Active Internet connections,称为有源TCP连接,其中”Recv-Q”和”Send-Q”指%0A的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到;另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。
语法格式:netstat [参数]
常用参数:
-a | 显示所有连线中的Socket |
---|---|
-p | 显示正在使用Socket的程序识别码和程序名称 |
-u | 显示UDP传输协议的连线状况 |
-i | 显示网络界面信息表单 |
-n | 直接使用IP地址,不通过域名服务器 |
显示或者设置网络设备
ifconfig命令的英文全称是“network interfaces configuring”,即用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。
语法格式:ifconfig [参数]
常用参数:
add<地址> | 设置网络设备IPv6的IP地址 |
---|---|
del<地址> | 删除网络设备IPv6的IP地址 |
down | 关闭指定的网络设备 |
up | 启动指定的网络设备 |
IP地址 | 指定网络设备的IP地址 |
显示活动套接字信息
ss是Socket Statistics的缩写。ss命令用来显示处于活动状态的套接字信息。它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。
语法格式:ss [参数]
常用参数: