初学者学习Linux,了解这些就能上手了

上传(img-eTDm71dR-1585322572041)(imgs\image-20191217170011690.png)]

Linux大纲版本:CentOS6.0

提供视频下载路径:
http://www.itluma.cn/forum.php?mod=viewthread&tid=15&extra=page%3D1

第一章 Linux简介和安装

1.1 基础简介

Linux内核最初只是由芬兰人李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机

1.2 发行版说明

Linux的发行版说简单点就是将Linux内核与应用软件做一个打包。
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、TurboLinux、BluePoint、RedFlag、Xterm、SlackWare等

1.3 应用领域

今天各种场合都有使用各种Linux发行版,从嵌入式设备到超级计算机,并且在服务器领域确定了地位,通常服务器使用LAMJ(Linux + Apache + MySQL + java)或LNMJ(Linux + Nginx+ MySQL + java)组合。
目前Linux不仅在家庭与企业中使用,并且在政府中也很受欢迎

巴西联邦政府由于支持Linux而世界闻名。
有新闻报道俄罗斯军队自己制造的Linux发布版的,做为G.H.ost项目已经取得成果.
印度的Kerala联邦计划在向全联邦的高中推广使用Linux。
中华人民共和国为取得技术独立,在龙芯过程中排他性地使用Linux。
在西班牙的一些地区开发了自己的Linux发布版,并且在政府与教育领域广泛使用,如Extremadura地区的gnuLinEx和Andalusia地区的Guadalinex。
葡萄牙同样使用自己的Linux发布版Caixa Mágica,用于Magalh?es笔记本电脑和e-escola政府软件。
法国和德国同样开始逐步采用Linux。

1.4 Linux和Windows的区别

比较WindowsLinux
界面界面统一,外壳程序固定所有Windows程序菜单几乎一致,快捷键也几乎相同图形界面风格依发布版不同而不同,可能互不兼容。GNU/Linux的终端机是从UNIX传承下来,基本命令和操作方法也几乎一致。
驱 动 程 序驱动程序丰富,版本更新频繁。默认安装 程序里面一般包含有该版本发布时流行的 硬件驱动程序,之后所出的新硬件驱动依 赖于硬件厂商提供。对于一些老硬件,如 果没有了原配的驱动有时很难支持。另 外,有时硬件厂商未提供所需版本的 Windows下的驱动,也会比较头痛。由志愿者开发,由Linux核心开发小组发布,很多硬件厂商 基于版权考虑并未提供驱动程序,尽管多数无需手动安 装,但是涉及安装则相对复杂,使得新用户面对驱动程序 问题(是否存在和安装方法)会一筹莫展。但是在开源开 发模式下,许多老硬件尽管在Windows下很难支持的也容 易找到驱动。HP、Intel、AMD等硬件厂商逐步不同程度 支持开源驱动,问题正在得到缓解。
使 用使用比较简单,容易入门。图形化界面对 没有计算机背景知识的用户使用十分有 利。图形界面使用简单,容易入门。文字界面,需要学习才能 掌握。
学习系统构造复杂、变化频繁,且知识、技能 淘汰快,深入学习困难。系统构造简单、稳定,且知识、技能传承性好,深入学习 相对容易。
软 件每一种特定功能可能都需要商业软件的支 持,需要购买相应的授权。大部分软件都可以自由获取,同样功能的软件选择较少。

1.5 虚拟机

虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。 虚拟系统通过生成现有操作系统的全新虚拟镜像,它具有真实windows系统完全一样的功能,进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对真正的系统产生任何影响 ,而且具有能够在现有系统与虚拟镜像之间灵活切换的一类操作系统。虚拟系统和传统的虚拟机(Parallels Desktop ,Vmware,VirtualBox,Virtual pc)不同在于:虚拟系统不会降低电脑的性能,启动虚拟系统不需要像启动windows系统那样耗费时间,运行程序更加方便快捷;虚拟系统只能模拟和现有操作系统相同的环境,而虚拟机则可以模拟出其他种类的操作系统;而且虚拟机需要模拟底层的硬件指令,所以在应用程序运行速度上比虚拟系统慢得多。 流行的虚拟机软件有VMware(VMWare ACE)、Virtual Box和Virtual PC,它们都能在Windows系统上虚拟出多个计算机

1.6 VMware

VMware 可以使你在一台机器上同时运行二个或更多Windows、DOS、LINUX系统。与“多启动”系统相比,VMWare采用了完全不同的概念。多启动系统在一个时刻只能运行一个系统,在系统切换时需要重新启动机器。VMWare是真正“同时”运行,多个操作系统在主系统的平台上,就像标准Windows应用程序那样切换。而且每个操作系统你都可以进行虚拟的分区、配置而不影响真实硬盘的数据,你甚至可以通过网卡将几台虚拟机用网卡连接为一个局域网,极其方便。安装在VMware操作系统性能上比直接安装在硬盘上的系统低不少,因此,比较适合学习和测试。 使我们可以在同一台PC机上同时运行Windows 、Linux、FreeBSD……可以在使用Linux的同时,即时转到Windows中运行Word。如果要使用Linux,只要轻轻一点,又回到Linux之中。就如同你有两台计算机在同时工作。实现的工具就是:虚拟计算平台——Vmware。

1.7 Win10中VMware14安装CentOS7详细步骤

1.7.1 前序

  • 不管安装的是什么版本,虚拟机不要放在系统盘(C盘)下。

  • 虚拟机内存建议分配2G。

  • 遇到网络相关的设置,选择桥接模式。如果安装过程中没有看到网络连接的设置,就在安装成功后设置。
    在这里插入图片描述

  • 下载VMware14并安装,激活序列表自行搜索

  • 下载CentOS7的镜像
    centOS7下载地址:
    http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1804.iso
    (进入任意挑选一个就好,文件大小约4.16G,linux基础学习者可以找mini版,mini版的只有900M左右,很多工具
    不自带,所以这里用CentOS-7-x86_64-DVD-1804.iso作示例)

1.7.2 打开VMware新建虚拟机

1.新建虚拟机
在这里插入图片描述

2.自定义
在这里插入图片描述

3.默认下一步
在这里插入图片描述

4.稍后安装操作系统

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3I5y20K0-1585322572050)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217171937960.png)]

5.选择Linux-CentOS7 64位

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2Q9eTtWP-1585322572052)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217171952359.png)]

6.自定义名称和位置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TmzPxSSa-1585322572053)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172007901.png)]

7.根据电脑配置选择处理器数量

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-545JL7hs-1585322572054)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172025696.png)]

8.设置内存

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4NugyRqn-1585322572055)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172043387.png)]

9.默认下一步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0m8okOM1-1585322572056)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172056617.png)]

10.使用推荐下一步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dwnI2in6-1585322572057)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172120381.png)]

11.使用推荐下一步.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BEjnK7LG-1585322572058)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172134449.png)]

12.创建新虚拟磁盘

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p1VA0me2-1585322572059)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172148269.png)]

13.自行设置磁盘大小.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4wPH8fpx-1585322572060)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172203779.png)]

14.指定磁盘文件,这里用的D盘

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GBsFJy8K-1585322572061)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172218619.png)]

15.查看信息,配置完成

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZdputzyG-1585322572062)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172232338.png)]

虚拟机的新建成功好比有了一台虚拟的电脑,现在需要给这台电脑安装系统。这里虚拟的电脑(虚拟机)的配置是如上图所示。

1.7.3 启动虚拟机安装CentOS

1.选择系统镜像

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3VmU6khh-1585322572063)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172307883.png)]

2.编辑虚拟机设置,添加系统镜像文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z4jJJuPS-1585322572064)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172322509.png)]

3.开启虚拟机

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u684t1nx-1585322572065)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172401773.png)]

4.选择Install CentOS 7

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ykb3bMI5-1585322572066)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172429732.png)]

5.正在安装

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-33jQXh82-1585322572067)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172447961.png)]

6.选择语言

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7DT2cZd4-1585322572068)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172509724.png)]

7.设置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xj9bOdvK-1585322572069)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172521762.png)]

8.选择磁盘位置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YRnFrHON-1585322572070)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172533671.png)]

9.打开网络连接,让虚拟机可以和电脑一样,访问外网

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7d0XfpCr-1585322572071)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172603833.png)]

10.设置后开始安装

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2n4f2W2T-1585322572072)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172622457.png)]

11.安装中

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x5yTue9m-1585322572073)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172635740.png)]

12.设置root的密码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aY6O7MCD-1585322572074)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172646788.png)]

13.创建用户

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WUwPVVZ2-1585322572075)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172658682.png)]

14.安装完成,重启虚拟机

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bLfN0lc9-1585322572076)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172711509.png)]

15.启动后等待出现输入登录名的界面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5rKYH7GC-1585322572077)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172724431.png)]

16.登录root进入系统

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AO6mNwOT-1585322572078)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172736263.png)]

1.7.4 联网

如果是ssh访问的是别的电脑上的虚拟机,需要将虚拟机的网络设置成桥接

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UtrGMLSM-1585322572079)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172754057.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HymcASZX-1585322572080)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172811809.png)]

输入ifconfig回车查看本机ip地址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rjn77I8A-1585322572080)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172833059.png)]

service sshd status
命令查看sshd服务的运行状态

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yIodhkyt-1585322572081)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172852084.png)]

如果状态不是running
使用命令启动
service sshd start

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KsBzP6ie-1585322572082)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172929901.png)]

使用工具进行远程连接(xshell或SecureCRT):

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cu9g3Pid-1585322572083)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217172940746.png)]

image-20191217172954558

image-20191217173005764

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0TosyHxY-1585322572084)(C:\Users\gxu_x\Desktop\三阶段课程\day01-linux\imgs\image-20191217173016277.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n3V2twSJ-1585322572085)(imgs/image-20191217173436024.png)]

连接成功
如果连不上,需要开放22端口:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Tqk82hPn-1585322572086)(imgs/image-20191217173501503.png)]

使用iptables开放如下端口: /sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT 保存: /etc/rc.d/init.d/iptables
save 重启服务:

systemctl restart iptables.service # iptables 重启

如果配置不成功,或者不想这么麻烦每个端口都配置,可以关闭防火墙
关闭防火墙:

systemctl stop firewalld.service # 停止firewall
systemctl disable firewalld.service # 禁止firewall开机启动

1.7.4 常见问题

1.7.4.1 无法新建虚拟机

可能原因:电脑未启用虚拟化技术 解决方案:进入bios,修改Virtuallization Technology 的属性值为
Enabled,有的电脑/系统是默认开启的。其它方案根据新建失败提示或告警提示进行处理。

1.7.4.2 虚拟机无法联网

可能原因:安装系统时未开启网络连接、选择了桥接模式但是设置有误等等 解决方案:重装系统,或者设置网络模式,桥接/NAT可上网查询资料,不过不如重装更快处理问题

第二章 Linux常用命令

2.1 文件管理

2.1.1 ls

Linux ls命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。
语法

ls [-alrtAFR] [name...]

参数 :

  • -a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
  • -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
  • -r 将文件以相反次序显示(原定依英文字母次序)
  • -t 将文件依建立时间之先后次序列出
  • -A 同 -a ,但不列出 “.” (目前目录) 及 “…” (父目录)
  • -F 在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/”
  • -R 若目录下有文件,则以下之文件亦皆依序列出
    常用实例
    列出根目录()下的所有目录:
# ls /
bin dev lib media net root srv upload www
boot etc lib64 misc opt sbin sys usr
home lost+found mnt proc selinux tmp var

列出目前工作目录下所有名称是 s 开头的文件:

ls s*

列出目前工作目录下所有文本扩展名为*.txt 的文件:

ls *.txt

列出当前目录所有文件及目录,包含隐藏文件和目录

ls -a

2.1.2 ll

首先给出一张典型的显示结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7QmEOKBX-1585322572087)(imgs/image-20191217174012337.png)]

下面对其中的每一列进行详细的分析:

一、文件类型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GDZvQDUf-1585322572088)(imgs/image-20191217174034433.png)]

表示该文件的类型:

“-”表示普通文件;
“d”表示目录;
“l”表示链接文件;
“p”表示管理文件;
“b”表示块设备文件;
“c”表示字符设备文件;
“s”表示套接字文件;

二、文件属性

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G10F5TS3-1585322572089)(imgs/image-20191217174122901.png)]

以back_init文件为例,其属性可分为三段:[rwx][rwx][r-x],其中:
第一段表示文件创建者/所有者对该文件所具有的权限,第二段表示创建者/所有者所在的组的其他用户所具有的权限,第三段表示其他组的其他用户所具有的权限。

r(Read,读取权限):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。

w(Write,写入权限):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。

x(eXecute,执行权限):对文件而言,具有执行文件的权限;对目录来说,该用户具有进入目录的权限。
另外,这里还有2个很特殊的属性,平时不怎么常见,这里也顺带解释一下:

s或S(SUID,Set UID):可执行的文件搭配这个权限,便能得到特权,任意存取该文件的所有者能使用的全部系统资源。请注意具备SUID权限的文件,黑客经常利用这种权限,以SUID配上root帐号拥有者,无声无息地在系统中开扇后门,供日后进出使用。

t或T(Sticky):/tmp和 /var/tmp目录供所有用户暂时存取文件,亦即每位用户皆拥有完整的权限进入该目录,去浏览、删除和移动文件。

综合起来可得,对于back_init文件,其创建者/所有者具有可读可写可执行的权限,其创建者/所有者所在的组的其他用户具有可读可写可执行的权限,其他组的其他用户则具有可读可执行但不可写的权限。

三、目录/链接个数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e0qUXaM4-1585322572090)(imgs/image-20191217174248991.png)]

对于目录文件,表示它的第一级子目录的个数。注意此处看到的值要减2才等于该目录下的子目录的实际个数。
比如这里的include目录下,其实是没有子目录的,所以应该是0,但是它这里却显示2,这是因为要加上.目录和…目录。在linux下,.目录表示当前目录,…目录表示上一级目录。

这也可以解释上图中第一行的.目录下的3和第二行…目录下的26。因为当前目录下有一个include目录,所以加上.目录和…目录这2个目录就等于3,所以第一行会显示3。而上一级目录共有24个目录,加上上一级目录的.目录和…目录这2个目录,所以这里的第二行显示的是26。

对于其他文件,表示指向它的链接文件的个数。

四、所有者及组

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y3Arb9X6-1585322572091)(imgs/image-20191217174337160.png)]

表示该文件的所有者/创建者(owner)及其所在的组(group)。

五、文件大小

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LodG2rTD-1585322572092)(imgs/image-20191217174346589.png)]

如果是文件,则表示该文件的大小,单位为字节。 如果是目录,则表示该目录符所占的大小,并不表示该目录下所有文件的大小。

六、修改日期

该文件最后修改的日期时间。

七、文件名称

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cgt4ZQDu-1585322572093)(imgs/image-20191217174358249.png)]

文件名,无需多说。

八、字体颜色

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mkPGY05E-1585322572094)(imgs/image-20191217174408879.png)]

在大多数的linux shell窗口中,还能用颜色来区分不同文件的属性:
灰白色表示普通文件;
亮绿色表示可执行文件;
亮红色表示压缩文件;
灰蓝色表示目录;
亮蓝色表示链接文件;
亮黄色表示设备文件;

2.1.3 cd

Linux cd命令用于切换当前工作目录至 dirName(目录参数)。

其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login
时所在的目录)。

另外,“~” 也表示为 home 目录 的意思,“.” 则是表示目前所在的目录,“…” 则表示目前目录位置的上一层目录。

语法

cd [dirName]

dirName:要切换的目标目录。

实例

cd切换目录

cd /usr 切换到usr目录
cd .. 切换到上一层目录
cd ../.. 跳到目前目录的上上两层
cd / 切换到系统根目录
cd ~ 切换到用户主目录
cd - 切换到上一个所在目

2.1.4 pwd

Linux pwd命令用于显示工作目录。
执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jn3OvjR5-1585322572096)(imgs/image-20191217174528473.png)]

2.1.5 cp

Linux cp命令主要用于复制文件或目录。
语法

cp [options] source dest

cp [options] source... directory

参数说明:

  • -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
  • -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
  • -f:覆盖已经存在的目标文件而不给出提示。
  • -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
  • -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
  • -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
  • -l:不复制文件,只是生成链接文件。

实例
使用指令“cp”将某个文件从一个目录复制到另一个目录

$ cp –r a.txt ../newtest/

使用指令"cp"将当前目录"test/"下的所有文件复制到新目录"newtest"下,输入如下命令:

$ cp –r test/ newtest

注意:用户使用该指令复制目录时,必须使用参数"-r"或者"-R"。

2.1.6 scp

Linux scp命令用于Linux之间复制文件和目录。
scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。
语法

scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 [...] [[user@]host2:]file2

简易写法:

scp [可选参数] file_source file_target

常用参数说明:

  • -r: 递归复制整个目录。
  • -P port:注意是大写的P, port是指定数据传输用到的端口号

实例
1、从本地复制到远程
命令格式:

scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file

  • 第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;

应用实例:

scp /home/space/music/1.mp3 root@192.168.157.131:/home/root/others/music
scp /home/space/music/1.mp3 root@192.168.157.131:/home/root/others/music/001.mp3

应用实例,用同一个服务器模拟,如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5AUH6Zk7-1585322572097)(imgs/image-20191217175253663.png)]

复制目录命令格式:

scp -r local_folder remote_username@remote_ip:remote_folder

  • 第1个指定了用户名,命令执行后需要再输入密码;

应用实例:

scp -r /home/space/music/ root@192.168.157.131:/home/root/others/

上面命令将本地 music 目录复制到远程 others 目录下。

2、从远程复制到本地

从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可,如下实例
应用实例:

scp root@192.168.157.131:/home/root/others/music /home/space/music/1.mp3
scp -r 192.168.157.131:/home/root/others/ /home/space/music/

说明
1.如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用 -P 参数来设置命令的端口号,命令格式如
下:

#scp 命令使用端口号 4588
scp -P 4588 remote@192.168.157.131:/usr/local/sin.sh /home/administrator

2.使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的。

2.1.7 mkdir

mkdir命令用于建立名称为 dirName 之子目录。
语法

mkdir [-p] dirName

参数说明:

  • -p 确保目录名称存在,不存在的就建一个。

实例
在工作目录下,建立一个名为 AAA 的子目录 :

mkdir AAA

在工作目录下的 BBB 目录中,建立一个名为 Test 的子目录。 若 BBB 目录原本不存在,则建立一个。(注:本例若不加 -p,且原本 BBB目录不存在,则产生错误。)

mkdir -p BBB/Test

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vmzRsOV1-1585322572098)(imgs/image-20191217175729007.png)]

2.1.8 rm

Linux rm命令用于删除一个文件或者目录。

语法

rm [options] name...

参数:

  • -i 删除前逐一询问确认。
  • -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
  • -r 将目录及以下之档案亦逐一删除。

实例

rm删除文件,用法:rm [选项]... 文件...
rm a.txt 删除a.txt文件,删除需要用户确认
rm -f a.txt 不询问,直接删除rm 删除目录
rm -r a 递归删除不询问递归删除(慎用)
rm -rf a 不询问递归删除
rm -rf * 删除所有文件
rm *.txt 删除以.txt为扩展名的文件
rm ww* 删除以ww开头的文件
rm -rf /* 自杀

2.1.9 rmdir

Linux rmdir命令删除空的目录。

语法

rmdir [-p] dirName

参数:

  • -p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除。

实例
在工作目录下,建立一个名为 AAA 的子目录 :

mkdir AAA

在工作目录下的 BBB 目录中,建立一个名为 Test 的子目录。 若 BBB 目录原本不存在,则建立一个。(注:本例若不加 -p,且原本 BBB目录不存在,则产生错误。)

mkdir -p BBB/Test

2.1.10 cat

cat 命令用于连接文件并打印到标准输出设备上。
使用权限

所有使用者
语法格式

cat [-AbeEnstTuv] [--help] [--version] fileName

常用参数说明:

  • -n 或 --number:由 1 开始对所有输出的行数编号。
  • -b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。

实例:

显示textfile1文档的全部内容

cat textfile1

把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:

cat -n textfile1 > textfile2

把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里:

cat -b textfile1 textfile2 >> textfile3

2.1.11 tail

tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。

tail -f filename会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容,一般用来观察正在运行中的程序日志。

命令格式:

tail [参数] [文件]

参数:

  • -f 循环读取
  • -n<行数> 显示文件的尾部 n 行内容

实例
要跟踪名为 notes.log 的文件后200行的增长情况,请输入以下命令:

tail -200f notes.log

要显示 notes.log 文件的最后 20 行,请输入以下命令:

tail -n20 notes.log

要跟踪名为 notes.log 的文件的增长情况,请输入以下命令:

tail -f notes.log

2.1.12 less

less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
语法

less [参数] 文件

常用参数说明:

  • 空格键 滚动一页
  • 回车键 滚动一行
  • [pagedown]: 向下翻动一页
  • [pageup]: 向上翻动一页
  • /字符串:向下搜索"字符串"的功能
  • ?字符串:向上搜索"字符串"的功能
  • n:重复前一个搜索(与 / 或 ? 有关)
  • N:反向重复前一个搜索(与 / 或 ? 有关)

实例

1、查看文件

less log2013.log

2、ps查看进程信息并通过less分页显示

ps -ef |less

3、查看命令历史使用记录并通过less分页显示

[root@localhost test]# history | less

4、浏览多个文件

less log2013.log log2014.log

说明: 输入“ :n”后,切换到 log2014.log 输入 ":p"后,切换到log2013.log

2.1.13 more&less&cat区别

inux中命令cat、more、less均可用来查看文件内容,主要区别有:

cat是一次性显示整个文件的内容,还可以将多个文件连接起来显示,它常与重定向符号配合使用,适用于文件内容少的情况;

more和less一般用于显示文件内容超过一屏的内容,并且提供翻页的功能。more比cat强大,提供分页显示的功能,less比more更强大,提供翻页,跳转,查找等命令。

而且more和less都支持:用空格显示下一页,按键b显示上一页。

2.1.14 mv

Linux mv命令用来为文件或目录改名、或将文件或目录移入其它位置。
语法

mv [options] source dest
mv [options] source... directory

参数说明:

  • -i: 若指定目录已有同名文件,则先询问是否覆盖旧文件;
  • -f: 在mv操作要覆盖某已有的目标文件时不给任何指示;

mv参数设置与运行结果

命令格式运行结果
mv 文件名 文件名将源文件名改为目标文件名
mv 文件名 目录名将文件移动到目标目录
mv 目录名 目录名目标目录已存在,将源目录 移动到目标目录;目标 目录不存在则改名
mv 目录名 文件名出错

实例

将文件 aaa 更名为 bbb :

mv aaa bbb

将info目录放入logs目录中。注意,如果logs目录不存在,则该命令将info改名为logs。

mv info/ logs

再如将/usr/student下的所有文件和目录移到当前目录下,命令行为:

$ mv /usr/student/* .

2.1.16 zip

压缩zip文件。
实例

压缩zip(把当前目录下的dir1目录及子目录下所有文件压缩到当前目录下,文件名为file.zip

zip -r file.zip ./dir1/

2.1.17 unzip

解压zip文件。

实例

unzip file.zip

解压zip文件到当前目录中

unzip -o mdmtest.war -d /opt/mdm

推荐使用unzip解压war包

  • -o来自单词overwrite,覆盖的意思。-o覆盖原有文件;
  • -d来自单词directory,-d指定文件解压后存储的目录。

2.1.18 gzip

Linux gzip命令用于压缩文件。 gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出".gz"的扩展
名。 gzip 与zip区别主要是适应系统不同,还有就是压缩率不一样; 普遍使用的是zip压缩,Windows系统下就用zip

gzip为高压,可以把文件压缩得更小,便于放网盘或者网上供人下载;gzip是Linux下面用的格式,一般在Linux下解压,如果用Windows下的程序解压有可能丢失其中某些文件或属性。

实例
压缩file1文件为gzip格式(不能保留源文件):

gzip file1

最大程度压缩file1文件为gzip格式:

gzip -9 file1

解压缩file1.gz文件:

gzip -d file1.gz

2.1.15 tar

tar是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。
语法

tar [选项] 文件或目录

使用该命令时,主选项必须有,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。

常用参数说明:

  • -c:创建一个新tar文件
  • -v:显示运行过程的信息
  • -f:指定文件名
  • -z:调用gzip压缩命令进行压缩
  • -t:查看压缩文件的内容
  • -x:解开tar文件
  • -C <目录>:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。

实例

tar -cvf test1.tar ./* 将当前目录下的所有文件打包为test1.tar
tar -xvf test1.tar 解压到当前目录
tar -zcvf test3.tar.gz ./* 将当前目录下的所有文件打包并且压缩到test3.tar.gz
tar -xzvf test3.tar.gz 解压在当前目录
tar -xzvf test3.tar.gz -C aaa 将文件解压到 aaa目录

2.1.16 grep

Linux grep命令用于查找文件里符合条件的字符串。
grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。

语法

grep [option] pattern file

参数:

  • -C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。
  • -v 或 --revert-match : 显示不包含匹配文本的所有行。
  • -r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同。

实例

查到日志文件 rootstdout.log中包含test字符串的行

grep test rootstdout.log

在当前目录中,查找后缀有 .log 字样的文件中包含 test 字符串的文件,并打印出该字符串的行。此时,可以使用如下命令:

grep test *.log

以递归的方式查找符合条件的文件。例如,查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串"update"的文件,并打印出该字符串所在行的内容,使用的命令为:

grep -r update /etc/acpi

2.1.17 zgrep

服务器端常有很多压缩过的日志文件,当需要查找日志中某些特定信息的时候,为了避免解压文件,可以使用zgrep.
用法和grep命令一样,只不过操作的对象是压缩文件.见如下示例:

zgrep select *.zip|more

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3dJB16MY-1585322572100)(imgs/image-20191218144126004.png)]

2.1.19 find

2.1.18 管道"|"

我们在终端只能执行一条命令,然后按下回车执行,那么如何执行多条命令呢?

Shell可以将两个或多个程序连接到一起,以使一个程序的输出变成另一个程序的输入,这种方式连接的两个或者多个程序就形成了管道。管道通常用于执行一些复杂的数据处理操作。这些命令之间使用控制操作符(管道符)"|"连接。

语法格式:

command1 | command2
command1 | command2 [ commandN... ]

实例:

查找文件test.log中包含 “2019-05-05”字符串同时包含test 字符串的行。此时,可以使用如下命令:

grep '2019-05-05 ' test.log|grep 'test'

“ps -ef”是显示所有进程 信息,后面是从进程中查找java进程是否存在:

ps -ef |grep java

2.1.19 统计wc

利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指
令会从标准输入设备读取数据。
语法

wc [-clw][--help][--version][文件...]

参数:

  • -c或–bytes或–chars 只显示Bytes数。
  • -l或–lines 只显示行数。
  • -w或–words 只显示字数。

实例

在默认的情况下,wc将计算指定文件的行数、字数,以及字节数。使用的命令为:

统计ttt.txt文件中包含"vi"字符串的行数:

grep 'vi' ttt.txt |wc -l

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VBjn28Ip-1585322572101)(imgs/image-20191218144509012.png)]

统计text.txt文件的行数:

cat test.txt |wc -l

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3BHKcF8d-1585322572102)(imgs/image-20191218144501931.png)]

在默认的情况下,wc将计算指定文件的行数、字数,以及字节数。使用的命令为:

$ wc testfile # testfile文件的统计信息
3 92 598 testfile # testfile文件的行数为3、单词数92、字节数598

其中,3 个数字分别表示testfile文件的行数、单词数,以及该文件的字节数。

2.1.20 文件上传下载(rz/sz)

对于经常使用Linux系统的人员来说,少不了将本地的文件上传到服务器或者从服务器上下载文件到本地,rz / sz命令很方便的帮我们实现了这个功能

运行命令rz、sz要比FTP容易很多,而且服务器不需要另开FTP服务即可完成。 sz:将选定的文件发送(send)到本地机器 rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器(receive) rz,sz是便是Linux/Unix同
Windows进行ZModem文件传输的命令行工具,windows端需要支持ZModem的telnet/ssh客户端(比如
SecureCRT)。注意:该方法的传输速度比较慢,推荐使用中小文件的传输。

yum安装 root 账号登陆后执行以下命令:

yum install -y lrzsz

语法:

rz #上传
sz filename #下载

rz使用参数
-b binary 用binary的方式上传下载,不解释字符为ascii
-e 强制escape 所有控制字符,比如Ctrl+x,DEL等。

rz的用法
设置上传下载的目录 : 以SecureCRT为例,点击菜单栏–Options–Session Options在弹出的对话框选择Terminal–X/Y/Zmodem 查看并修改Directories下的Upload与Download参数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yD8kzrht-1585322572103)(imgs/image-20191218144636111.png)]

在命令终端输入rz回车

[root@vdedu vastedu]# rz

就会出现文件选择对话框,选择需要上传文件,一次可以指定多个文件,上传到服务器的路径为当前执行rz命令的目录。 如图;选择要上传的文件–Add–OK

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GgL5q2iT-1585322572104)(imgs/image-20191218144724646.png)]

查看一下上传的文件

[root@vdedu vastedu]# ls
oracle11g DG.txt oracle11g RAC.txt oracle11 install.txt

注意:注意:单独用rz会有两个问题:上传中断、上传文件变化(md5不同),解决办法是上传是用rz -be,并且去掉弹出的对话框中“Upload files as ASCII”前的勾选,如下图所示。 -a, –ascii -b, –binary 用binary的方式上传下载,不解释字符为ascii -e, –escape 强制escape 所有控制字符,比如Ctrl+x,DEL等 rar,gif等文件文件采用 -b 用binary的方式上传。 文件比较大而上传出错的话,采用参数 -e 如果用不带参数的rz命令上传大文件时,常常上传一半就断掉了,很可能是rz以为上传的流中包含某些特殊控制字符,造成rz提前退出。 综上,请使用 rz -be

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7T7Zzmh8-1585322572104)(imgs/image-20191218144820775.png)]

sz的用法

z命令可以单下载一个文件,也可以多个文件同时下载,如下图所示:
下载一个文件:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2xb9kcec-1585322572105)(imgs/image-20191218144907915.png)]

同时下载两个文件:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7U4VWnH2-1585322572106)(imgs/image-20191218144916974.png)]

2.1.21 LINUX操作小技巧

**一、Tab键自动补全 **使用Tab键自动补全是基本的技巧。它能节省你很多时间,而且当你不确定一个文件名或者命令怎么拼写时,它也及其有用。

举个例子,比如在当前目录你有一个文件,文件名是“jdk-8u161-linux-x64.tar.gz”,你想删除这个文件。你可以输入整个文件名,但是你得小心输错。如果你输入”rm r jdk”,然后按Tab键,会自动为你补全这个文件的名字。

当然,如果当前目录中你有很多以字母jdk开头的文件,就会不知道你指的是哪一个。比如当前目录你有另一个名字叫做“jdk-6u45-solaris-i586.tar.Z”的文件,当你按Tab键时,会补全到“jdk-”部分,因为两个文件都是以这开头的。然后,再按Tab键你会看到所有能匹配该开头的文件列表,如下图。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SFjoLAP0-1585322572107)(imgs/image-20191218144956745.png)]

接着输入你想要的文件名"ll jdk-8"然后按Tab键。这样,会自动补全我们想要的文件名。

ll jdk-8u161-linux-x64.tar.gz

这种方法对于输入命令来说同样适用。当你不确定你想要的命令是什么,只记得以”group”开头时,输入“group”然后按Tab键,你就会看到所有可能的结果。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wRNJ36pv-1585322572108)(imgs/image-20191218145034922.png)]

还有一种常用的场景,比如我想从其它一个文件夹下面copy某个文件到当前目录下,但不记得文件名,也可以在录入文件夹后按Tab键,系统会列出所有文件,录入后继续操作,如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jsvqWacI-1585322572109)(imgs/image-20191218145047956.png)]

二、管道命令 管道命令允许你把一个命令的输出结果转移给另一个命令。在Unix的设计哲学中,每个程序都是只有少而精的功能。举个例子,”ls”命令会显示当前目录中所有的文件列表,而”grep”命令会在制定的地方搜索输入的字符串。把这两者通过管道命令(用“|”符号表示)结合起来,你就可以在当前目录搜索某个文件了,以下命令用来搜索“really”:

ls | grep really

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cANnABZS-1585322572110)(imgs/image-20191218145132409.png)]

**三、通配符 **星号”*”是一个可以匹配任何东西的通配符。比如,如果我们想把”really long file name“和”really very long file name“从当前目录都删了,我们可以使用如下命令:

rm really*name

这个命令删除了所有以really开头,以name结尾的文件。如果你用”rm *”命令,将会删除该目录下的所有文件,所有需谨慎使用。
四、输出重定向 “〉”字符可以把一个命令的输出结果重定向到一个文件,而不需要额外使用另一个命令。比如,下图的代码使用”ls”命令来列出当前目录的所有文件,并把输出的列表输入到了一个名为”file1“的文件,而不是仅仅输出显示在终端上。
ls 〉 file1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rKYxClIU-1585322572111)(imgs/image-20191218145708067.png)]

五、命令行历史 linux系统会记得你使用过的命令的历史。你可以使用向上键和向下键来翻阅你已经使用过的命令。使用”history”命令会把历史命令都打印出来,因此你可以使用管道命令来搜索你最近使用的命令。如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aa4gW4sV-1585322572112)(imgs/image-20191218145725206.png)]

六、~,.& … 波浪符”~”代表当前用户的主目录。所以,你可以使用”cd ~”切换到你的主目录,而不用输入”cd
/home/name”。这对相对路径同样使用,比如”cd ~/Desktop”会切换到当前用户的桌面目录。

与之类似的是,”.”代表当前目录,”…”代表父级目录。所有,”cd …”会跳到父级目录。这对相对路径同样有效,比如你在Desktop目录,你想切换到与Desktop目录同级的Document目录,你可以使用”cd …/Documents”命令。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GjteIcRw-1585322572114)(imgs/image-20191218145742056.png)]

2.1.22 学生综合练习题

程序日志分析题:

1 把日志文件 sql.tar.gz上传linux某个目录

2 还原 sql.tar.gz

3 统计 2015-07-28 20:20到20点30之间(不包括20点30)以insert into T_SMS_LOG_STDREPORT”为关键字日志判断出这个时间断入库的数量

4 2015-07-28 20:20到20点30之间(不包括20点30)以insert into T_SMS_LOG_STDREPORT”为关键字日志信息输出到一个新的文件中(文件名为sendinfo.log)

5 把文件sendinfo.log下载到本地

2.2 Linux 根目录(/)下各个目录的功能

/bin:是Binary的缩写, 这个目录存放着最经常使用的命令。

/boot:存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。

/dev :是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。

/etc:用来存放所有的系统管理所需要的配置文件和子目录。

/home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

/lib:放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

/media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。

/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

/opt:主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

/proc:是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。

/root:为系统管理员,也称作超级权限者的用户主目录。

/sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

/selinux:是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

/srv:存放一些服务启动之后需要提取的数据。

/sys:linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs,sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

/tmp:是用来存放一些临时文件的。

/usr:用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。

/usr/bin:系统用户使用的应用程序。

/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。

/usr/src:内核源代码默认的放置目录。

/var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件

2.3 vi/vim文本编辑器

2.3.1 vi/vim简介

vi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器。他是我们使用Linux系统不能缺少的工具。由于对Unix及linux系统的任何版本,vi编辑器是完全相同的,学会它后,您将在Linux的世界里畅行无阻。

vim 具有程序编辑的能力,可以以字体颜色辨别语法的正确性,方便程序设计;

vim可以当作vi的升级版本,他可以用多种颜色的方式来显示一些特殊的信息。

vim会依据文件扩展名或者是文件内的开头信息, 判断该文件的内容而自动的执行该程序的语法判断式,再以颜色来显示程序代码与一般信息。

vim里面加入了很多额外的功能,例如支持正则表达式的搜索、多文件编辑、块复制等等。 这对于我们在Linux上进行一些配置文件的修改工作时是很棒的功能。

2.3.2 vi/vim使用

vi/vim功能强大,命令和快捷键也比较多,我们只需求熟练掌握下面常用的功能,就可以满足工作中绝大部分的需
求。
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),**输入模式(Insert mode)底线命令模式(Last line mode)****。 这三种模式的作用分别是:

命令模式:

用户刚刚启动 vi/vim,便进入了命令模式。

此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

以下是常用的几个命令:

  • i 切换到输入模式,以输入字符。
  • x 删除当前光标所在处的字符。
  • : 切换到底线命令模式,以在最底一行输入命令。

若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。

输入模式

在命令模式下按下“i”就进入了输入模式。
在输入模式中,可以使用以下按键:

  • 字符按键以及Shift组合,输入字符
  • ENTER,回车键,换行
  • BACK SPACE,退格键,删除光标前一个字符
  • DEL,删除键,删除光标后一个字符
  • 方向键,在文本中移动光标
  • HOME/END,移动光标到行首/行尾
  • Page Up/Page Down,上/下翻页
  • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
  • ESC,退出输入模式,切换到命令模式

底线命令模式

在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):

  • q 退出程序
  • w 保存文件
  • 按ESC键可随时退出底线命令模式。

简单的说,我们可以将这三个模式想成底下的图标来表示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OVrlelvo-1585322572115)(imgs/image-20191218150110327.png)]

2.2.3 vi/vim应用实例

使用 vim 来新建立一个名为 test.txt 的文件时,输入如下指令:

vi test.txt

直接输入 vi 文件名 就能够进入 vi 的一般模式了。请注意,记得 vi 后面一定要加文件名,不管该文件存在与否!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0tpXyben-1585322572117)(imgs/image-20191218150145874.png)]

按下 i 进入输入模式(也称为编辑模式),开始编辑文字

在一般模式之中,只要按下 i, o, a 等字符就可以进入输入模式了!

在编辑模式当中,你可以发现在左下角状态栏中会出现 –INSERT- 的字样,那就是可以输入任意字符的提示。
这个时候,键盘上除了 Esc 这个按键之外,其他的按键都可以视作为一般的输入按钮了,所以你可以进行任何的编辑。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-89feilGR-1585322572118)(imgs/image-20191218150208070.png)]

按下 ESC 按钮回到一般模式

好了,假设我已经按照上面的样式给他编辑完毕了,那么应该要如何退出呢?是的!没错!就是给他按下 Esc 这个按钮即可!马上你就会发现画面左下角的 – INSERT – 不见了!
在一般模式中按下 :wq 储存后离开 vi

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C17X3wDR-1585322572119)(imgs/image-20191218150230799.png)]

2.3.4 vi/vim常用按键说明

除了上面简易范例的 i, Esc, :wq 之外,其实 vim 还有非常多的按键可以使用。
第一部份:一般模式可用的光标移动、复制粘贴、搜索替换等

移动光标的方法
h 或 向左箭头键(←)光标向左移动一个字符
j 或 向下箭头键(↓)光标向下移动一个字符
k 或 向上箭头键(↑)光标向上移动一个字符
l 或 向右箭头键(→)光标向右移动一个字符
如果你将右手放在键盘上的话,你会发现 hjkl 是排列在一起的,因此可以使用这四个按钮来移动光标。 如果想要进行多次移动的话,例如向下移动30 行,可以使用 “30j” 或 “30↓” 的组合按键, 亦即加上想要进行的次数(数字)后,按下动作即可!
0 或功能键[Home]这是数字『 0 』:移动到这一行的最前面字符处 (常用)
$ 或功能键[End]移动到这一行的最后面字符处(常用)
:n代表跳转到第n行,如:79,就跳转到第79行。
搜索替换
/word向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用)
?word向光标之上寻找一个字符串名称为 word 的字符串
n这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n则会向上继续搜寻名称为 vbird 的字符串!
N这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。
使用 /word 配合 n 及 N 是非常有帮助的!可以让你重复的找到一些你搜寻的关键词!
:n1,n2s/word1/word2/gn1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则:『:100,200s/vbird/VBIRD/g』。(常用)
:1,$s/word1/word2/g 或 :%s/word1/word2/g从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(常用)
:1,$s/word1/word2/gc 或:%s/word1/word2/gc从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认(confirm) 是否需要取代!(常用)
删除、复制与贴上
dd删除游标所在的那一整行(常用)
nddn 为数字。删除光标所在的向下 n 行,例如 20dd 则是删
除 20 行 (常用)
yy复制游标所在的那一行(常用)
nyyn 为数字。复制光标所在的向下 n 行,例如 20yy 则是复
制 20 行(常用)
p, Pp 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行! 举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢?那么原本的第 20 行会被推到变成 30 行。 (常用)
u复原前一个动作。(常用)
[Ctrl]+r重做上一个动作。(常用)
这个 u 与 [Ctrl]+r 是很常用的指令!一个是复原,另一个则是重做一次~ 利用这两个功能按键,你的编辑,嘿嘿!很快乐的啦!
.不要怀疑!这就是小数点!意思是重复前一个动作的意思。 如果你想要重复删除、重复贴上等等动作,按下小数点『.』就好了! (常用)

第二部份:一般模式切换到指令行模式的可用的按钮说明

指令行的储存、离开等指令
:w将编辑的数据写入硬盘档案中(常用)
:w!若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊!
:q离开 vi (常用)
:q!若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
注意一下啊,那个惊叹号 (!) 在 vi 当中,常常具有『强制』的意思~
:wq储存后离开
:wq!若为 :wq! 则为强制储存后离开 (常用)

2.3.5 学生综合练习题

1.请在 /tmp 这个目录下建立一个名为 vitest 的目录;

2.进入 vitest 这个目录当中;

3.将 /etc/man_db.config 复制到本目录下(如果没有此文件,找老师发给大家);

4.使用 vi 开启本目录下的 man.config 这个档案;

5.在 vi 中设定一下行号;

6.移动到第 58 行,向右移动 40 个字符,请问你看到的双引号内是什么目录?

7.移动到第一行,并且向下搜寻一下『 bzip2 』这个字符串,请问他在第几行?

8.接着下来,我要将 50 到 100 行之间的『小写 man 字符串』改为『大写 MAN 字符串』,并且一个一个挑选是否需9.要修改,如何下达指令?如果在挑选过程中一直按『y』, 结果会在最后一行出现改变了几个 man 呢?

10.修改完之后,突然反悔了,要全部复原,有哪些方法?

11.我要复制 65 到 73 这九行的内容(含有MANPATH_MAP),并且贴到最后一行之后;

12.21 到 42 行之间的开头为 # 符号的批注数据我不要了,要如何删除?

13.将这个档案另存成一个 man.test.config 的檔名;

14.去到第 27 行,并且删除 15 个字符,结果出现的第一个单字是什么?

15.在第一行新增一行,该行内容输入『I am a student…』;

2.4 用户管理

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。 用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。 每个用户账号都拥有一个惟一的用户名和各自的口令。 用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。 实现用户账号的管理,要完成的工作主要有如下几个方面: 用户账号的添加、删除与修改。 用户口令的管理。 用户组的管理。

2.4.1 useradd

Linux useradd命令用于建立用户帐号。
useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号。使用
useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。

语法

useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s<shell>][-u <uid>][用户帐号]

useradd -D [-b][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>]

参数说明:

  • -d<登入目录> 指定用户登入时的启始目录。
  • -D 变更预设值.
  • -g<群组> 指定用户所属的群组。
  • -m 自动建立用户的登入目录。
  • -M 不要自动建立用户的登入目录。
  • -n 取消建立以用户名称为名的群组.
  • -r 建立系统帐号。
  • -s 指定用户登入后所使用的shell。
  • -u 指定用户ID。

实例

添加一般用户

useradd tt

为添加的用户指定相应的用户组

useradd -g root tt

创建一个系统用户

useradd -r tt

为新添加的用户指定home目录

useradd -d /home/myd tt

建立用户且制定ID

useradd caojh -u 544

2.4.2 passwd

passwd给指定的用户设置密码 用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。指定和修改用户口令的Shell命令是
passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。

语法

passwd [参数] 用户名

常用参数:

  • d 删除密码
  • -f 强制执行
  • -l 停止账号使用
  • -u 启用已被停止的账户

实例

修改用户密码,如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IKVbaswe-1585322572121)(imgs/image-20191218152348324.png)]

2.4.3 userdel

Linux userdel命令用于删除用户帐号。
userdel可删除用户帐号与相关的文件。若不加参数,则仅删除用户帐号,而不删除相关文件。
语法

userdel [-r][用户帐号]

常用参数说明:

  • -r 删除用户登入目录以及目录中所有文件。

实例
删除用户账号

userdel hnlinux

2.4.4 su

Linux su命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。

使用权限:所有使用者。

语法

su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]

常用参数说明:

  • USER 欲变更的使用者帐号

实例

su root

如下图所示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W0tv1hod-1585322572122)(imgs/image-20191218152620628.png)]

2.4.5 学生综合练习题

1.用root创建一个用户

2.给用户设置密码

3.切换身份到新创建的用户

4.从新创建的用户切换到root

2.5 文件权限管理

2.5.1 chmod

inux/Unix 的文件调用权限分为三级 : 文件拥有者、群组、其他。利用 chmod 可以藉以控制文件如何被他人所调
用。

使用权限 : 所有使用者

语法

chmod [-cfvR] [--help] [--version] mode file...

参数说明
mode : 权限设定字串,格式如下 :

[ugoa...][[+-=][rwxX]...][,...]

其中:

  • u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
  • +表示增加权限、- 表示取消权限、= 表示唯一设定权限。
  • r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。

其他常用参数说明:

  • -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)

此外chmod也可以用数字来表示权限如 :

chmod 777 file

语法为:

chmod abc file

其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。

r=4,w=2,x=1 若要rwx属性则4+2+1=7; 若要rw-属性则4+2=6; 若要r-x属性则4+1=5。

常用命令实例

"User、Group、及Other"则三种用户都能读取,写入,执行文件filename

chmod 777 filename

"User、Group"能读取,写入,执行文件filename,other只有 读取,执行权限(4+1 = 5)

chmod 775 filename

给当前目录下所有扩展名为.sh的文件增加可执行权限

chmod +x *.sh

学生练习题

系统中程序的日志输出在数据盘,比如根目录下的某个数据盘下文件“/data1/log/catalina.log”

1.用root用户创建“/data1/log/"目录与“catalina.log”文件
2.切换到普通用户,用VIM修改一下/data1/log/下的catalina.log,看是否可以写
3.切换到root帐号,给此目录授权为"rwz"权限
4.切换到普通用户,再用VIM修改一下/data1/log/下的catalina.log,看是否可以写

此场景经常用在某系统的日志打在数据盘,root把此日志目录授权给此目录RWZ权限。

2.5.2 chown

Linux/Unix 是多人多工操作系统,所有的文件皆有拥有者。利用 chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。

一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的文件拥有者,也没有权限可以自己的文件拥有者改设为别人。只有系统管理者(root)才有这样的权限。

使用权限 : root

语法

chown [-cfhvR] [--help] [--version] user[:group] file...

常用参数 :

  • user : 新的文件拥有者的使用者 ID
  • group : 新的文件拥有者的使用者组(group)
  • -R : 处理指定目录以及其子目录下的所有文件

实例

将文件 file1.txt 的拥有者设为 runoob,群体的使用者 runoobgroup :

chown runoob:runoobgroup file1.txt

将目前目录下的所有文件与子目录的拥有者皆设为 runoob,群体的使用者 runoobgroup:

chown -R runoob:runoobgroup *

学生练习题

1、建立两个普通用户比如testuser1/testuser2
2、切换到testuser1帐号下,在testuser1一个目录中建一个文件夹,文件夹上建一个文件或上传一个文件
3、通过root权限把刚才帐号创建的目录copy到另一个帐号testuser2目录下
4、通过root帐号更改testuser2下的文件夹拥有者改为testuser2
5、验证是否生效

2.6 磁盘管理

Linux磁盘管理好坏直接关系到整个系统的性能问题。

Linux磁盘管理常用三个命令为df、du和fdisk。

2.6.1 df

df列出文件系统的整体磁盘使用量 df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
语法

df [参数] [目录或文件名]

常用参数

  • 文件-h, --human-readable 使用人们可读的格式(预设值是不加这个选项的…)

使用实例


df -h
如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jNUlo6FJ-1585322572123)(imgs/image-20191218153447478.png)]

2.6.2 du

du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看

语法:

du [参数] 文件或目录名称

常用参数说明:

  • a或-all 显示目录中个别文件的大小
  • -h :以人们较易读的容量格式 (G/M) 显示;
  • -s :列出总量而已,而不列出每个各别的目录占用容量;

常用实例
列出目录下所有文件以及文件夹的的大小:

du -sh ./*

如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uRNfPnw1-1585322572125)(imgs/image-20191218153615042.png)]

列出目录下所有文件以及文件夹和文件夹里面文件的的大小:

du -ah ./*

如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0nJiirmn-1585322572126)(imgs/image-20191218153627065.png)]

2.7 系统管理

2.7.1 ps

Linux ps命令用于显示当前进程 (process) 的状态。

语法

ps [options] [--help]

参数:
ps:将某个进程显示出来

  • -A 显示所有程序。
  • -e 此参数的效果和指定"A"参数相同。
  • -f 显示UID,PPIP,C与STIME栏位。

使用实例

查找进程 信息中包含mysql的进程

ps -ef|grep mysql

如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QCfsrP5d-1585322572127)(imgs/image-20191218153733773.png)]

上述内容详解:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9zBizKl1-1585322572128)(imgs/image-20191218153740803.png)]

2.7.2 top

Linux top命令用于实时显示 process 的动态。

使用权限:所有使用者。

常用使用实例:

一、按进程的CPU使用率排序

运行top命令后,键入大写P。

有两种途径:
a) 打开大写键盘的情况下,直接按P键
b) 未打开大写键盘的情况下,Shift+P键

效果如图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hsx20tbV-1585322572129)(imgs/image-20191218153850574.png)]

二、按进程的内存使用率排序

运行top命令后,键入大写M。

有两种途径:

a) 打开大写键盘的情况下,直接按M键
b) 未打开大写键盘的情况下,Shift+M键

效果如图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wh3hm9Iu-1585322572130)(imgs/image-20191218153905739.png)]

三、按“c”键,可以看到命令的全路径以及命令参数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z3MRrjZ4-1585322572131)(imgs/image-20191218153933759.png)]

四、按“1”键,可以看到每个CPU的使用情况

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T4B2qvGW-1585322572132)(imgs/image-20191218153941330.png)]

2.7.3 kill

Linux kill命令用于删除执行中的程序或工作。

kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用
SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或jobs指令查看。

语法

kill -15进程的id #大部分程序接收到SIGTERM信号后,会先释放自己的资源,然后再停止(默认的方式)
kill -9 进程的id #效果是立即杀死进程. 该信号不能被阻塞, 处理和忽略

实例

查找tomcat进程,杀掉进程:

ps -ef|grep tomcat
kill -9 23105

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o0yS8xhr-1585322572133)(imgs/image-20191218154031410.png)]

2.7.4 防火墙

systemctl stop firewalld # 关闭防火墙
systemctl start firewalld # 启动防火墙
systemctl disable firewalld # 禁用防火墙
systemctl enable firewalld # 启用防火墙

2.7.5 关机

shutdown -r now 立刻重启
shutdown -r 10 过10分钟自动重启
shutdown -r 20:35 在时间为20:35时候重启
shutdown -c 取消重启
poweroff 立刻关机
shutdown -h now 立刻关机
shutdown -h 10 10分钟后自动关机

2.8 网络

2.8.1 ping

Linux系统的ping命令是常用的网络命令,它通常用来测试与目标主机的连通性。它通过发送ICMP()
ECHO_REQUEST数据包到网络主机(send ICMP ECHO_REQUEST to network hosts),并显示响应情况,这样我们就可以根据它输出的信息来确定目标主机是否可访问(但这不是绝对的)。有些服务器为了防止通过ping探测到,通过防火墙设置了禁止ping或者在内核参数中禁止ping,这样就不能通过ping确定该主机是否还处于开启状态。linux下的ping和windows下的ping稍有区别,linux下ping不会自动终止,需要按ctrl+c终止或者用参数-c指定要求完成的回应次数。

ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

语法

ping [参数] [主机名或IP地址]

参数说明:

  • -c<完成次数> 设置完成要求回应的次数。
  • -i<间隔秒数> 指定收发信息的间隔时间。
  • -s<数据包大小> 设置数据包的大小。
  • -t<存活数值> 设置存活数值TTL的大小。

实例
检测是否与主机连通

# ping www.w3cschool.cc //ping主机

PING aries.m.alikunlun.com (114.80.174.110) 56(84) bytes of data.
64 bytes from 114.80.174.110: icmp_seq=1 ttl=64 time=0.025 ms
64 bytes from 114.80.174.110: icmp_seq=2 ttl=64 time=0.036 ms
64 bytes from 114.80.174.110: icmp_seq=3 ttl=64 time=0.034 ms
64 bytes from 114.80.174.110: icmp_seq=4 ttl=64 time=0.034 ms
64 bytes from 114.80.174.110: icmp_seq=5 ttl=64 time=0.028 ms
64 bytes from 114.80.174.110: icmp_seq=6 ttl=64 time=0.028 ms
64 bytes from 114.80.174.110: icmp_seq=7 ttl=64 time=0.034 ms
64 bytes from 114.80.174.110: icmp_seq=8 ttl=64 time=0.034 ms
64 bytes from 114.80.174.110: icmp_seq=9 ttl=64 time=0.036 ms
64 bytes from 114.80.174.110: icmp_seq=10 ttl=64 time=0.041 ms
--- aries.m.alikunlun.com ping statistics ---
10 packets transmitted, 30 received, 0% packet loss, time 29246ms
rtt min/avg/max/mdev = 0.021/0.035/0.078/0.011 ms
//需要手动终止Ctrl+C

指定接收包的次数

# ping -c 2 www.w3cschool.cc

PING aries.m.alikunlun.com (114.80.174.120) 56(84) bytes of data.
64 bytes from 114.80.174.120: icmp_seq=1 ttl=54 time=6.18 ms
64 bytes from 114.80.174.120: icmp_seq=2 ttl=54 time=15.4 ms
--- aries.m.alikunlun.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1016ms
rtt min/avg/max/mdev = 6.185/10.824/15.464/4.640 ms
//收到两次包后,自动退出

多参数使用

#ping -i 3 -s 1024 -t 255 g.cn //ping主机

PING g.cn (203.208.37.104) 1024(1052) bytes of data.
1032 bytes from bg-in-f104.1e100.net (203.208.37.104): icmp_seq=0 ttl=243 time=62.5 ms
1032 bytes from bg-in-f104.1e100.net (203.208.37.104): icmp_seq=1 ttl=243 time=63.9 ms
1032 bytes from bg-in-f104.1e100.net (203.208.37.104): icmp_seq=2 ttl=243 time=61.9 ms
--- g.cn ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 6001ms
rtt min/avg/max/mdev = 61.959/62.843/63.984/0.894 ms, pipe 2
[root@linux ~]#
//-i 3 发送周期为 3秒 -s 设置发送包的大小 -t 设置TTL值为 255

2.8.2 telnet

telnet我们经常的使用场景就是查看法常被用来检测是个远端端口是否打开。
语法

telnet [主机名或IP地址] port

实例

检测ip:192.168.157.132的端口:8080是否通畅

telnet 192.168.157.132 8080

如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ByilYUBf-1585322572134)(imgs/image-20191218161310179.png)]

2.8.3 netstat

Linux netstat命令用于显示网络状态。

利用netstat指令可让你得知整个Linux系统的网络情况。

语法

netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]

常见参数

  • -a (all)显示所有选项,默认不显示LISTEN相关
  • -n 拒绝显示别名,能显示数字的全部转化成数字。
  • -p 显示建立相关链接的程序名

常见用法

查看哪个进程占用了8080端口:

netstat -anp|grep 8080

红色框中是进程号:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bXeKsH9h-1585322572135)(imgs/image-20191218161628333.png)]

通过进程号找到运行的进程 :

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XCji8LK7-1585322572135)(imgs/image-20191218161639440.png)]

2.8.4 wget

Linux wget是一个下载文件的工具,它用在命令行下。对于Linux用户是必不可少的工具,尤其对于网络管理员,经常要下载一些软件或从远程服务器恢复备份到本地服务器。如果我们使用虚拟主机,处理这样的事务我们只能先从远程服务器下载到我们电脑磁盘,然后再用ftp工具上传到服务器。这样既浪费时间又浪费精力,那不没办法的事。而到了Linux VPS,它则可以直接下载到服务器而不用经过上传这一步。wget工具体积小但功能完善,它支持断点下载功能,同时支持FTP和HTTP下载方式,支持代理服务器和设置起来方便简单。

语法

wget [参数] [URL地址]

常用参数说明:

  • -O –output-document=FILE 把文档写到FILE文件中
  • -c, –continue 接着下载没下载完的文件
  • -b, –background 启动后转入后台执行
  • -limit-rate 限速下载

实用实例:

1、使用wget下载单个文件

以下的例子是从网络下载一个文件并保存在当前目录 wget http://cn.wordpress.org/wordpress-3.1-zh_CN.zip 在下载的过程中会显示进度条,包含(下载完成百分比,已经下载的字节,当前下载速度,剩余下载时间)。

2、使用wget -O下载并以不同的文件名保存
wget默认会以最后一个符合”/”的后面的字符来命令,对于动态链接的下载通常文件名会不正确。 错误:下面的例子会下载一个文件并以名称download.php?id=1080保存 wget http://www.centos.bz/download?id=1

即使下载的文件是zip格式,它仍然以download.php?id=1080命令。 正确:为了解决这个问题,我们可以使用参数-O来指定一个文件名: wget -O wordpress.zip http://www.centos.bz/download.php?id=1080

3、使用wget –limit -rate限速下载
当你执行wget的时候,它默认会占用全部可能的宽带下载。但是当你准备下载一个大文件,而你还需要下载其它文件时就有必要限速了。 wget –limit-rate=300k http://cn.wordpress.org/wordpress-3.1-zh_CN.zip

4、使用wget -c断点续传
使用wget -c重新启动下载中断的文件: wget -c http://cn.wordpress.org/wordpress-3.1-zh_CN.zip 对于我们下载大文件时突然由于网络等原因中断非常有帮助,我们可以继续接着下载而不是重新下载一个文件。需要继续中断的下载时可以使用-c参数。

5、使用wget -b后台下载
对于下载非常大的文件的时候,我们可以使用参数-b进行后台下载。 wget -b http://cn.wordpress.org/wordpress-3.1-zh_CN.zip

2.8.5 curl

在进行web后台程序开发测试过程中,常常会需要发送url进行测试,使用curl可以方便地模拟出符合需求的url命令.
语法

curl [options] [URL...]

常用参数说明:

  • -v 显示请求的信息
  • -X 选项指定其它协议
  • -d 发送带参数的请求(默认是post方式提交)

使用例子:

get:
curl -v www.baidu.com

post:
curl -v www.baidu.com -d ‘age=14&cupSize=C’
curl -v -X POST www.baidu.com -d ‘age=14&cupSize=C’

put:
curl -v -X PUT -d “age=19&cupSize=C” www.baidu.com

delete:
curl -v -X DELETE www.baidu.com

第三章 Linux软件安装

主要安装:

jdk 版本 1.8u131
tomcat 版本 8.0.43

3.1 JDK安装

下载JDK,此处版本是1.8u131,实际操作以自己具体版本为准 先查看Linux系统是多少位(32位/64位):getconf
LONG_BIT 然后去官网下载JDK

因为可能存在从本机下载 jdk 上传到 linux 不方便的情况,可以使用 wget 方式下载, 只需要把后面地址换成上面官网地址同意协议后复制的地址即可 wget --no-cookies --header “Cookie:oraclelicense=acceptsecurebackup-
cookie;” “http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.tar.gz”

3.1.1 卸载和下载jdk

查看是否安装过java

rpm -qa | grep java
如果是centos 一般会自带两个openjdk

rpm -e --nodeps 要卸载的包 (包通过上面的指令可以获取到)]
先卸载7 再卸载6 最后卸载5
命令:

rpm -e --nodeps 要卸载的包

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GmFX2wKT-1585322572136)(imgs/image-20191218162745289.png)]

选择安装JDK的位置/opt/work,如果存在这个目录无需创建,一般新到的机器是没有这个目录的,这个我们创建这个目录。 指令 需要输入密码

管理员:
mkdir /opt/work

非管理员:
sudo mkdir /opt/work

3.1.2上传和解压

将jdk-8u131-linux-x64.tar.gz上传到服务器的/opt/work。

可以使用SecureFXPortable将文件上传到服务器 或都使用命令(rz,sz)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ORWAgsbg-1585322572137)(imgs/image-20191218162827096.png)]

解压:进入/opt/work目录(cd /opt/work)解压

cd /opt/work 切换到/opt/work目录下
ls 显示当前目录下所有文件和目录
tar -zxvf jdk-8u131-linux-x64.tar.gz 解压到当前目录
rm -f jdk-8u131-linux-x64.tar.gz 删除jdk-8u131-linux-x64.tar.gz

3.1.3. jdk环境变量配置

打开/etc/profile

vim /etc/profile

在文档的最后面添加如下内容,记住不要带空格

export JAVA_HOME=/opt/work/jdk1.8.0_201
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin

让配置生效:

source /etc/profile

3.1.4. 验证

java –version

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0i5kwVah-1585322572138)(imgs/image-20191218162945123.png)]

3.2 tomcat安装

3.2.1下载和安装

下载tomcat,从tomcat官网下载tomcat的压缩包。
Tomcat官网下载

tar -zxvf apache-tomcat-8.0.43.tar.gz 	解压
mv apache-tomcat-8.0.43 tomcat8 		重命名,非必须

3.2.2 启动和访问

/opt/work/tomcat8/bin/startup.sh 启动Tomcat
/opt/work/tomcat8/bin/shutdown.sh 关闭Tomcat

如果启动不成功,修改tomcat下面的bin里面的 setclasspath,在顶部添加路径为自己的 jdk路径:

export JAVA_HOME=/opt/work/jdk1.8.0_131
export JRE_HOME=/opt/work/jdk1.8.0_131/jre

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZE7DHDaI-1585322572139)(imgs/image-20191218163028966.png)]

http://10.211.55.12:8080/ 访问Tomcat

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HfJWSMbQ-1585322572140)(imgs/image-20191218163119618.png)]

小技巧:

tomcat内存优化
Tomcat内存优化主要是对tomcat启动参数优化,我们可以在tomcat的启动脚本catalina.sh中设置 JAVA_OPTS 参数。比如服务器是6G内存,所以设置JVM启动参数大些,个人可以根据自己的实际情况进行设置:

JAVA_OPTS='-Xms2048m -Xmx4096m -Xmn1g-Xss1024k -XX:NewRatio=4 -XX:SurvivorRatio=4 -
XX:PermSize=1024m-XX:MaxPermSize=1024m -XX:MaxTenuringThreshold=0 -XX:+UseParallelGCXX:
ParallelGCThreads=20 -XX:+UseParallelOldGC -XX:+UseAdaptiveSizePolicy'

3.3 jps命令

jps不是LINUX的命令,是java自带的命令,得安装JDK,如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C0Ero6lv-1585322572142)(imgs/image-20191218163154097.png)]

jps比较实用,类似与 linux 的 ps 命令,但是它只列出系统中所有的 Java 应用程序。 通过 jps 命令可以方便地查看Java 进程的启动类、传入参数和 Java 虚拟机参数等信息。

如果在 linux 中想查看 java 的进程,一般我们都需要 ps -ef | grep java 来获取进程 ID。 如果只想获取 Java 程序的进程,可以直接使用 jps 命令来直接查看。
语法

jps [options] [--help]

参数:

  • -q:只输出进程 ID
  • -l:输出完全的包名,应用主类名,jar的完全路径名

使用实例

查找信息中包含Bootstrap的JAVA进程

jps|grep Bootstrap

3.4 学习练习题

1.在linux下新建一个用户
2.在此用户下安装JDK8,并配置JDK环境
3.安装tomcat8

3.5 课后作业

练习所学的linux命令,常用命令要达到熟练的程度。

Logo

更多推荐