@TOC
Linux介绍
为什么使用Linux?
-
Linux与开源软件:Linux是一种自由和开放源代码的类UNIX操作系统,该操作系统的内核由林纳斯托瓦兹在1991年首次发布,之后,在加上用户空间的应用程序之后,就成为了Linux操作系统。严格来讲,Linux只是操作系统内核本身,但通常采用“Linux内核”来表达该意思。而Linux则常用来指基于Linux内核的完整操作系统,它包括GUI组件和许多其他实用工具。GNU通用公共许可协议(GNU General Public License,简称GNU GPL或GPL),是一个广泛被使用的自由软件许可协议条款,最初由理查德斯托曼为GNU计划而撰写,GPL给予了计算机程序自由软件的定义, 任何基于GPL软件开发衍生的产品在发布时必须采用GPL许可证方式,且必须公开源代码。Linux是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU通用公共许可证,任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。随着Linux操作系统飞速发展,各种集成在Linux上的开源软件和实用工具也得到了应用和普及,因此,Linux也成为了开源软件的代名词。 -
Linux在服务器领域的发展:随着开源软件在世界范围内影响力日益增强,Linux服务器操作系统在整个服务器操作系统市场格局中占据了越来越多的市场份额,已经形成了大规模市场应用的局面。并且保持着快速的增长率。尤其在政府、金融、农业、交通、电信等国家关键领域。此外,考虑到Linux的快速成长性以及国家相关政策的扶持力度,Linux服务器产品一定能够冲击更大的服务器市场。据权威部门统计,目前Linux在服务器领域已经占据75%的市场份额,同时,Linux在服务器市场的迅速崛起,已经引起全球IT产业的高度关注,并以强劲的势头成为服务器操作系统领域中的中坚力量。 -
Linux在桌面领域的发展:近年来,特别在国内市场,Linux桌面操作系统的发展趋势非常迅猛。国内如中标麒麟Linux、红旗Linux、深度Linux等系统软件厂商都推出的Linux桌面操作系统,目前已经在政府、企业、OEM等领域得到了广泛应用。另外SUSE、Ubuntu也相继推出了基于Linux的桌面系统,特别是Ubuntu Linux,已经积累了大量社区用户。但是,从系统的整体功能、性能来看,Linux桌面系统与Windows系列相比还有一定的差距,主要表现在系统易用性、系统管理、软硬件兼容性、软件的丰富程度等方面。 -
Linux在嵌入式系统方面广泛使用及领域的发展:Linux的低成本、强大的定制功能以及良好的移植性能,使得Linux在嵌入式系统方面也得到广泛应用,目前Linux以广泛应用于手机、平板电脑、路由器、电视和电子游戏机等领域。的Android操作系统就是创建在Linux内核之上的。目前,Android已经成为全球最流行的智能手机操作系统,据2015年权威部门最新统计,Android操作系统的全球市场份额已达84.6%。此外,思科在网络防火墙和路由器也使用了定制的Linux,阿里云也开发了一套基于Linux的操作系统“YunOS”,可用于智能手机、平板电脑和网络电视;常见的数字视频录像机、舞台灯光控制系统等都在逐渐采用定制版本的Linux来实现,而这一切均归功与Linux与开源的力量。 -
Linux在云计算/大数据领域的发展:互联网产业的迅猛发展,促使云计算、大数据产业的形成并快速发展,云计算、大数据作为一个基于开源软件的平台,Linux占据了核心优势;据Linux基金会的研究,86%的企业已经使用Linux操作系统进行云计算、大数据平台的构建,目前,Linux已开始取代Unix成为最受青睐的云计算、大数据平台操作系统。 -
下面我们谈下linux的发展:linux是基于unix发展而来的,最一开始是由linus为首开发的,而那个时候linux还是一个学生,由此可见,国外牛人也是非常强悍的,一开始呢,unix其实也是开源的,linux所在的学校是用unix来教学的,但是突然有一天unix宣布要收费,而且采取闭源的方式,因此就不能继续使用了,所以linux这个时候就自己折腾操作系统出来,这就是鼎鼎大名的linux前身。目前主流的linux版本有redhat/centos,ubuntu,suse,包括国产的红旗等等一系列,那么在企业中最常用的一般是redhat 和 centos redhat是收费的,centos可以认为是redhat的免费版本,因此很多企业也使用centos, 我们的教学过程中也使用centos, 像ubuntu的话,更加适合个人PC机,桌面版本的。
学习linux流程为:
- 第1阶段:linux环境下的基本操作命令,包括 文件操作命令(rm mkdir chmod, chown) 编 辑工具使用(vi vim)linux用户管理(useradd userdel usermod)等
- 第2阶段:linux的各种配置(环境变量配置,网络配置,服务配置)
- 第3阶段:linux下如何搭建对应语言的开发环境(大数据,JavaEE, Python等)
- 第4阶段:
能编写shell脚本,对Linux服务器进行维护。 - 第5阶段:能进行安全设置,防止攻击,保障服务器正常运行,能对系统调优。
- 第6阶段:深入理解Linux系统(对内核有研究),熟练掌握大型网站应用架构组成、并熟悉各个环节的部署和维护方法。
shell脚本(linux命令集):
Shell脚本也叫Shell Script,与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,它使用了Linux/Unix下的命令。- shell和shell脚本有什么区别?
①确切一点说,
Shell就是一个命令行解释器,它的作用就是遵循一定的语法将输入的命令加以解释并传给系统。它为用户提供了一个向Linux发送请求以便运行程序的接口系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。 Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言(就是你所说的shell脚本)。 ②作为命令语言,它互动式地解释和执行用户输入的命令; ③作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。它虽然不是 Linux系统内核的一部分,但它调用了系统内核的大部分功能来执行程序、创建文档并以并行的方式协调各个程序的运行。 - 总括,
shell脚本是linux命令集的概称,是属于命令行的人机界面。Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁。 - 注意:
①shell文件
后缀名是.sh。 ②shell脚本就是是linux命令。 ③常见的命令行shell:bash (Bourne-Again shell),目前绝大多数 Linux 发行版的默认 shell。 ④也就是说linux命令可以单行打也可以成批打,日常操作就是单行打,使用脚本就是成批打的,然后一次性执行。
Linux和Windows比较:
Linux与Unix:
Linux内核与发行版:
Linux内核:linux内核是一种开放源码的操作系统,由Linux Torvalds负责维护,提供硬件抽象层、硬盘及文件系统控制及多任务功能的系统核心程序。Linux发行版:linux发行版基于linux内核源码,将Linux系统的内核与外围实用程序(Utilities)软件和文档包装起来,并提供一些系统安装界面和系统配置、设定与管理工具,就构成了一种发行版本(distribution),Linux的发行版本其实就是Linux核心再加上外围的实用程序组成的一个大软件包。
VMware软件与发行版:
ISO镜像文件:
- .iso是电脑上光盘镜像(CDMirror)的存储格式之一,因为其是根据ISO-9660有关CD-ROM文件系统标准存储的文件,所以通常在电脑中以后缀.iso命名,俗称iso镜像文件。它形式上只有一个文件,可以真实反映光盘的内容,可由刻录软件或者镜像文件制作工具创建。
- 镜像,原意是光学里指的物体在镜面中所成之像。引用到电脑网络上,一个网站的镜像是指对一个网站内容的拷贝。镜像通常用于为相同信息内容提供不同的源,特别是在下载量大的时候提供了一种可靠的网络连接。制作镜像是一种文件同步的过程。“镜像网站”,又译作““镜像站点” ,亦即把一个互联网上的网站数据“拷贝”到本地服务器,并保持本地服务器数据的同步更新,因此也称为“复制网络站点” 。
VMware工具与远程登录
VMware工具介绍:
- vmtools 安装后,可以让我们在windows下更好的管理vm虚拟机: ①可以直接粘贴命令在windows 和 虚拟机系统之间 ②可以设置windows和虚拟机系统的共享文件夹
- 设置共享文件夹: ①为了方便,可以设置一个共享文件夹,比如d:/share 。 ②windows 和 contos 就可以共享文件了,但是在实际公司开发中,文件的上传下载是需要使用远程方式完成的。
- 设置共享文件夹具体步骤: ①菜单->vm->setting, 如图设置即可注意:设置选项为always enable ,这样可以读写了 ②windows和虚拟机系统可共享 d:/share目录可以读写文件了 ③在centos的 /mnt/hgfs/ 下
- VMware网络配置: ①桥连接:Linux可以和其它的系统通信,但是可能造成ip冲突。 ②NAT:网络地址转换方式:,linux可以访问外网,不会造成ip冲突。 ③主机模式:你的linux是一个独立的主机,不能访问外网。 ④链接:VMware中,该如何理解桥接网络与NAT 网络模式
vagrant与virtualBox简介:
vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。使用Oracle的开源virtualBox虚拟化系统,使用Chef创建自动化虚拟环境。同时,vagrant也支持其他类型的虚拟机系统,如:vmware、kvm、qemu,甚至是容器系统,如docker等,当然,用的比较多的还是virtralBox。- vagrant与virtualBox原理:这里我们简述一下vagrant与virtualBox的原理,virtualBox(本身也可以创建虚拟机,只是相对麻烦)会开放一个创建虚拟机的接口,Vagrant会利用这个接口创建虚拟机,并且通过Vagrant来管理,配置和自动安装虚拟机。
- VirtualBox配置:通过菜单 管理 -> 全局设定,或者按下快捷键 Ctrl + g,在全局设定对话框中,修改 默认虚拟电脑位置,指定一个容量较大的磁盘。
使用Vagrant来创建虚拟机:①前提,首先确保本机已经安装好两者。 ②新建一个空文件夹:mkdir centos7 ,并进入该文件夹:cd centos7/ ③在该目录下初始化一个创建centos7的Vagrantfile文件,执行命令:vagrant init centos/7 ④创建centos7虚拟机,执行命令:vagrant up,如果本地有base box,会使用本地的,否则将会从网络中下载,此过程可能偏久,会生成名字为如下图所示的虚拟机。 ⑤接下来,我们将在virtualBox中看到刚刚创建的虚拟机: ⑥注: <1>在vagrant中box概念,是一个打包的单一文件,其中包含了一个完整系统的虚拟机相关数据。 <2>vagrant中的虚拟机root的账号密码都是root/vagrantvagrant的基本使用:①执行命令:vagrant ssh ,就会通过ssh连接至刚刚我们所创建的虚拟机 ②如果需要退出当前连接,执行命令:exit,将会回到本地目录 ③查看虚拟机状态,在本地目录里执行命令:vagrant status ④停掉虚拟机,执行命令:vagrant halt ⑤开启虚拟机,执行命令:vagrant up ⑥删除虚拟机:vagrant destroy ⑦查看目前已有的box:vagrant box list ⑧新增加一个box:vagrant box add <1>这种方式是从本地磁盘中新增一个下载好的针对 vagrant 的 .box 文件。 ⑨删除指定box:vagrant box remove ⑩重启虚拟机:vagrant reload <1>执行该命令会重启虚机,并且重新加载 Vagrantfile 中的配置信息。ssh远程连接vagrant:①su root切换root用户后,进入/etc/ssh目录,修改sshd_config文件配置,然后systemctl restart sshd 命令重启服务: <1>PermitRootLogin yes <2>PasswordAuthentication yes ②修改vagrant创建虚拟机生成的Vagrantfile配置文件,将虚拟机IP固定为指定IP。该IP地址为主机网络中未被使用的地址 ③即可直接连接: <1>账号密码为root账号密码,端口为22,IP地址为Vagrant配置文件的IP。 <2>账号密码为root账号密码,端口为2222,IP地址为127.0.0.1。(2222端口为虚拟机22端口在宿主机的映射)- Vagrant的网络配置:在 Vagrantfile 配置文件中,使用config.vm.network配置虚拟机的网络。Vagrant 支持三种网络模型:端口转发(Forwarded Ports)、私有网络(Private Network)和公有网络(Public Network),他们和多数虚拟机提供的网络模型是对应的。
①
端口转发 forwarded_port:端口转发将访问宿主机的某个端口的流量全部转发到虚拟机的某个端口 ②私有网络 private_network:私有网络适用于可以从宿主机访问虚拟机但 LAN 中的其他人不需要也无法访问虚拟机的情况。使用同一虚拟网络的虚拟机之间网络互通。Vagrant 的私有网络对应 VirtualBox 的 hostonly 网络模型。 ③公有网络 public_network:使用公有网络时,虚拟机暴露为 LAN 中的一台主机。对于私有网络来说,外网肯定无法访问,但是对于公有网络来说,这个不一定。Vagrant 公有网络对应 VirtualBox 的 Bridge 网络,虚拟机在宿主机所在的 LAN 中等价于一台物理机器。
虚拟机 VMware 和 VirtualBox 哪个更好用?
- VirtualBox是开源软件,好处多多,功能可能vmware强一点,但一般使用都不大会用到,装个Linux学习,VirtualBox足够了。
- vmware要找注册码也麻烦。用过VirtualBox就再也不用VMware了。
- VirtualBox优势:开源软件,免费中文界面比VMware小多了安装配置简单实用,社区活跃
为什么需要远程登录Linux?
- 公司开发时候, 具体的情况是这样的:
①linux服务器是开发小组共享的.
②正式上线的项目是运行在公网的.
③因此程序员需要远程登录到虚拟操作系统进行项目管理或者开发.
④画出简单的网络拓扑示意图(帮助理解)
⑤远程登录客户端有 Xshell5,SecureCRT。远程上传下载文件有 Xftp5 ,WinSCP,。我们学习使用 Xshell5 和 Xftp , 其它的远程工具大同小异。
远程登录Linux-Xshell5:
- Xshell 是目前最好的远程登录到Linux操作的软件,流畅的速度并且完 美解决了中文乱码的问题, 是目前程序员首选的软件。
- Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET协议。
- Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好 的达到远程控制终端的目的
远程上传下载文件Xftp5:
- 是一个基于 windows 平台的功能强大的SFTP、FTP 文件传输软件。使用了 Xftp 以后,windows 用户能安全地在UNIX/Linux 和 Windows PC 之间传输文 件。
Linux目录结构
Linux目录简介:
- linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。
- 记住一句经典的话:在Linux世界里,一切皆文件。
- 具体的目录结构:
①
/bin[重点] :(/usr/bin 、 /usr/local/bin)是Binary的缩写,这个目录存放着最经常使用的命令。 ②/sbin(/usr/sbin 、 /usr/local/sbin):S就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。 ③/home[重点]:存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。 ④/root[重点]:该目录为系统管理员,也称作超级权限者的用户主目录。 ⑤/lib:系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。 ⑥/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。 ⑦/etc[重点]:所有的系统管理所需要的配置文件和子目录 my.conf。 ⑧/usr[重点]:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。 ⑨/boot[重点]:存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。 ⑩/proc:这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息。 ⑪/srv:service缩写,该目录存放一些服务启动之后需要提取的数据。 ⑫/sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 ⑬/tmp:这个目录是用来存放一些临时文件的。 ⑭/dev:类似于windows的设备管理器,把所有的硬件用文件的形式存储。 ⑮/media[重点]:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。 ⑯/mnt[重点]:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。 ⑰/opt:这是给主机额外安装软件所摆放的目录。如安装ORACLE数据库就可放到该目录下,默认为空。 ⑱/usr/local:[重点]这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序。 ⑲/var:[重点]这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件。 ⑳/selinux[security-enhanced linux] 360:SELinux是一种安全子系统,它能控制程序只能访问特定文件。 - 重点介绍:
①
usr(Unix System Resource 系统资源):操作系统软件资源。 ②var(variable 可变的):系统产生经常变化的文件。 ③etc(Editable Text Configuration 可编辑的文件配置):用来存放系统主要的配置文件。 ④opt(optional可选择的):系统额外安装软件存放的目录。 - 总结:
①
linux默认安装程序都是安装在/usr/lib目录中。②数据文件的话放在home目录中好一点。③至于opt和var见仁见智。 - 链接:Linux中的文件和目录结构详解
Vi和Vim编辑器
Vi和Vim编辑器介绍:
- 所有的 Linux 系统都会内建 vi 文本编辑器。
- Vim 具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
vi/vim filename 用编辑器可以创建文件,但要记得保存才能生效。为什么vi可以用vim却不可以用。因为没安装。不是所以系统都默认安装vim的。只安装vim-tiny,那就是vi。- 链接:Linux vi/vim
vi和vim常用的三种模式:
-
命令模式:①用户刚刚启动 vi/vim,便进入了命令模式。 ②此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。 ③以下是常用的几个命令: <1>i 切换到输入模式,以输入字符。 <2>x 删除当前光标所在处的字符。 <3>: 切换到底线命令模式,以在最底一行输入命令。 ④若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。 ⑤命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。 -
输入模式:①在命令模式下按下i, I, o, O, a, A, r, R等任何一个字母之后进入输入模式, 一般来说按i即可。 ②在输入模式中,可以使用以下按键: <1>字符按键以及Shift组合,输入字符 <2>ENTER,回车键,换行 <3>BACK SPACE,退格键,删除光标前一个字符 <4>DEL,删除键,删除光标后一个字符 <5>方向键,在文本中移动光标 <6>HOME/END,移动光标到行首/行尾 <7>Page Up/Page Down,上/下翻页 <8>Insert,切换光标为输入/替换模式,光标将变成竖线/下划线 <9>ESC,退出输入模式,切换到命令模式 <10>u :撤销上一步的操作 <11>Ctrl+r :恢复上一步被撤销的操作 ③输入模式中,界面最下面会显示"-- 输入 --"字样。 -
底线命令模式:①在命令模式下按下:(英文冒号)就进入了底线命令模式。 ②底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。 ③在底线命令模式中,基本的命令有(已经省略了冒号): <1>q 退出程序 <2>w 保存文件 ④底线命令模式中均需要输入回车才可执行,且结束运行后返回命令模式。 ⑤按ESC键可随时退出底线命令模式。 ③在底线命令模式中,界面最下面会显示":"符号。
VIM实用指南之查找:
- 正向查找命令:
/string。如要查找的是include,则在normal模式,先按/键,然后再输入要查找的字符,回车,即可启动全文查找。启动查找后,可以使用n进行前向查找(find next),也可以使用N进行反向查找。 - 反向查找命令:
?string。与/string命令一样,只不过此命令是从后向前查找,同样也支持n、N命令。注意:特殊字符.*[]^%/\?~$有特殊的意义,在查找它们时,需要在这些字符前加上“\”字符,如:/inc$表示查找inc$字符串 - 行号相关: ①显示行号:命令模式下set nu ②定位到指定行: <1>命令模式下,:n 比如想到第2行,:2 <2>编辑模式下,ngg 比如想到第5行 5gg(或者5G) <3>打开文件定位到指定行 vim +n test.txt ③查看当前行信息 ctrl+g (显示类似信息:"start_computer.sh" 13 行 --30%-- )
- 链接:# VIM实用指南(2)简单查找
我们可以将这三个模式想成底下的图标来表示:
开关机与登录注销与用户管理
关机&重启命令:
- 立该进行关机:shutdown –h now
- 1 分钟后会关机了:shudown -h 1
- 现在重新启动计算机:shutdown –r now
- 现在重新启动计算机:halt
- 现在重新启动计算机:reboot
- 把内存的数据同步到磁盘:sync
注意:不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中
用户登录和注销:
登录时尽量少用root帐号登录,因为它是系统管理员,最大的权限,避免操作失误。可以利用普通用户登录,登录后再用”su - 用户名’命令来切换成系统管理员身份。- 在提示符下输入 logout 即可注销用户 ①注意:logout 注销指令在图形运行级别无效,在运行级别 3下有效。
用户管理介绍:
- Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
添加用户:①基本语法:useradd 用户名②当创建用户成功后,会自动的创建和用户同名的家目录 ③也可以通过 useradd -d 指定目录 新的用户名,给新创建的用户指定家目录指定/修改密码:①基本语法:passwd 用户名删除用户:①基本语法: userdel 用户名②userdel –r 用户名表示删除用户时,将家目录一起删除。查询用户信息指令:①基本语法:id 用户名②当用户不存在时,返回无此用户切换用户:①基本语法:su – 切换用户名②从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。 当需要返回到原来用户时,使用exit指令查看当前用户/登录用户:①基本语法:whoami/ who am I用户组:①新增组----基本语法:groupadd 组名②删除组----基本语法:groupdel 组名③增加用户时直接加上组 ----基本语法:useradd –g 用户组 用户名④修改用户的组 ----基本语法:usermod –g 用户组 用户名
linux su和sudo命令的区别:
- 内容不同:
①
su命令:用来切换用户,substitute英文含义“代替”的意思。②sudo命令:sudo为superuser do 的简写,即使用超级用户来执行命令,一般是指root用户。 - 用法不同: ①su命令:不加用户名默认是切换为root用户,切当前目录不改变,其他环境变量不变。 ②sudo命令: 查看当前用户可以用sudo执行的命令都有哪些。
- 环境不同: ①su命令:切换到root用户,但是并没有转到root用户家目录下,即没有改变用户的环境。 ②sudo命令:是当前用户切换到root,然后以root身份执行命令,执行完成后,直接退回到当前用户,而这些的前提是要通过sudo的配置文件/etc/sudoers来进行授权。
用户和组的相关文件:
-
/etc/passwd 文件:①用户(user)的配置文件,记录用户的各种信息 ②每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell -
/etc/shadow 文件:①口令的配置文件 ②每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志 -
/etc/group 文件:①组(group)的配置文件,记录Linux包含的组的信息 ②每行含义:组名:口令:组标识号:组内用户列表用户和组的相关文件示意图:
Linux常用系统文件
profile环境变量文件:
- /etc/profile:操作系统在登录时使用的第二个文件是 /etc/profile 文件。
- .profile: ①.profile 文件在主(HOME/.profile 文件中的命令(如果此文件存在)。 .profile 文件包含覆盖 /etc/profile 文件中变量集的个人概要文件。 .profile 文件通常用于设置导出的环境变量和终端方式。可通过修改 .profile 文件来定制环境。
- 按照生命周期来分,Linux 环境变量可以分为两类: ①永久的:需要用户修改相关的配置文件,变量永久生效。 ②临时的:用户利用 export 命令,在当前终端下声明环境变量,关闭 shell 终端失效。
- 按照作用域来分,Linux 环境变量可以分为: ①系统环境变量:系统环境变量对该系统中所有用户都有效。 ②用户环境变量:顾名思义,这种类型的环境变量只对特定的用户有效。
- 总结: ①/etc/profile:是全局profile文件,设置后会影响到所有用户 ②/home/username/.profile或.bash_profile是针对特定用户的,可以针对用户,来配置自己的环境变量。 ③注意:profile是unix上才有的;bash_profile是Linux下有的(Linux下,用户目录没有.profile文件)/home/userName/.bash_profile,是隐藏文件,需要使用ls -alh才能看到的。
- Bash登陆的时候,profile执行的顺序: ①先执行全局/etc/profile ②接着bash会检查使用者的HOME目录中,是否有 .bash_profile 或者 .bash_login或者 .profile,若有,则会执行其中一个,执行顺序为: .bash_profile 最优先 > .bash_login其次 > .profile
简单设置环境变量的方法:个人在工作学习过程中最常用的就是在 /etc/profile 文件中添加变量,对所有用户生效,并且是永久的。用vim在文件 /etc/profile 文件中增加变量,该变量将会对 Linux 下所有用户有效,并且是“永久的”。修改文件后要想马上生效还要运行 source /etc/profile 不然只能在下次重新登录后才能生效。
linux配置host文件:
- hosts是系统文件,配置了IP地址和域名(或者主机名、主机别名)的映射关系。能够建立存储了IP地址和域名(或者主机名、主机别名)的映射关系。
- hosts文件什么情况下会被用到? ①最常见情况是,当访问一个网址时,系统会先在hosts文件中寻找,查看是否有需要域名和IP的映射关系,如果存在就通过IP地址寻找服务器;如果没有,则会访问DNS服务器,获得域名对应的IP地址,然后再去寻找服务器。
- hosts文件如何定义映射关系? ①hosts文件的格式如下:IP地址 主机名/域名 主机别名 ②一行中有三部分内容,其中主机别名不是必须的,一行中每部分之间用空格分隔。
- hosts文件的存放位置?
①
在Linux系统中,hosts文件的位置为:/etc/hosts②在 MAC 系统中中,hosts文件的位置为:~/private/etc ③在 Windows 系统中,hosts文件的位置为:C:WindowsSystem32driversetc - hosts文件能解决哪些问题?
①
加快域名解析:对于要经常访问的网站,在Hosts中配置域名和IP的映射关系,可以很快解析出IP,而不用请求网络上的DNS服务器。 ②屏蔽网站:将一些不友好的网站域名映射到错误的IP或自己计算机的IP,这样就不用访问了。 <1>127.0.0.1 屏蔽的网站 <2>0.0.0.0 屏蔽的网站 ③双机互连:当两台主机只是双机互连时,这时两台主机都需要设置自己的ip,同时在对方的hosts文件里加入自己的ip和主机名。
实用指令
Linux命令格式:
- 格式:
command [options] [arguments]①command:命令名。相应功能的单词英文单词或单词缩写 。 ②options:--单词或-单字。选项,可用来对命令进行控制。 ③arguments:传给命令的参数。 - 命令格式中的符号含义:在查看命令帮助时,会出现[],<>,|等符号,它们的含义如下:
①
[] 表示是可选的;②<> 表示是可变化的; ③x|y|z 表示只能选择一个; ④-abc 表示三个参数(或任何二个)的混合使用 ⑤在方括号内的表达式("[" 和 "]"之间的字符)是可选的(写命令时要去掉括号)。 ⑥在尖括号内的表达式("<" 和 ">"之间的字符)是必须替换的表达式(而且要去掉括号)。 ⑦省略号"..."表示该选项可以单个或多个 - 举例说明: ①Usage:rmdir [OPTION]... DIRECTORY,也就是说这个命令基本结构是 命令名+可选参数+目录 <1>作用是删除一个空的文件夹,这里需要注意两点 一个是[OPTION] 代表这个参数可有可无,而后面的...符号代表 <2>这个OPTION是个可变长的参数,类似编程中形参后面跟... 代表可以有零到任意多个OPTION参数。 ②第二个部分就是OPTION的种类 <1>这个部分分为三个部分 -缩略形式的参数写法, --全称的写法, 参数描述。 <2>有些OPTION是没有缩略写法的,比如第一个参数--ingonre-fail-on-non-empty就只有全称,所以前面的缩略形式就空白了,这个参数的作用就是忽略掉删除文件夹时非空文件夹的错误提示信息。
~$ rmdir --help
用法:rmdir[选项]...目录...
删除指定的空目录。
--ignore-fail-on-non-enpty
忽略仅由目录非空产生的所有错误
-p,--parents
renove DIRECTORY and its ancestors; e.g., 'rndir -p a/b/c' is sinilar to 'rmdir a/b/c a/b a'
-v, --verbose
output _a diagnostic for'every directory processed
--help
显示此帮助信息并退出
--version
显示版本信息并退出
- 常用Linux命令链接:Linux 常用命令学习
指定运行级别:
- 运行级别说明: 0 :关机 1 :单用户【找回丢失密码】 2:多用户状态没有网络服务 3:多用户状态有网络服务 4:系统未使用保留给用户 5:图形界面 6:系统重启
- 常用运行级别是3和5 ,要修改默认的运行级别可改文件/etc/inittab的id:5:initdefault:这一行中的数字 命令语法:init [012356]
其他常用指令
执行脚本:
- 链接:shell程序执行方式
直接通过bash后面加脚本:①通过bash命令来执行相应的脚本,通过bash命令来执行对应的脚本的好处是该脚本可以没有执行权限,也能够执行成功。 ②通过bash命令来执行脚本,其实是使用了bash来作为脚本的解释器来执行,bash后面只能跟shell脚本命令,如果不是shell脚本命令,执行肯定会报错。 ③bash只是Linux中执行脚本的一种方式,如果Linux中还安装了其它shell,也可以使用其它shell命令来执行脚本,比如还安装了zsh等shell,就可以zsh加上脚本来执行相应的脚本。
cd /data/shell
bash hello.sh
或
cd /data/shell
sh hello.sh
通过相对路径或者绝对路径来执行脚本:①执行shell脚本的另外一种方式是通过脚本的相对路径或者绝对路径来执行,但是需要注意的是,通过该方法来执行脚本,该脚本必须有执行的权限,才能够进行执行,如果没有执行权限,是不能执行的。 ②提示没有执行权限。那么如何让该脚本能够执行呢?下面就要对该脚本加上执行权限。 <1>chmod u+x test.sh③在脚本所在的目录执行该脚本的过程中需要加上"./"这是为啥呢?为啥不是直接通过脚本名来执行呢?这是由于在Linux中所有可执行的命令是在Linux中的PATH变量中配置的,该脚本执行的路径没有在PATH变量中配置,所以只执行脚本名,是不能够找到该脚本命令的,所以需要在执行脚本命令前加上"./"。下面来看一下如何通过绝对路径来执行脚本。
cd /data/shell
./hello.sh
设置和查看环境变量:
- 使用env命令显示所有的环境变量
env
- 显示环境变量HOME
echo $HOME
- 设置一个新的环境变量hello
export HELLO="Hello!"
- 使用set命令显示所有本地定义的Shell变量
set
- 使用unset命令来清除环境变量
unset $TEST #删除环境变量TEST
Linux中的$符号的三种常见用法:①用法一:显示脚本参数($0、$?、\*、\@、$#、$$、$!)(本质上属于变量替换) ②用法二:获取变量与环境变量的值③链接:Linux中的$符号的三种常见用法
清屏命令:
- clear 命令实操,清掉终端命令屏幕显示的内容。
- 当终端命令屏显示的内空太多后,想清掉屏幕上显示的内容怎么办,用clear命令即可。
- 输入命令:
clear,按回车,会看到终端命令屏上显示的内容全部被清空。
ctrl+c,ctrl+d,ctrl+z在linux程序中意义和区别:
- ctrl+c和ctrl+z都是中断命令,但是他们的作用却不一样.
①
ctrl+c是强制中断程序的执行,进程已经终止。②ctrl+z的是将任务中止(暂停的意思),但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态,用户可以使用fg/bg操作继续前台或后台的任务,fg命令重新启动前台被中断的任务,bg命令把被中断的任务放在后台执行. ③例如:当你vi一个文件是,如果需要用shell执行别的操作,但是你又不打算关闭vi,因为你得存盘推出,你可以简单的按下ctrl+z,shell会将vi进程挂起~,当你结束了那个shell操作之后,你可以用fg命令继续vi你的文件。 - ctrl-d 不是发送信号,而是表示一个特殊的二进制值,表示 EOF。 ①注:在shell中,ctrl-d表示退出当前shell.
eval命令:
eval命令会计算(evalue)它的参数,这些参数作为表达式计算后重新组合为一个字符串,然后作为一个命令被执行。- eval最常见的用法是将动态生成的命令行计算并执行。例如:
$ name=woodie
$ cmd="echo Helllo $name\! "
$ eval $cmd
Hello woodie!
帮助指令
man 获得帮助信息:
- 基本语法:man [命令或配置文件](功能描述:获得帮助信息)
help指令:
- 基本语法:help 命令 (功能描述:获得shell内置命令的帮助信息)
文件目录类
pwd 指令(print word directory):
- 基本语法:pwd (功能描述:显示当前工作目录的绝对路径)
ls指令(list):
- 基本语法:ls [选项] [目录或是文件]
- 常用选项:
-a 文件下所有文件 包括...-A 目录下的所有文件及文件夹-l 所有文件文件夹的详情及权限-R 列出当前目录及所有子目录下的文件 --help ls 所有参数大全 - 快捷用法:
ll 相当于 ls -l
cd 指令(change directory):
- 基本语法:cd [参数] (功能描述:切换到指定目录)
- 其中
~也表示为当前环境变量HOME对应的值的目录。.或./则是表示目前所在的目录。..或../则表示目前目录位置的上一层目录。/处于Linux文件系统树形结构的最顶端,我们称它为Linux文件系统的root,它是Linux文件系统的入口。-表示当前环境变量OLDPWD对于的值得目录。 - 常用参数:
①
cd 绝对路径或相对路径:跳到某路径 <1>绝对路径必定由"/"开头,绝对路径是指从根目录说起的。 <2>相对路径不由"/"开头,相对路径是相对于现在目前所在的位置,为目的地指向。 ②cd ~或者cd:切换到当前环境变量HOME对应的值的目录 ③cd ..:回到当前目录的上一级目录 ④cd ../..:返回上两级目录 ⑤cd /:返回到linux文件系统的根目录 ⑥cd -:返回到当前环境变量OLDPWD对于的值得目录
mkdir指令(make directory):
- 功能描述:mkdir指令用于创建目录
- 基本语法:mkdir [选项] 要创建的目录
- 常用选项: -p :创建多级目录
rmdir指令(remove directory):
- 功能描述:
rmdir指令删除空目录 - 基本语法:rmdir [选项] 要删除的空目录
- 常用选项: -p或--parents:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除; --ignore-fail-on-non-empty:此选项使rmdir命令忽略由于删除非空目录时导致的错误信息; -v或-verboes:显示命令的详细执行过程; --help:显示命令的帮助信息; --version:显示命令的版本信息。
- 使用细节:rmdir 删除的是空目录,如果目录下有内容时无法删除的。
提示:如果需要删除非空目录,需要使用 rm -rf 要删除的目录
touch指令:
- 功能描述:
Linux touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件(空文件)。 - 基本语法:touch 文件名称
cp指令(copy):
- 功能描述:cp 指令拷贝文件到指定目录
- 基本语法:cp [选项] source dest
- 常用选项: ①-r :递归复制整个文件夹,若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。 ②-f:强制覆盖已经存在的目标文件而不给出提示。
rm指令(remove):
- 功能描述:
rm 指令移除文件或目录 - 基本语法:rm [选项] 要删除的文件或目录
- 常用选项: -f, --force 忽略不存在的文件,从不给出提示。 -i, --interactive 进行交互式删除 -r, -R, --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。 -v, --verbose 详细显示进行的步骤 -d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
- 使用细节:强制删除不提示的方法:带上 -f 参数即可
mv指令(move):
- 功能描述:mv 移动文件与目录或重命名
- 基本语法: mv oldNameFile newNameFile (功能描述:重命名) mv /temp/movefile /targetFolder (功能描述:移动文件)
cat指令(concatenate)(连接的意思):
- 功能描述:
cat命令用于连接文件并打印到标准输出设备上,也就是查看文件内容。 - 基本语法:cat [选项] 要查看的文件
- 常用选项:-n :显示行号
- 使用细节:cat 只能浏览文件,而不能修改文件,为了浏览方便,一般会带上 管道命令 | more
more指令:
- 功能描述:more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more指令中内置了若干快捷键,详见操作说明。
- 基本语法:more 要查看的文件
less指令:
- 功能描述:less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
- 基本语法:less 要查看的文件
- 操作说明:
①向下翻动一页:
空白键,[pagedown],ctrl + f②向上翻动一页:[pageup],ctrl + b③向下翻动一行:j,↓,Enter④向上翻动一行:k,↑⑤移动到最后一行:G⑥移动到第一行:g⑦离开这个程序:q⑧向下搜寻[字符串]的功能:/字符串,n:向下查找,N:向上查找。 ⑨向上搜寻[字符串]的功能:?字符串,n:向上查找,N:向下查找。 ⑩输出当前行的行号以及文件名:=,:f⑪在 less 查看日志文件时: <1>可以按大写 F,就会有类似 tail -f 的效果,读取写入文件的最新内容(此刻按其他命令都无效)。<2>按 ctrl+c 停止。
Linux中cat、more、less命令区别:
- cat是一次性显示整个文件的内容,more和less一般用于显示文件内容超过一屏的内容,并且提供翻页的功能。
- more比cat强大,提供分页显示的功能,less比more更强大,提供翻页,跳转,查找等命令。而且more和less都支持:用空格显示下一页,按键b显示上一页。
echo指令(回响的意思):
- 功能描述:echo输出内容到控制台,
都是用于字符串的输出。 - 基本语法:echo [选项] [输出内容]
head指令:
- 功能描述:
head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容。 - 基本语法: head 文件 (功能描述:查看文件头10行内容) head -n 5 文件 (功能描述:查看文件头5行内容,5可以是任意行数)
tail指令:
- 功能描述:
tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的前10行内容。 - 基本语法: ① tail 文件 (功能描述:查看文件头10行内容) ② tail -n 5 文件 (功能描述:查看文件头5行内容,5可以是任意行数) ③ tail -f 文件 (功能描述:实时追踪该文档的所有更新)
> 指令 和 >> 指令:
- 功能描述:
> 输出重定向和>> 追加 - 基本语法: ① ls -l >文件 (功能描述:列表的内容写入文件a.txt中(覆盖写)) ② ls -al >>文件 (功能描述:列表的内容追加到文件aa.txt的末尾) ③ cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2) ④ echo "内容">> 文件 • 应用实例
ln 指令:
- 功能描述:软链接也成为符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径 基本语法:
- 用法:ln -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接)
- 细节说明:当我们使用pwd指令查看目录时,仍然看到的是软链接所在目录。
history指令:
- 功能描述:查看已经执行过历史命令,也可以执行历史指令
- 基本语法:history (功能描述:查看已经执行过历史命令)
- 序列号查找:可以先使用history查看命令的序号,
比如要执行342条命令 我们可以会用!342来执行第342条命令。
source命令:
- source命令也称为“点命令”,也就是一个点符号(.),是bash的内部命令。
- 注意:该命令通常用命令“.”来替代
- source命令功能:source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。因为linux所有的操作都会变成文件的格式存在。
- source命令用法?
source filename # filename必须是可执行的脚本文件
或者
. filename # 注意“.”号后面还有一个空格
时间日期类
date指令-显示当前日期:
- 基本语法: ①date (功能描述:显示当前时间) ②date +%Y (功能描述:显示当前年份) ③date +%m (功能描述:显示当前月份) ④date +%d (功能描述:显示当前是哪一天) ⑤date "+%Y-%m-%d %H:%M:%S"(功能描述:显示年月日时分秒)
date指令-设置日期:
- 基本语法:date -s 字符串时间
cal指令(calendar):
- 功能描述:查看日历指令
- 基本语法:cal [选项] (功能描述:不加选项,显示本月日历)
搜索查找类
find指令:
- 功能描述:find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。
- 基本语法:find [搜索范围] [选项]
- 选项说明:
locate指令:
- 功能描述:locaate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。Locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。
- 基本语法:locate 搜索文件
- 特别说明:由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。
whereis指令:
- whereis命令用于查找文件。该指令会在特定目录中查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件。该指令只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令。
- 语法:whereis [-bfmsu][-B <目录>...][-M <目录>...][-S <目录>...][文件...] ①参数: -b:只查找二进制文件。 -B<目录>:只在设置的目录下查找二进制文件。 -f :不显示文件名前的路径名称。 -m:只查找说明文件。 -M<目录>:只在设置的目录下查找说明文件。 -s :只查找原始代码文件。 -S<目录>:只在设置的目录下查找原始代码文件。 -u :查找不包含指定类型的文件。
grep指令和 管道符号 |:
- 简介:Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
- 功能描述:grep 过滤查找
- 基本语法:grep [选项] 查找内容 源文件
- 常用选项:
grep命令这种可以在命令行中通过 | 互相链接,作为输入的命令原来有同一的名字叫做管道命令!①管道命令只处理前一个命令正确输出,不处理错误输出。②管道命令右边命令,必须能够接收标准输入流命令才行。③例如:historty | grep less,表示根据history命令返回的数据中查询less命令数据。
- 此外管道符前面的数据,只要处理字符串的命令都可以接受。
压缩和解压类
打包和压缩的区别:
打包:将一堆文件或目录什么的变成一个总的文件。压缩:将一个大的文件经过某种压缩算法变成一个小文件。- 为什么要区分这两个概念呢?
①
因为Linux中的很多压缩程序只能针对一个文件进行压缩,所以当你想要压缩一大堆文件时,首先需要打个包,然后压缩。
gzip/gunzip 指令:
- 功能描述:gzip 用于压缩文件, gunzip 用于解压的
特点:不能压缩目录,而且不保留原文件。- 基本语法: gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件) gunzip 文件.gz (功能描述:解压缩文件命令)
zip/unzip 指令:
- 功能描述:zip 用于压缩文件, unzip 用于解压的,这个在项目打包发布中很有用的
- 基本语法: zip [选项] XXX.zip 将要压缩的内容(功能描述:压缩文件和目录的命令) unzip [选项] XXX.zip (功能描述:解压缩文件)
- zip常用选项:
-r:递归压缩,即压缩目录 - unzip的常用选项: -d<目录> :指定解压后文件的存放目录
bzip2:
- 命令路径:/usr/bin/bzip2
bzip2是用来取代gzip指令的。- 作用:压缩(解压)文件,压缩文件后缀为.bz2
- bzip2 -[option] [file_name]: -c 将压缩过程中产生的数据输出到屏幕上 -d 解压缩参数 -k 保留原文件 -z 压缩的参数 -v 显示压缩比 -# 压缩等级1-9,和gzip一样
- 解压使用bzip2 –d或者 bunzip2
tar 指令:
- 功能描述:
tar 指令 是打包指令,最后打包后的文件是 .tar.gz 的文件。 - 基本语法: tar [选项] XXX.tar.gz 打包的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)
- 选项说明:
组管理
组管理概述:
- 在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件 有所有者、所在组、其它组的概念。 ①所有者 ② 所在组 ③ 其它组 ④ 改变用户所在的组
- 文件/目录 所有者:文件/目录 所有者一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。 ①查看文件的所有者---------------指令:ls –ahl ②修改文件所有者------------------指令:chown 用户名 文件名
- 组的创建: ①基本指令:groupadd 组名
- 文件/目录 所在组:当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组。 ①查看文件/目录所在组----------------基本指令:ls –ahl ②修改文件所在的组----------------基本指令:chgrp 组名 文件名
- 其它组:除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组。
- 改变用户所在组:在添加用户时,可以指定将该用户添加到哪个组中,同样的用root的管理权限可以改变某个用户所在的组。 ①改变用户所在组指令: <1> usermod –g 组名 用户名 <2>usermod –d 目录名 用户名 改变该用户登陆的初始目录。
权限管理
文件目录详细介绍:
权限的基本介绍:
ls -l中显示的内容如下: -rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc0-9位说明: ①第0位确定文件类型(d, - , l , c , b) ②第1-3位确定所有者(该文件的所有者)拥有该文件的权限。---User ③第4-6位确定所属组(同用户组的)拥有该文件的权限,---Group ④第7-9位确定其他用户拥有该文件的权限 ---Other
1 --------------------文件:硬连接数或 目录:子目录数
root--------------------用户
root --------------------组
1213-------------------- 文件大小(字节),如果是文件夹,显示 4096字节
Feb 2 09:39 --------------------最后修改日期
abc --------------------文件名
rwx权限详解:
- rwx作用到文件: ①[ r ]代表可读(read): 可以读取,查看 ②[ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件. ③[ x ]代表可执行(execute):可以被执行
- rwx作用到目录: ①[ r ]代表可读(read): 可以读取,ls查看目录内容 ②[ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录 ③[ x ]代表可执行(execute):可以进入该目录
修改权限-chmod:
- 基本说明:通过chmod指令,可以修改文件或者目录的权限。
- 第一种方式:+ 、-、= 变更权限: ①u:所有者 ②g:所有组 ③o:其他人 ④a:所有人(u、g、o的总和)
举例:
1. chmod u=rwx,g=rx,o=x 文件目录名
2. chmod o+w 文件目录名
3. chmod a-x 文件目录名
- 第二种方式:通过数字变更权限:
举例:
r=4 w=2 x=1 rwx=4+2+1=7
chmod u=rwx,g=rx,o=x 文件目录名相当于 chmod 751 文件目录名
修改文件所有者与所在组:
- 修改文件所有者-chown: ①chown newowner file 改变文件的所有者 ②chown newowner:newgroup file 改变用户的所有者和所有组 <1>-R 如果是目录 则使其下所有子文件或目录递归生效
- 修改文件所在组-chgrp:chgrp newgroup file 改变文件的所有组
定时任务调度
原理示意图:
概述: 任务调度:是指系统在某个时间执行的特定的命令或程序。 任务调度分类: 1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等 2.个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。
crond 任务调度:
功能描述:crontab 进行 定时任务的设置。
基本语法:crontab [选项]
常用选项:
快速入门:
设置任务调度文件:/etc/crontab
设置个人任务调度。执行crontab –e命令。
接着输入任务到调度文件
如:*/1 * * * * ls –l /etc/ > /tmp/to.txt
意思说每小时的每分钟执行ls –l /etc/ > /tmp/to.txt命令 参数细节说明:
5个占位符的说明:
特殊符号的说明:
磁盘分区,挂载,swap目录
分区的方式:
- mbr分区: ①最多支持四个主分区 ②系统只能安装在主分区 ③3扩展分区要占一个主分区 ④MBR最大只支持2TB,但拥有最好的兼容性
- gtp分区: ①支持无限多个主分区(但操作系统可能限制,比如 windows下最多128个分区) ②最大支持18EB的大容量(1EB=1024 PB,1PB=1024 TB ) ③windows7 64位以后支持gtp
windows下的磁盘分区:
原理介绍:
- Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构 , Linux中每个分区都是用来组成整个文件系统的一部分。
- Linux采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
硬盘说明:
- Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘
- 对于IDE硬盘,驱动器标识符为“hdx~”, 其中“hd”表明分区所在设备的类型,这里是指IDE硬盘了。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“~”代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例,hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。
- 对于SCSI硬盘则标识为“sdx~”,SCSI硬盘是用“sd”来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样。
查看所有设备挂载情况:
- 命令 :lsblk 或者 lsblk -f
Linux挂载详解:
- Linux 系统中“一切皆文件”,所有文件都放置在以根目录为树根的树形目录结构中。在 Linux看来,任何硬件设备也都是文件,它们各有自己的一套文件系统(文件目录结构)。
- 因此产生的问题是,当在 Linux系统中使用这些硬件设备时,只有将Linux本身的文件目录与硬件设备的文件目录合二为一,硬件设备才能为我们所用。合二为一的过程称为“挂载”。
- 如果不挂载,通过Linux系统中的图形界面系统可以查看找到硬件设备,但命令行方式无法找到。
- 挂载:指的就是将设备文件中的顶级目录连接到 Linux 根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件。
- 链接:什么是挂载,Linux挂载详解
swap目录:
- Swap分区在系统的物理内存不够用的时候,把硬盘内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。
- linux中/dev目录下一般都是一些设备文件,例如磁盘、内存、摄像头等。/dev/shm这个目录是linux下一个利用内存虚拟出来的一个目录,这个目录中的文件都是保存在内存中,而不是磁盘上。其大小是非固定的,即不是预先分配好的内存来存储的。(shm == shared memory)
- 创建swap分区:
一、一般将swap分区放在usr目录下
1、cd /usr
2、mkdir swap
3、cd swap
二、创建swap分区
1、dd if=/dev/zero of=/tmp/swapfile bs=1024 count=8192000
①if=/dev/zero:输入/dev/zero文件。/dev/zero主要的用处是用来创建一个指定长度用于初始化的空文件,就像临时交换文件。
②of=swapfile:输出至swapfile文件
③bs=1024:定义块大小为1024bytes,默认单位为bytes。
④count=8192000:总数大小8192000个bs即8192000kb,换算后得8G。
三、指定分区类型为swap
1、mkswap /usr/swap/swapfile
四、设置swap分区有效
1、swapon /usr/swap/swapfile
五、设置扩展的swap分区为自动挂载(重启后仍然生效)
1、Vim /etc/fstab
2、/usr/swap/swapfile swap swap defaults 0 0
进程,服务,网络管理
进程基本介绍:
- 在LINUX中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。
- 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如www服务器。
- 每个进程都可能以两种方式存在的:前台与后台。 ①所谓前台进程就是用户目 前的屏幕上可以进行操作的。 ②后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。
显示系统执行的进程(ps):
- 基本介绍:
ps命令(Process Status)是用来查看目前系统中,有哪些正在执行,以及它们执行的状况。 可以不加任何参数 - 常用选项: -A 显示所有进程(等价于-e)(utility) -a 显示一个终端的所有进程,除了会话引线 -N 忽略选择。 -d 显示所有进程,但省略所有的会话引线(utility) -x 显示没有控制终端的进程,同时显示各个命令的具体路径。dx不可合用。(utility) -p pid 进程使用cpu的时间 -u uid or username 选择有效的用户id或者是用户名 -g gid or groupname 显示组的所有进程。 U username 显示该用户下的所有进程,且显示各个命令的详细路径。如:ps U zhang;(utility) -f 全部列出,通常和其他选项联用。如:ps -fa or ps -fx and so on. -l 长格式(有F,wchan,C 等字段) -j 作业格式 -o 用户自定义格式。 v 以虚拟存储器格式显示 s 以信号格式显示 -m 显示所有的线程 -H 显示进程的层次(和其它的命令合用,如:ps -Ha)(utility) e 命令之后显示环境(如:ps -d e; ps -a e)(utility) h 不显示第一行
- ps详解:
①
指令:ps –aux|grep xxx ,比如我看看有没有sshd服务②指令说明:1、System V展示风格 2、USER:用户名称 3、PID:进程号 4、%CPU:进程占用CPU的百分比 5、%MEM:进程占用物理内存的百分比 6、VSZ:进程占用的虚拟内存大小(单位:KB) 7、RSS:进程占用的物理内存大小(单位:KB) 8、TT:终端名称,缩写 . 9、STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等 10、STARTED:进程的启动时间 11、TIME:CPU时间,即进程使用CPU的总时间 12、COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
终止进程kill和killall:
- 介绍:若是某个进程执行一半需要停止时,或是已消了很大的系统资源时,此时可以考虑停止该进程,
使用kill命令来完成此项任务。 - 基本语法:
kill [选项]
进程号(功能描述:通过进程号杀死进程) killall进程名称(功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用) - 常用选项: -9 :表示强迫进程立即停止
查看进程树(pstree):
- 基本语法:pstree [选项] ,可以更加直观的来看进程信息
- 常用选项: -p :显示进程的PID -u :显示进程的所属用户
服务简介:
- 服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql , sshd防火墙等),因此我们又称为守护进程,是Linux中非常重要的知识点。
- service管理指令:
①
service 服务名 [start | stop | restart | reload | status| enable | disable]②在CentOS7.0后不再使用service,而是 systemctl。 - 查看服务名: ①使用setup -> 系统服务 就可以看到 ② /etc/init.d/服务名称
服务的运行级别(runlevel):
- 查看或者修改默认级别:vi /etc/inittab
- Linux系统有7种运行级别(runlevel):常用的是级别3和5 ①运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动 ②运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆 ③运行级别2:多用户状态(没有NFS),不支持网络 ④运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式 ⑤运行级别4:系统未使用,保留 ⑥运行级别5:X11控制台,登陆后进入图形GUI模式 ⑦运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
启动/关闭服务运行级别(chkconfig):
- 介绍: 通过chkconfig 命令可以给每个服务的各个运行级别设置自启动/关闭
- 基本语法: ①查看服务 chkconfig --list|grep xxx ②chkconfig 服务名 --list ③chkconfig --level 5 服务名 on/off
- 使用细节:chkconfig重新设置服务后自启动或关闭,需要重启机器reboot才能生效
动态监控进程(top):
- top与ps命令很相似,它们都用来显示正在执行的进程。Top与ps最大的不同之处:在于top 在执行一段时间可以更新正在运行的的进程。
- 基本语法: ①top [选项]
- 选项说明:
- 交互操作说明:
查看内存使用:
- free命令可以显示当前系统未使用的和已使用的内存大小,还可以显示被内核使用的内存缓冲区。
- 参数说明: ①-b:以Byte为单位显示内存使用情况。 ②-k:以KB为单位显示内存使用情况。 ③-m:以MB为单位显示内存使用情况。 ④-h:以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。单位有: <1>B = bytes <2>K = kilos <3>M = megas <4>G = gigas <5>T = teras ⑤-o:不显示缓冲区调节列。 ⑥-s<间隔秒数>:持续观察内存使用状况。 ⑦-t:显示内存总和列。 ⑧-V:显示版本信息。
查看系统磁盘使用:
- df -h命令:查看系统磁盘使用情况
- du -h /目录:查看指定目录磁盘使用情况 ①-s 指定目录占用大小汇总 ②-h 带计量单位 ③-a 含文件 ④--max-depth=1 子目录深度 ⑤-c 列出明细的同时,增加汇总值
- 例子:du -ach --max-depth=1 /home:查询home目录下的磁盘使用情况
监控网络状态(netstat):
- Linux netstat 命令用于显示网络状态,利用 netstat 指令可让你得知本机各端口的网络连接情况。
- 基本语法:
netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip] - 参数说明: -a或--all 显示所有连线中的Socket。 -A<网络类型>或--<网络类型> 列出该网络类型连线中的相关地址。 -c或--continuous 持续列出网络状态。 -C或--cache 显示路由器配置的快取信息。 -e或--extend 显示网络其他相关信息。 -F或--fib 显示路由缓存。 -g或--groups 显示多重广播功能群组组员名单。 -h或--help 在线帮助。 -i或--interfaces 显示网络界面信息表单。 -l或--listening 显示监控中的服务器的Socket。 -M或--masquerade 显示伪装的网络连线。 -n或--numeric 直接使用IP地址,而不通过域名服务器。 -N或--netlink或--symbolic 显示网络硬件外围设备的符号连接名称。 -o或--timers 显示计时器。 -p或--programs 显示正在使用Socket的程序识别码和程序名称。 -r或--route 显示Routing Table。 -s或--statistics 显示网络工作信息统计表。 -t或--tcp 显示TCP传输协议的连线状况。 -u或--udp 显示UDP传输协议的连线状况。 -v或--verbose 显示指令执行过程。 -V或--version 显示版本信息。 -w或--raw 显示RAW传输协议的连线状况。 -x或--unix 此参数的效果和指定"-A unix"参数相同。 --ip或--inet 此参数的效果和指定"-A inet"参数相同。
设置网络状态(ifconfig):
- Linux ifconfig命令用于显示或设置网络设备。
- 执行 ifconfig命令时显示找不到,表明此服务器没有安装ifconfig,执行yum install net-tools 即可。
- 命令信息: ①eth0,eth1,eth2……代表网卡一,网卡二,网卡三…… ②lo代表127.0.0.1,即localhost
显示网络设备信息
# ifconfig
eth0 Link encap:Ethernet HWaddr 00:50:56:0A:0B:0C
inet addr:192.168.0.3 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::250:56ff:fe0a:b0c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:172220 errors:0 dropped:0 overruns:0 frame:0
TX packets:132379 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:87101880 (83.0 MiB) TX bytes:41576123 (39.6 MiB)
Interrupt:185 Base address:0x2024
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2022 errors:0 dropped:0 overruns:0 frame:0
TX packets:2022 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2459063 (2.3 MiB) TX bytes:2459063 (2.3 MiB)
firewalld防火墙配置:
- 防火墙主要有以下优点: ①防火墙能强化安全策略。 ②防火墙能有效地记录Internet上的活动。 ③防火墙限制暴露用户点。防火墙能够用来隔开网络中一个网段与另一个网段。这样,能够防止影响一个网段的问题通过整个网络传播。 ④防火墙是一个安全策略的检查站。所有进出的信息都必须通过防火墙,防火墙便成为安全问题的检查点,使可疑的访问被拒绝于门外。
- 相关命令: ①开启:service firewalld start ②重启:service firewalld restart ③关闭:service firewalld stop ④查看防火墙规则:firewall-cmd --list-all ⑤查询端口是否开放:firewall-cmd --query-port=8080/tcp ⑥开放80端口:firewall-cmd --permanent --add-port=80/tcp ⑦移除端口:firewall-cmd --permanent --remove-port=8080/tcp ⑧重启防火墙(修改配置后要重启防火墙):firewall-cmd --reload
- 参数解释: ①firwall-cmd:是Linux提供的操作firewall的一个工具; ②--permanent:表示设置为持久; ③--add-port:标识添加的端口;
iptables防火墙配置:
- firewalld自身并不具备防火墙的功能,而是和iptables一样需要通过内核的netfilter来实现,
也就是说firewalld和 iptables一样,他们的作用都是用于维护规则,而真正使用规则干活的是内核的netfilter,只不过firewalld和iptables的结构以及使用方法不一样罢了。 - iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分。可以直接配置,也可以通过许多前端和图形界面配置。
- 链接:iptables命令
iptables(选项)(参数)
-t, --table table 对指定的表 table 进行操作, table 必须是 raw, nat,filter,mangle 中的一个。如果不指定此选项,默认的是 filter 表。
# 通用匹配:源地址目标地址的匹配
-p:指定要匹配的数据包协议类型;
-s, --source [!] address[/mask] :把指定的一个/一组地址作为源地址,按此规则进行过滤。当后面没有 mask 时,address 是一个地址,比如:192.168.1.1;当 mask 指定时,可以表示一组范围内的地址,比如:192.168.1.0/255.255.255.0。
-d, --destination [!] address[/mask] :地址格式同上,但这里是指定地址为目的地址,按此进行过滤。
-i, --in-interface [!] <网络接口name> :指定数据包的来自来自网络接口,比如最常见的 eth0 。注意:它只对 INPUT,FORWARD,PREROUTING 这三个链起作用。如果没有指定此选项, 说明可以来自任何一个网络接口。同前面类似,"!" 表示取反。
-o, --out-interface [!] <网络接口name> :指定数据包出去的网络接口。只对 OUTPUT,FORWARD,POSTROUTING 三个链起作用。
# 查看管理命令
-L, --list [chain] 列出链 chain 上面的所有规则,如果没有指定链,列出表上所有链的所有规则。
# 规则管理命令
-A, --append chain rule-specification 在指定链 chain 的末尾插入指定的规则,也就是说,这条规则会被放到最后,最后才会被执行。规则是由后面的匹配来指定。
-I, --insert chain [rulenum] rule-specification 在链 chain 中的指定位置插入一条或多条规则。如果指定的规则号是1,则在链的头部插入。这也是默认的情况,如果没有指定规则号。
-D, --delete chain rule-specification -D, --delete chain rulenum 在指定的链 chain 中删除一个或多个指定规则。
-R num:Replays替换/修改第几条规则
# 链管理命令(这都是立即生效的)
-P, --policy chain target :为指定的链 chain 设置策略 target。注意,只有内置的链才允许有策略,用户自定义的是不允许的。
-F, --flush [chain] 清空指定链 chain 上面的所有规则。如果没有指定链,清空该表上所有链的所有规则。
-N, --new-chain chain 用指定的名字创建一个新的链。
-X, --delete-chain [chain] :删除指定的链,这个链必须没有被其它任何规则引用,而且这条上必须没有任何规则。如果没有指定链名,则会删除该表中所有非内置的链。
-E, --rename-chain old-chain new-chain :用指定的新名字去重命名指定的链。这并不会对链内部造成任何影响。
-Z, --zero [chain] :把指定链,或者表中的所有链上的所有计数器清零。
-j, --jump target <指定目标> :即满足某条件时该执行什么样的动作。target 可以是内置的目标,比如 ACCEPT,也可以是用户自定义的链。
-h:显示帮助信息;
linux网络环境配置:
- 第一种方法(
自动获取): ①说明:登陆后,通过界面的来设置自动获取ip ②特点:linux启动后会自动获取IP,缺点是每次自动获取的ip地址可能不一样。 - 第二种方法(
指定固定的ip) ①说明:直接修改配置文件来指定IP,并可以连接到外网(程序员推荐),编辑 vi /etc/sysconfig/network-scripts/ifcfg-eth0 ②要求:将ip地址配置的静态的 ③仔细说明:
RPM,YUM,源码安装
RPM介绍:
- 一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,类似windows的setup.exe,这一文件格式名称虽然打上了RedHat的标志,但理念是通用的。
- Linux的分发版本都有采用(suse,redhat, centos 等等),可以算是公认的行业标准了
- rpm包的简单查询指令:查询已安装的rpm列表 rpm –qa|grep xx
- rpm包名基本格式: ①一个rpm包名:firefox-45.0.1-1.el6.centos.x86_64.rpm <1>名称:firefox <2>版本号:45.0.1-1 <3>适用操作系统: el6.centos.x86_64 <4>表示centos6.x的64位系统 1、如果是i686、i386表示32位系统,noarch表示通用。
- rpm包的其它查询指令: ①rpm -qa :查询所安装的所有rpm软件包 ②rpm -qa | more ③rpm -qa | grep X [rpm -qa | grep firefox ] ④rpm -q 软件包名 :查询软件包是否安装 ⑤rpm -q firefox ⑥rpm -qi 软件包名 :查询软件包信息 ⑦rpm -qi file ⑧rpm -ql 软件包名 :查询软件包中的文件 ⑨rpm -ql firefox ⑩rpm -qf 文件全路径名 查询文件所属的软件包 ⑪rpm -qf /etc/passwd ⑫rpm -qf /root/install.log
- 卸载rpm包:
①基本语法:rpm -e RPM包的名称
②细节讨论: <1>如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息。 如: rpm -e --nodeps foo - 安装rpm包: ①基本语法:rpm -ivh RPM包全路径名称 ②参数说明: i=install 安装 v=verbose 提示 h=hash 进度条
YUM介绍:
- Yum 是一个Shell前端软件包管理器。基于RPM包管理,能够从指定 的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。
- yum的基本指令:
①查询yum服务器是否有需要安装的软件:yum list|grep xx软件列表
②安装指定的yum包:yum install xxx 下载安装
源码安装介绍:
- 一般来说在Window上下载好Linux版本的安装包,然后使用FTP或WINSCP攻击把安装包down上Linux服务器。
- 然后再敲打指令安装。
Linux下安装JDK三种方式:
- rpm方式安装
- yum方式安装
- 自己解压tar压缩包安装
- 链接:Linux下安装JDK三种方式
- rpm、yum和源码三种方式总结:Linux下rpm、yum和源码三种安装方式详细介绍
实用工具命令
wget:
Linux系统中的wget是一个下载文件的工具,它用在命令行下。对于Linux用户是必不可少的工具,我们经常要下载一些软件或从远程服务器恢复备份到本地服务器。wget支持HTTP,HTTPS和FTP协议,可以使用HTTP代理。所谓的自动下载是指,wget可以在用户退出系统的之后在后台执行。这意味这你可以登录系统,启动一个wget下载任务,然后退出系统,wget将在后台执行直到任务完成,相对于其它大部分浏览器在下载大量数据时需要用户一直的参与,这省去了极大的麻烦。- wget可以跟踪HTML页面上的链接依次下载来创建远程服务器的本地版本,完全重建原始站点的目录结构。这又常被称作”递归下载”。在递归下载的时候,wget遵循Robot Exclusion标准(/robots.txt). wget可以在下载的同时,将链接转换成指向本地文件,以方便离线浏览。
- wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性.如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。
- 命令格式:wget [参数] [URL地址]
- 命令功能:用于从网络上下载资源,没有指定目录,下载资源回默认为当前目录。wget虽然功能强大,但是使用起来还是比较简单: 1)支持断点下传功能;这一点,也是网络蚂蚁和FlashGet当年最大的卖点,现在,Wget也可以使用此功能,那些网络不是太好的用户可以放心了; 2)同时支持FTP和HTTP下载方式;尽管现在大部分软件可以使用HTTP方式下载,但是,有些时候,仍然需要使用FTP方式下载软件; 3)支持代理服务器;对安全强度很高的系统而言,一般不会将自己的系统直接暴露在互联网上,所以,支持代理是下载软件必须有的功能; 4)设置方便简单;可能,习惯图形界面的用户已经不是太习惯命令行了,但是,命令行在设置上其实有更多的优点,最少,鼠标可以少点很多次,也不要担心是否错点鼠标; 5)程序小,完全免费;程序小可以考虑不计,因为现在的硬盘实在太大了;完全免费就不得不考虑了,即使网络上有很多所谓的免费软件,但是,这些软件的广告却不是我们喜欢的。
- 链接:每天一个linux命令(61):wget命令
curl命令详解:
- 命令:curl
在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。- 链接:Linux curl命令详解
ssh命令详解:
- SSH(远程连接工具)连接原理:ssh服务是一个守护进程(demon),系统后台监听客户端的连接,ssh服务端的进程名为sshd,负责实时监听客户端的请求(IP22端口),包括公共秘钥等交换等信息。
- ssh服务端由2部分组成: openssh(提供ssh服务) openssl(提供加密的程序)
- ssh常见命令参数:
usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-e escape_char] [-F configfile]
[-i identity_file] [-L [bind_address:]port:host:hostport]
[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
[-R [bind_address:]port:host:hostport] [-S ctl_path]
[-W host:port] [-w local_tun[:remote_tun]]
[user@] hostname [ command ]
telnet命令详解:
- 登录远程主机和管理(测试ip端口是否连通)
- telnet命令用于登录远程主机,对远程主机进行管理。telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,而改用更安全的ssh方式了。但仍然有很多别的系统可能采用了telnet方式来提供远程登录,因此弄清楚telnet客户端的使用方式仍是很有必要的。
telnet(选项)(参数)
-8:允许使用8位字符资料,包括输入与输出;
-a:尝试自动登入远端系统;
-b<主机别名>:使用别名指定远端主机名称;
-c:不读取用户专属目录里的.telnetrc文件;
-d:启动排错模式;
-e<脱离字符>:设置脱离字符;
-E:滤除脱离字符;
-f:此参数的效果和指定"-F"参数相同;
-F:使用Kerberos V5认证时,加上此参数可把本地主机的认证数据上传到远端主机;
-k<域名>:使用Kerberos认证时,加上此参数让远端主机采用指定的领域名,而非该主机的域名;
-K:不自动登入远端主机;
-l<用户名称>:指定要登入远端主机的用户名称;
-L:允许输出8位字符资料;
-n<记录文件>:指定文件记录相关信息;
-r:使用类似rlogin指令的用户界面;
-S<服务类型>:设置telnet连线所需的ip TOS信息;
-x:假设主机有支持数据加密的功能,就使用它;
-X<认证形态>:关闭指定的认证形态。
rz命令与sz命令详解:
-
rz命令(Receive ZMODEM),使用ZMODEM协议,将本地文件批量上传到远程Linux/Unix服务器,注意不能上传文件夹。 ①当我们使用虚拟终端软件,如Xshell、SecureCRT或PuTTY来连接远程服务器后,使用rz命令可以上传本地文件到远程服务器。输入rz回车后,会出现文件选择对话框,选择需要上传文件,一次可以指定多个文件,上传到服务器的路径为当前执行rz命令的目录。
-
sz命令(Send ZMODEM)通过ZMODEM协议,可将多个文件从远程服务器下载到本地。注意不能下载文件夹,如果下载文件夹,请先打包再下载
-
有的机器可能不能使用 rz/sz 命令,这个时候我们就需要安装 lrzsz
yum install lrzsz -y
Linux总结
总结:
- 链接:Linux中常用操作命令