Linux

1.操作系统简介

概念

操作系统(英语:Operating System,简称 OS)是管理和控制计算机硬件与软件资源
的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系
统的支持下才能运行。

分类

Windows操作系统:微软公司Windows操作系统,例如常用在个人计算机的Windows XP,Windows Vista,Windows 7,Windows 8,Windows 10等。用在服务器端的Windows Server2003,Windows Server 2008等。

类Unix(Linux)操作系统(英文名:Linux is not Unix)。不安装图形页面,无法通过输入设备执行命令(鼠标,键盘)。

Mac操作系统

2.Linux简介

应用领域

服务器领域:互联网应用,java应用,php应用多数都使用linux服务器。

嵌入式设备:例如Android
一些政府机构:巴西,俄罗斯,西班牙,葡萄牙,德国,法国等。

3.虚拟机简介与安装。

简介

**虚拟机(Virtual Machine)**指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。虚拟系统通过生成操作系统的全新虚拟镜像,它具有真实操作系统完全一样的功能,在虚拟机中所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对其他的系统产生任何影响 ,而且能够和现有操作系统切换。一个物理计算上可以同时运行多个不同的操作系统。

CentOS简介

CentOS,全称 Community Enterprise Operating System,中文名为社区企业操作系统。是个基于Red Hat Linux 提供的可自由使用源代码的企业级 Linux 发行版本。

CentOS下载:www.centos.org

※安装注意事项

1)如果出现CentOS使用失败的操作,需在 计算机开机时 使用快捷键F12/F2/delete,进入 Configuration 界面设置 Intel Virtual Technology (英特尔虚拟化技术)为 Enabled

2)CentOS安装的磁盘需预留20+GB。

3)开启此虚拟机后,键盘操作进入Linux。

4)设置操作系统基本信息时,需设置 时间语言安装软件选择中选择GNOME Desktop,否则迷你版无图形界面。

5)开启网络连接ens33,等待分配IP后下一步

6)设置超级管理员的密码为123456。

7)在虚拟机中登录需新建用户名与密码,root权限较高,不安全。(centos-Q密)

4.初识Linux系统

1)Computer目录下文件夹简介:

bin/sbin目录下用来放置命令。

etc目录下用来放置配置文件。

mnt用来管理移动设备,比如U盘等等。

usr/local用来放置自己安装的软件。

2)※Linux系统的关闭:

务必现在虚拟机内部关闭操作系统,再点击关闭虚拟机按钮!!!

3)远程工具简介:

目的:用来连接到机房的 linux 服务器上。

常见的远程工具

XShell/Xftp: https://www.netsarang.com

SecureCRT: https://www.vandyke.com

putty: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

WinSCP: https://winscp.net/eng/download.php

XShell,SecureCRT,putty是远程工具。

Xftp,WinSCP是文件管理工具。

在远程工具中建立会话时,会话名称标准格式为 服务器功能_IP。例如:crm_IP地址。

本次学习使用XShell 和 Xftp。

购买云服务器方案

云服务器就是一个远程电脑,服务器一般不会关机。虚拟机安装后会占用资源,我们可通过自行购买云服务器,这样更加接近线上工作。

1.阿里云购买服务器: https://www.aliyun.com/minisite/goods?userCode=0phtycgr

2.购买完毕后,获取服务器的ip地址,重置服务器密码,就可以远程登陆了。

关于安全组的说明:(阿里云这个很重要,自己需要开启什么端口来配置)

在这里插入图片描述

5.链接的了解


Linux的链接分为两种:硬链接和软链接。

硬链接:假设B是A的硬链接,则他们两指向了同一个文件!允许一个文件有多个路径,用户可通过这种机制建立硬链接到一些重要文件上,防止误删。

软链接:类似Windows下的快捷方式,删除了资源文件,快捷方式也访问不了。

6.Linux命令


1)磁盘管理命令

1.pwd:显示当前目录位置。

2.ll:显示当前目录下的所有文件和其他目录的相关信息。

3.ls:显示当前目录下的所有文件及其他文件名。(简化版的ll)。

典型事例:查看某指定目录/root/下的所有文件及其他目录。

命令ls /root/(ll同理)

4.cd:切换盘符。

典型事例①: 切换盘符至 /user/local/。

命令cd /user/local/

补充:/user/local/为绝对路径,意为computer下的user目录下的local目录。computer即为 “/”。

典型事例②:切换盘符至根目录。

命令:cd /

典型事例③:使用相对路径的方式从 /user/local 进入到 /user/local/src 目录。

命令:cd src/(相对路径不能以 / 开头)

补充:ll或ls展示目录时,快捷方式(软链接)会呈现 软链接名 -> 文件实体位置 的形式。

典例bin -> user/bin


2)文件管理命令

创建文件或目录

1.mkdir 文件名:在当前目录下创建一个新的文件夹。

2.touch xxx:创建一个文件xxx。

3.ln xxx yyy:以硬链接的方式创建一个和xxx文件一样的名为yyy的文件。

4.ln -s xxx yyy:以软链接的方式创建一个和xxx文件一样的名为yyy的文件。

补充:创建文件的另一种方式:

echo “linux”:用来将“linux”输入至控制台。

echo "linux" > a.txt:用来将 “linux” 输出到当前目录下的新文件 “a.txt” 中,如果没有会自动创建。

删除文件或目录

2.rm xxx:删除当前目录下名为 xxx 的文件。(xxx也可以为文件的绝对路径)。

3.rm -rf xxx/:删除当前目录下名为 “xxx” 的目录。(-rf是rm的参数,表示递归强制删除)

拷贝文件或目录

4.cp a.txt b.txt:将当前路径下名为 “a.txt” 的文件复制一份成为名为 “b.txt” 的文件。(也可使用绝对路径)

典型案例:将a.txt复制到 /home/test/目录下并以 “aa.txt”重新命名。

命令:cp a.txt /home/test/aa.txt

5.cp -rf test/ baktest:将当前路径下名为 “test” 的目录拷贝一份存入 名为 “baktest” 目录中。

※总结:涉及有关文件夹操作时,需要加上 -rf 参数表示递归且强制。

查看文件内容

6.cat xxx.txt:显示当前目录下名为 “xxx.txt” 的文件所有内容。(也可以使用绝对路径)

补充:由于没有分页功能,查看大文件较为麻烦,大文件不适合使用该指令。

7.more xxx.txt:以分页的形式显示当前路径下名为 “xxx.txt” 文件的所有内容。(按空格键或者回车键显示下一页的内容)。

补充

①空格键一次显示一页内容。

②回车键一次显示一行内容。

③crtrl+C退出分页浏览模式。

8.head -n 15 xxx.txt:显示当前目录下名为 “xxx.txt” 文件的内容的前15行,若不设置参数 “-n” ,则默认显示文件内容前十行。

补充:也可省略参数,比如head -15 xxx.txt,与上同义。

9.tail -n 15 xxx.txt:用法与 head相同,不同点为其显示内容尾部15行。

文件内容搜索

10.grep [参数] xx xxx.txt:在当前目录的xxx.txt文件中以行为单位搜索带有字符串“xx” 的行内容。

典例①:文件中有字符串 “net java”,中间存在空格,搜索该词汇。

命令:grep “net java” xxx.txt

典例②:以不区分大小写的方式搜索出文件中的“java”字符串。

命令:grep -i java xxx.txt

典例③:以单词的形式搜索文件中的字符串“java”,比如搜索javascript中的java就搜索不到了。

命令:grep -i -w java xxx.txt

典例④:搜索以“java”为开头的行信息。

命令:grep “^java” xxx.txt

典例⑤:搜索以“java”为结尾的的行信息。

命令:grep “java$” xxx.txt

典例⑥:在当前目录下所有文本文件中搜索含有字符串 “java”的行内容。

命令:grep “java” *.txt (使用通配符)

管道命令

11.Order1 | Order2 | Order3:将命令1的输出作为命令2的输入,以命令2的输出作为命令3的输入。

案例:在xxx.txt文件中查找前十行中既有“java” 又有“tomcat”的行内容。

命令:head xxx.txt | grep “java” | grep “tomcat”

3)系统命令

查看当前时间

1.date:显示系统的当前时间。

切换用户

2.su xxx:以xxx用户登录到linux系统。

案例:切换至root超级管理员用户。

命令:su root

清屏,重启和关机

3.clear:清屏。

4.reboot:重启Linux。

5.shutdown -h now:立刻关机。

查看和终结系统进程

6.ps -ef:显示当前所有进程。

补充参数信息

①UID:用户名信息

②PID:程序的进程号,由系统自动分配

③PPID:程序的父ID,由该进程打开的PID

④TIM:程序启动的时间。

典型案例:查找进程中名带有字符串“xx”的进程。

命令:ps -ef | grep su

7.kill -9 PID:强制终止ID为PID的进程。(如果没有-9则可能终止失败)

4)压缩和解压

压缩(归档)文件

1.tar 参数 xxx:压缩名为xxx的文件或文件夹。

参数补充

z:使用压缩,生成的文件名是xxx.tar.gz(相当于win中的rar,zip)。

c:创建压缩文档。

v:显示压缩,解压过程中处理的文件名。

f:指定归档文件名,tar参数后面是归档文件名。

t:列出归档文件内容。

C:解压到指定目录,语法格式:-C 目录名。

典型案例:创建(压缩)归档文件,将aa.txt,bb.txt归档到文件名为xxx.tar.gz的压缩包中。

命令tar -zcvf xxx.tar.gz aa.txt bb.txt

补充:常规压缩操作中,zcf是必要的,v是可以省略的,v省略后不显示压缩文件名。

典型案例:将名为“baktest”的文件夹以及其下的内容压缩到名为“f1.tar.gz”的压缩包中。

命令:tar -zcvf f1.tar.gz baktest/

2.tar -tf xxx:查看名为“xxx”的压缩包中的文件。

解压文件

3.tar zxvf xxx.tar.gz:解压缩名为“xxx.tar.gz”的压缩包。

典型案例:将名为“xxx.tar.gz”的压缩包解压到地址为“/home/test/”的目录中。

命令:tar -zxvf xxx.tar.gz -C /home/test/

5)查看当前网络

查看当前网络信息等

1.ifconfig:查看当前网络信息(IP等)。

2.ping IP/域名:测试网络联通。(与Windows系统一样)

6)网络访问

1.curl:使用url访问网络的文件传输工具。

补充curl的作用:

①检查网络访问。

②模拟用户访问。

2.wget www.xxx.com:将xxx页面的资源下载到本地。

典型案例:利用linux指令下载tomcat。

命令:wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-9/v9.0.11/bin/apache-tomcat-9.0.11.tar.gz

7)权限管理

linux权限介绍

在这里插入图片描述

当执行ll命令查询某目录下的文件时,第一个字段的信息即为权限信息。

案例分析-rwxr-xr-x

第一位表示文件:

l:软链接文件

d:目录

c:字符设备文件(键盘,鼠标)

linux权限采取UGO(user_group_other)模式,每三位为一组。

样例中的rwx为一组,r(4)是读,w(2)是写,x(1)是执行。

综上所述,样例中权限信息代表:其文件类型是普通文件,拥有者对其具有读写执行的权限,拥有者所属组具有读和执行的权限,除上之外其他人员也具有读和执行的权限。

修改权限命令

1.chmod 646 xxx.txt:对当前目录下的xxx.txt文件给所属者分配读写权限,给所属者所在组分配只读权限。给其他人员分配读写权限。

补充:6=4+2|7=4+2+1|3=2+1

修改文件拥有者

2.chown root xxx.txt:对当前目录下的xxx.txt文件修改拥有者为root用户。

8)重定向

1.echo "linux" > xxx.txt:将本应在控制台输出的“linux”字符串重定向至当前目录的xxx.txt文件中。(如果没有该文件则自动创建文件)

2.echo "linux" >>xxx.txt:将本应在控制台输出的“linux”字符串重定向到当前目录的xxx.txt文件中追加到原有内容后。(如果没有该文件自动创建文件)

3.echo "hello linux" | wc:统计待打印的字符串内容中的行数,单词数和字符数。(1 2 12)

9)vi和vim编辑器

命令模式和编辑模式

vi操作分为 命令模式编辑模式

命令模式:按 ESC 键,进入命令模式,命令模式下无法编辑。再命令模式中输入 “:” 程序进入底线命令模式,在该模式中,q为退出程序,w为保存文件。

:set nu:设置行号

:set nonu:取消行号

编辑模式:按 a 或者 i ,进入编辑模式,此时,底部会出现insert,在命令模式下,输入 :wq。 **q!**为不保存退出。

编辑文件的命令:

h(⬅),j(⬆),k(⬇),l(➡):移动光标

+:光标移动到非空格行的下一个

-:与加号相反

dd(连续按):删除光标所在行

yy:复制光标所在行的缓冲区

p:粘贴缓冲区中的内容

gg:光标回到文件第一行

GG:光标回到文件最后一行

^:光标移动至当前行的行首

$:光标移动到当前行的行尾

/xxx:xxx为关键字,搜索操作,表示搜索带有“xxx”的关键字,如果第一次不是自己想要的,可以按 n 往后查找。

1.vim xxx.txt:如果文件存在则可进行修改,不存在则为新建编辑文件xxx.txt。

10)用户账号管理


添加新用户

1.useradd -m a:添加一个用户名为“a”的账户,-m为自动创建这个用户的主目录。

2.cat /etc/passwd:查看当前所有用户信息。

3.ls /home:查看当前所有用户的文件信息。

删除用户

3.userdel -r a:删除用户a,并且将其对应目录也删掉。

修改用户

4.usermod [修改内容] a:修改用户a。

案例:修改用户a对应目录位置到/home/233下。

命令:usermod -d /home/233 a

※修改完应直接查看配置文件 cat /etc/passwd

切换用户

5.su a:切换用户至a用户。

补充:命令前缀的 **#**代表超级用户,命令前缀的 $ 代表普通用户。

6.hostname:查看当前服务器名。

7.hostname aaa:修改当前服务器名为 aaa。

修改密码

如果是超级用户的话,可以修改任意账户的密码:

8.passwd a:修改用户名为a的用户的密码。

如果是普通用户:

9.passwd:修改当前用户的密码,且需要确认root账号的密码无误后才可修改密码。

锁定账户(入狱小技巧O(∩_∩)O)

比如张三辞职了,需冻结该账号:

10.passwd -l aaa:冻结用户名为aaa的用户,使其不再能登录。

11.passwd -d aaa:需要输入超管密码即可登录。

11)进程管理

12.ps -aux | grep xxx:过滤出存在xxx的相关进程信息。

tips:

参数 -a:显示当前终端运行的一个进程信息

参数 -u:以用户的信息显示进程

参数 -x:显示后台运行进程的参数。

12.ps -ef:查看父进程的信息。

13.pstree -pu:进程数,以树的形式展示进程信息,更直白更清楚。

14.kill -9 xxx:杀死进程,xxx为结束进程的pid。


7.linux中环境的安装

1)JDK安装

1.下载JDK rpm。官网下载后通过Xftp传入linux服务器。

2.安装java环境。

①检测当前系统是否已存在java环境。java -version

②如果有的话先卸载。

rpm -qa | grep jdk

rpm -e --nodeps jdk_

③卸载完毕后即可安装jdk。rpm -ivh [rpm包]

方法二:

①在win上安装对应的jdk8,拖入虚拟机客户端。

②在虚拟机etc/java目录下解压tar.gz文件,解压完成后配置环境。

③配置环境使用vim,添加以下内容即可:

JAVA_HOME=/usr/java/jdk1.8.0_321

PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:

export PATH JAVA_HOME

方法三:

①保证linux虚拟机联网的情况下,进行在线安装。

②执行 yum -y install gcc

③执行yum -y install gcc-c++

3.配置环境

①进入配置环境vim /etc/profile

②在vim下进入编辑模式,在底部加上 :

export PATH=/bin:/usr/bin/:.

文章末尾传送点

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐