Linux知识概括

2023-11-06

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/vagrant
  • vagrant的基本使用:
    ①执行命令: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键可随时退出底线命令模式。
    在底线命令模式中,界面最下面会显示":"符号。

我们可以将这三个模式想成底下的图标来表示:
在这里插入图片描述

开关机与登录注销与用户管理

关机&重启命令:

  • 立该进行关机: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 文件是隐藏的,所以请使用 ls -a 命令列出它。
    ②在 login 程序将 LOGNAME(登录名)和 HOME(登录目录)变量添加到环境中后,将会执行 $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
			显示版本信息并退出

指定运行级别:在这里插入图片描述

  • 运行级别说明:
    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位说明

  1. 第0位确定文件类型(d, - , l , c , b)
  2. 第1-3位确定所有者(该文件的所有者)拥有该文件的权限。—User
  3. 第4-6位确定所属组(同用户组的)拥有该文件的权限,—Group
  4. 第7-9位确定其他用户拥有该文件的权限 —Other
  5. 可用数字表示为: r=4,w=2,x=1 因此rwx=4+2+1=7
    1 --------------------文件:硬连接数或 目录:子目录数
    root--------------------用户
    root --------------------组
    1213-------------------- 文件大小(字节),如果是文件夹,显示 4096字节
    Feb 2 09:39 --------------------最后修改日期
    abc --------------------文件名

rwx权限详解:
rwx作用到文件:

  1. [ r ]代表可读(read): 可以读取,查看
  2. [ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
  3. [ x ]代表可执行(execute):可以被执行

rwx作用到目录:

  1. [ r ]代表可读(read): 可以读取,ls查看目录内容
  2. [ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录
  3. [ 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 改变用户的所有者和所有组
-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个占位符的说明:在这里插入图片描述
特殊符号的说明:在这里插入图片描述

磁盘分区,挂载

分区的方式:

  1. mbr分区:
    1.最多支持四个主分区
    2.系统只能安装在主分区
    3.扩展分区要占一个主分区
    4.MBR最大只支持2TB,但拥有最好的兼容性
  2. gtp分区:
    1.支持无限多个主分区(但操作系统可能限制,比如 windows下最多128个分区)
    2.最大支持18EB的大容量(1EB=1024 PB,1PB=1024 TB )
    3.windows7 64位以后支持gtp

windows下的磁盘分区:在这里插入图片描述

原理介绍:

  1. Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构 , Linux中每个分区都是用来组成整个文件系统的一部分。
  2. Linux采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。在这里插入图片描述

硬盘说明:

  1. Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘
  2. 对于IDE硬盘,驱动器标识符为“hdx~”, 其中“hd”表明分区所在设备的类型,这里是指IDE硬盘了。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“~”代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例,hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。
  3. 对于SCSI硬盘则标识为“sdx~”,SCSI硬盘是用“sd”来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样。

查看所有设备挂载情况:
命令 :lsblk 或者 lsblk -f在这里插入图片描述
磁盘情况查询:

  1. 功能描述:查询系统整体磁盘使用情况
    基本语法:df -h

  2. 功能描述:查询指定目录的磁盘占用情况,默认为当前目录
    基本语法:du -h /目录
    参数说明:
    -s 指定目录占用大小汇总
    -h 带计量单位
    -a 含文件
    –max-depth=1 子目录深度
    -c 列出明细的同时,增加汇总值

Linux挂载详解:

  • Linux 系统中“一切皆文件”,所有文件都放置在以根目录为树根的树形目录结构中。在 Linux看来,任何硬件设备也都是文件,它们各有自己的一套文件系统(文件目录结构)。
  • 因此产生的问题是,当在 Linux系统中使用这些硬件设备时,只有将Linux本身的文件目录与硬件设备的文件目录合二为一,硬件设备才能为我们所用。合二为一的过程称为“挂载”。
  • 如果不挂载,通过Linux系统中的图形界面系统可以查看找到硬件设备,但命令行方式无法找到。
  • 挂载,指的就是将设备文件中的顶级目录连接到 Linux 根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件。
  • 链接:什么是挂载,Linux挂载详解

swap目录

swap目录:
Swap分区在系统的物理内存不够用的时候,把硬盘内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。

linux中/dev目录:
linux中/dev目录下一般都是一些设备文件,例如磁盘、内存、摄像头等。
/dev/shm这个目录是linux下一个利用内存虚拟出来的一个目录,这个目录中的文件都是保存在内存中,而不是磁盘上。其大小是非固定的,即不是预先分配好的内存来存储的。(shm == shared memory)
linux下的/dev/shm/ 以及与swap目录的区别

进程,服务,网络管理

进程基本介绍:

  • 在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命令可以显示当前系统未使用的和已使用的内存大小,还可以显示被内核使用的内存缓冲区。 在终端中输入#free–g(显示单位为GB)可以看到服务器内存的使用情况。

查看系统磁盘使用:

  • df -h命令查看系统磁盘使用情况:终端输入#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)

防火墙配置:

  • 防火墙主要有以下优点:
    ①防火墙能强化安全策略。
    ②防火墙能有效地记录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:标识添加的端口;

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 foo removing these packages would break dependencies:foo is needed by bar-1.0-1
    <2>如果我们就是要删除 foo这个rpm 包,可以增加参数 --nodeps ,就可以强制删除,但是一般不推荐这样做,因为依赖于该软件包的程序可能无法运行如:$ 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三种方式:

实用工具命令

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 ]

rz命令与sz命令详解:

  • rz命令(Receive ZMODEM),使用ZMODEM协议,将本地文件批量上传到远程Linux/Unix服务器,注意不能上传文件夹。
    ①当我们使用虚拟终端软件,如Xshell、SecureCRT或PuTTY来连接远程服务器后,使用rz命令可以上传本地文件到远程服务器。输入rz回车后,会出现文件选择对话框,选择需要上传文件,一次可以指定多个文件,上传到服务器的路径为当前执行rz命令的目录。

  • sz命令(Send ZMODEM)通过ZMODEM协议,可将多个文件从远程服务器下载到本地。注意不能下载文件夹,如果下载文件夹,请先打包再下载

  • 链接:Linux命令之rz命令与sz命令

  • 有的机器可能不能使用 rz/sz 命令,这个时候我们就需要安装 lrzsz

yum install lrzsz -y

Linux总结

总结:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux知识概括 的相关文章

  • 推荐用于小型站点的 IRC 服务器 (ircd)? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 情况 我想使用 IRC 机器人作为我正在研究的其他代码的通用通信接口 服务器硬件陈旧且内存不足 但运行在相对最新的 Debian GNU
  • dlopen 或 dlclose 未调用信号处理程序

    我在随机时间内收到分段错误 我注册了信号 但发生分段错误时未调用信号处理程序 include
  • 这种 bash 文件名提取技术有何用途?

    我有一部分 bash 脚本正在获取不带扩展名的文件名 但我试图了解这里到底发生了什么 是做什么用的 有人可以详细说明 bash 在幕后做了什么吗 如何在一般基础上使用该技术 bin bash for src in tif do txt sr
  • 从 php/linux 获取 pdf 的布局模式(横向或纵向)

    给定一个 PDF 如何使用 PHP lib 或 Linux 命令行工具获取 PDF 的布局模式 或相对宽度 高度 Using http www tecnick com public code cp dpage php aiocp dp tc
  • 如何在gnuplot中将字符串转换为数字

    有没有办法将表示数字 以科学格式 的字符串转换为 gnuplot 中的数字 IE stringnumber 1 0e0 number myconvert stringnumber plot 1 1 number 我可能使用 shell 命令
  • 未找到 Gem 命令

    我已经在 Ubuntu 10 10 32 位上安装了 gem apt get install gem y 但当我尝试跑步时 gem install something gem 我收到未找到命令的错误 bash gem command not
  • 错误:命令“c++”失败,退出状态为 1

    所以我尝试按照以下说明安装 Pyv8https andrewwilkinson wordpress com 2012 01 23 integrating python and javascript with pyv8 https andre
  • 如何设置Java线程的CPU核心亲和力?

    我搜索了以前关于类似主题的帖子 但找不到合适的答案 因此提出这个问题 非常感谢您帮助回答 我知道在 Linux 中通过任务集命令设置进程与特定 CPU 核心的关联性 但我想设置 Java 线程与特定 cpu 核心的亲和力 以便属于同一进程的
  • 将node.js +expressjs应用程序的NODE_ENV设置为ubuntu下的守护进程

    我按照这些说明让守护进程正常工作 http kevin vanzonneveld net techblog article run nodejs as a service on ubuntu karmic http kevin vanzon
  • ubuntu 的 CSS 更少(并且自动编译)? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我尝试过 simples 但现在 l
  • 裸机交叉编译器输入

    裸机交叉编译器的输入限制是什么 比如它不编译带有指针或 malloc 的程序 或者任何需要比底层硬件更多的东西 以及如何才能找到这些限制 我还想问 我为目标 mips 构建了一个交叉编译器 我需要使用这个交叉编译器创建一个 mips 可执行
  • 运行 shell 命令并将输出发送到文件?

    我需要能够通过 php 脚本修改我的 openvpn 身份验证文件 我已将我的 http 用户设置为免通 sudoer 因为这台机器仅在我的家庭网络中可用 我目前有以下命令 echo shell exec sudo echo usernam
  • Visual Studio - X11:缺少 DISPLAY 环境变量

    我正在使用 Visual Studio 2019 Enterprise 开发跨平台 Windows Linux x64 GUI 应用程序 在这个 2019 版本中 我们可以使用 Visual Studio调试平台 Windows 本机 和
  • 在用户程序中使用 或在驱动程序模块代码中使用 ...这有关系吗?

    我正在开发一个设备驱动程序模块和关联的用户库来处理ioctl 来电 该库获取相关信息并将其放入一个结构中 该结构被传递到驱动程序模块中并在那里解压 然后进行处理 我省略了很多步骤 但这就是总体思路 一些数据通过结构体传递ioctl is u
  • 隐式声明“gets”

    据我所知 隐式声明 通常意味着该函数必须在调用之前放置在程序的顶部 或者我需要声明原型 然而 gets应该在stdio h文件 我已包含 有没有什么办法解决这一问题 include
  • 如何使用 VSCode 调试 Linux 核心转储?

    我故意从我使用 VSCode 编写的 C 应用程序生成核心转储 我不知道如何调试核心转储 有没有人愿意分享这方面的经验 更新 我相信我现在已经可以使用了 我为核心文件创建了第二个调试配置 我需要添加指向生成的转储文件的 coreDumpPa
  • 如果输入被重定向则执行操作

    我想知道如果我的输入被重定向 我应该如何在 C 程序中执行操作 例如 假设我有已编译的程序 prog 并且我将输入 input txt 重定向到它 我这样做 prog lt input txt 我如何在代码中检测到这一点 一般来说 您无法判
  • 打印本周星期一的日期(在 bash 中)

    我想获取本周星期一的 YYYYMMdd 格式的日期 例如 今天是 20110627 从明天到周日 我仍然想打印周一 今天 的日期 然后下周重复这个过程 monday date dmonday Y m d last monday date d
  • 当在 python linux 中执行命令 os.system() 时,在 python 中给出响应 yes/no

    考虑一个像这样的命令 yum install boto 当我在终端中执行时 要继续 会询问我是 否 我可以像这样用 python 回应它吗 os system yum install boto Next Yes 将通过相同的 python
  • 无法连接到 Azure Ubuntu VM - 公钥被拒绝

    我们在 Azure 上使用 Ubuntu VM 一段时间了 很少遇到任何问题 然而 其中一台虚拟机最近出现了问题 出乎意料的是 Ubuntu VM 开始拒绝公钥 ssh i azure key email protected cdn cgi

随机推荐

  • 内核角度谈谈Linux进程和线程

    目录 前言 内核对进程和线程的表示 创建进程的过程 创建线程的过程 创建进程和线程的异同 揭秘 do fork 系统调用 结论 前言 昨天面试的时候 面试官问我了个平平淡淡的问题 gt 聊聊Linux中进程和线程 相比大家不管是在考试还是面
  • OpenWrt系统安全改进<五> --- Web 访问权限分级

    摘要 OpenWrt系统安全改进 lt 四 gt 中介绍的只是在UI层面对用户进行访问控制 对于深层次非法操作并不能起到保护效果 本节介绍针对不同的用户登录请求 使用不同用户启动luci进程 从而实现不同用户进行操作级别的访问控制 机制分析
  • git push -u origin master提示 fatal: repository 'https://gitlab.com/xx.git/' not found

    正解 1 git remote set url origin https gitlab用户名 gitlab com xx demo git 2 git push u origin master 会提示输入密码 输入入正确的gitlab密码即
  • Error tokenizing data. C error: Buffer overflow caught - possible malformed input file.

    data self reader read nrows File pandas libs parsers pyx line 796 in pandas libs parsers TextReader read File pandas lib
  • dl_iterate_phdr

    http www helplib net s linux die 65 1099 man 3 dl iterate phdr shtml http linux die net man 3 dl iterate phdr dl iterate
  • 跨域错误问题has been blocked by cors policy

    这个问题其实是一个跨域调用错误 有多种解决方法 我放到服务器上所以在服务器上的apache的配置文件中修改 一开始以为apache的配置文件是httpd conf 然后发现我压根没有这个文件 在 etc apache2 apache2 co
  • 单手杀穿经典链表题Pt.1——LeetCode天梯渡劫(移除节点,反转链表,中间节点)

    目录 传统艺能 移除链表元素 反转链表 链表的中间结点 传统艺能 小编是双非本科大一菜鸟不赘述 欢迎大佬指点江山 QQ 1319365055 此前博客点我 点我 请搜索博主 知晓天空之蓝 乔乔的gitee代码库 打灰人 欢迎访问 点我 非科
  • 终端配色-Docker容器终端

    20230309 0 引言 平时使用SSH 通常都是使用securecrt来用 毕竟也算是之前windows下一种使用的工具 在mac下使用还算方便 进入终端后 可以通过调整配色来调整编程环境 平时经常使用屎黄色的那种配色 毕竟柔和 偶尔使
  • 计算机的快速启动栏,电脑快速启动栏不见了

    文章目录导航 演示系统及适用范围 演示系统 XP专业版 Windows2003企业版 WIN7旗舰版 适用范围 XP各版本 WIN2003 WIN2008及WIN7各版本系统 xp找回快速启动栏方法 不管是XP或是Winserver2003
  • conda修改环境保存地址

    可以在命令行中通过conda config指令进行修改 如 添加环境目录envs dirs conda config add envs dirs F conda env envs 添加pkgs dirs conda config add p
  • MVC模式、MVVM模式及其区别

    文章目录 MVC模式 MVVM模式 MVVM优点 MVC与MVVM的区别 MVC模式 MVC是应用最广泛的软件架构之一 一般MVC分为 Model 模型 View 视图 Controller 控制器 这主要是基于分层的目的 让彼此的职责分开
  • BUUCTF刷题记录(6)

    文章目录 web FBCTF2019 RCEService GYCTF2020 FlaskApp CISCN2019 华北赛区 Day1 Web5 CyberPunk BSidesCF 2019 Futurella CISCN2019 华东
  • 【STM32技巧】ADC模拟量采集的几种用法

    1 AD单次转换 软件启动 通过程序启动AD AD采集一次 我们就去读一次 这种情况 建议开启AD转换完成中断 在中断中读出AD值并做处理 初始化的时候 启动一次 然后在主循环里 每隔一秒启动一次 在中断回调函数里 进行相关处理 电脑输出如
  • python实现交换排序

    排序算法 python实现基数排序 python实现归并排序 python实现交换排序 python实现选择排序 python实现插入排序 冒泡排序 基本思想 假设待排序表长为n 从后往前或者从前往后两两比较相邻元素的值 若为逆序则交换它们
  • fatal: Authentication failed for又不弹出用户名和密码 解决办法

    各位 如果能弹出来 一定是你账号密码搞错了 就别继续看了 image png 切换命令行 image png 依然报错 说到这个问题 又可以长篇大论了 我使用的是tortoisegit window电脑平常都是用ppk文件组合 netrc文
  • 51单片机---IE寄存器,TCON寄存器,TMOD寄存器

    寄存器IE 中断允许寄存器IE的作用 是控制所有中断源的开放或禁止 以及每个中断源是否被允许 寄存器IE的位格式如下 EX0 外部中断0允许位 EX0 1 允许外部中断0中断 EX0 0 禁止外部中断0中断 ET0 T0溢出中断允许位 ET
  • KNN学习之图像分类与KNN原理

    点击上方 小白学视觉 选择加 星标 或 置顶 重磅干货 第一时间送达 简介 KNN算法 即K近邻算法是一种监督学习算法 本质上是要在给定的训练样本中找到与某一个测试样本A最近的K个实例 然后统计k个实例中所属类别计数最多的那个类 就是A的类
  • Java进阶(2) - 特殊对象(Class类)

    存在的意义位于java lang包下 和java lang reflect包下的类共同支持java反射功能jvm在类加载时 在堆中为每个类生成一个Class对象 用于记录每个类的属性 方法等信息 同时每个对象生成时都有特殊的标记位来指向堆中
  • js预编译习题解题思路

    js预编译习题解题思路 function fn a c console log a function a var a 123 console log a 123 console log c function c function a if
  • Linux知识概括

    Linux知识概括 Linux介绍 VMware工具与远程登录 Linux目录结构 Vi和Vim编辑器 开关机与登录注销与用户管理 Linux常用系统文件 实用指令 其他常用指令 帮助指令 文件目录类 时间日期类 搜索查找类 压缩和解压类