Linux基础知识
Posted 浮生凉年
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux基础知识相关的知识,希望对你有一定的参考价值。
虚拟机Vmware,CentOS7,Xshell安装
详情博客:https://www.cnblogs.com/pyyu/articles/9313587.html
Vmware官网下载地址:用来挂在linux的虚拟机
CentOS7镜像下载地址:https://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1804.iso
Xshell: 一款用来远程连接服务器的软件
在远程连接之前的准备:
- 配置Linux的网络设置,这里使用nat模式
- 详情:https://www.cnblogs.com/pyyu/p/9739956.html
- 关闭防火墙
systemctl stop firewalld 关闭防火墙服务/软件
systemctl disable firewalld 永久关闭防火墙,关闭开机自启
iptables -L 查看防火墙的规则
iptables -F 清空防火墙规则
- 关闭selinux:
临时关闭:setenforce 0
永久关闭:设置/etc/selinux/config 文件中的 SELINUX=enforcing 改为:SELINUX=disabled
或者: sed -i \'s/enforcing/disabled/\' /etc/selinux/config
- 修改配置文件
- vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
ONBOOT=yes
IPADDR=10.0.0.10
NETMASK=255.255.255.0
GATEWAY=10.0.0.254
DNS1=119.29.29.29
- 修改了配置文件,重启网络服务
/etc/init.d/network restart
- ping baidu.com #检测网络是否通信
- 远程连接服务器
- 通过xshell连接,其实也是封装了 ssh root@10.0.0.10 命令
- 执行命令 ssh root@10.0.0.10
文档目录结构
在Linux中一切皆文件,Linux中所有的文件都是从根目录开始,每一个目录不止能使用本地的文件系统,也可以使用网络上的文件系统,可以利用NFS服务器挂载特定目录。每一个文件在此目录树中的文件名,包含完整路径都是独一无二的。
配置文件以及目录结构其他补充连接:https://www.cnblogs.com/Fushengliangnian/articles/9816966.html
目录树架构:
目录的解释:
-
/bin:
bin是Binary的缩写, 这个目录存放着最经常使用的命令。 -
/boot:
这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。 -
/dev :
dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。 -
/etc:
这个目录用来存放所有的系统管理所需要的配置文件和子目录。 -
/home:
用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。 -
/lib:
这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。 -
/lost+found:
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。 -
/media:
linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。 -
/mnt:
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。 -
/opt:
这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。 -
/proc:
这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
-
/root:
该目录为系统管理员,也称作超级权限者的用户主目录。 -
/sbin:
s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。 -
/selinux:
这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。 -
/srv:
该目录存放一些服务启动之后需要提取的数据。 -
/sys:
sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。
这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
-
/tmp:
这个目录是用来存放一些临时文件的。 -
/usr:
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。 -
/usr/bin:
系统用户使用的应用程序。 -
/usr/sbin:
超级用户使用的比较高级的管理程序和系统守护程序。 -
/usr/src:内核源代码默认的放置目录。
-
/var:
这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
在linux系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。
值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。
/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。
基础指令
详细指令:https://www.cnblogs.com/pyyu/articles/9314206.html
- 快捷键:
1.tab键 用于自动补全命令/文件名/目录名 2.ctrl + l 清理终端显示 3.clear/cls 清理终端显示 4.ctrl + c 终止当前操作
- 特殊符号:
- > 重定向符号,清空原文件所有内容,然后把文字覆盖到文件末尾
- >> 追加重定向,把文字追加到文件的结尾
- * 通配符 ,往往用于查找文件等等操作
- 路径切换: cd
- cd / : 切换到根目录
- cd ~ : 切换到用户家目录
- cd - : 切换到上次停留的目录
- cd 想去的文件的绝对路径或相对路径 :切换过去。
- 文件夹操作指令:
- 查看文件:
- ls :查看当前工作目录下的文件
- ls 文件路径 : 查看文件路径下的文件
- ll :按照列表的形式查看当前工作目录下的文件
- pwd :打印当前工作目录
- 增加文件夹:
- mkdir 文件路径: 在该路径下创建文件
- mkdir -p 文件路径: 递归创建文件
mkdir -p /tmp/myfile/myfile/{first,two,three} 在/tmp下创建myfile/myfile文件,并且在里面在创建 first,two,three三个同级文件。
- 删除空文件夹:
- rmdir 文件路径: 删除该空文件夹
- 文件操作指令:
- 查看文件内容:
- cat 用于查看纯文本文件(常用于内容较少的)
- more 用于查看内容较多的文本, 查看文本会以百分比形式告知已经看到了多少,使用回车键向下读取内容
- 加上参数 n 用于显示行号
- 创建文件: touch 文件名
- touch -d "23:00" test.py 修改文件时间戳。
- 编辑文件内容: 利用vi/vim 指令
- 删除文件:rm
- rm -rf 文件路径:
-rf 参数为:强制删除
ps: 注意在使用该命令前最好利用虚拟机的快照功能,保存一下当前服务器的状态。
- vim 编辑器:
- 命令模式:
- 启用vi/vim 后默认进入的是命令模式
- 移动光标的命令:
w(e) 移动光标到下一个单词 b 移动到光标上一个单词 数字0 移动到本行开头 $ 移动光标到本行结尾 H 移动光标到屏幕首行 M 移动到光标到屏幕的中间一行 L 移动光标到屏幕的尾行 gg 移动光标到文档的首行 G 移动光标到文档尾行 ctrl + f 下一页 ctrl + b 上一页 `. 移动光标到上一次的修改行
- 查找相关的命令:
/chaoge 在整篇文档中搜索chaoge字符串,向下查找 ?chaoge 在整篇文档中搜索chaoge字符串,向上查找 * 查找整个文档,匹配光标所在的所有单词,按下n查找下一处,N上一处 # 查找整个文档,匹配光标所在的所有单词,按下n查找下一处,N上一处 gd 找到光标所在单词匹配的单词,并停留在非注释的第一个匹配上 % 找到括号的另一半!!
- 文本操作的命令(复制,粘贴,删除):
yy 拷贝光标所在行
dd 删除光标所在行
D 删除当前光标到行尾的内容
dG 删除当前行到文档尾部的内容
p 粘贴yy所复制的内容
x 删除光标所在的字符
u 撤销上一步的操作
- 数字与命令相结合:
3yy 拷贝光标所在的3行
5dd 删除光标所在5行
- 输入模式:
i :在光标当前位置进行编辑
o :在光标下一行进行编辑
- 底线命令模式:
- 在命令模式下输入冒号(英文的:),就进入了底线命令模式,在底线命令模式下可以输入单个或多个字符的命令,常用命令有:
- :q! 强制退出
- :wq! 强制写入并退出
- :set nu 显示行号
- :数字 调到数字那行
- esc按键 退出底线命令模式
进阶命令
- Linux查询手册:
http://linux.51yip.com/ http://man.linuxde.net/ Linux命令查询手册 Linux终端下 esc + . 可以获取上次文件名
- echo命令: 用于在终端输出字符串或变量提取后的值,格式是“echo 字符串/$变量
- 还可快速在文件中添加字符串: echo "xxx" > 文件路径 将"xxx"覆盖到该路径下的文件中 >> 是追加
- find命令:用于查找某文件的路径
find 在哪里(目录) 什么类型(文件类型) 叫什么名字(文件名) find /tmp/ -type f -name "oldboy.py" #找出/tmp所有以 .txt 结尾的文件 find /tmp/ -type f -name "*.txt" #找到/etc下所有名字以host开头的文件 find /etc -name \'host*\' #找到/opt上一个名为settings.py find /opt -name \'settings.py\'
- cp命令
#移动xxx.py到/tmp目录下 cp xxx.py /tmp/ #移动xxx.py顺便改名为chaoge.py cp xxx.py /tmp/chaoge.py Linux下面很多命令,一般没有办法直接处理文件夹,因此需要加上(参数) cp -r 递归,复制目录以及目录的子孙后代 cp -p 复制文件,同时保持文件属性不变 cp -a 相当于-pdr #递归复制test文件夹,为test2 cp -r test test2 cp是个好命令,操作文件前,先备份 cp main.py main.py.bak
- 管道命令: | 管道符“|”将两条命令隔开,管道符左边命令的输出会作为管道符右边命令的输入;
常见用法: #检查python程序是否启动 ps -ef|grep "python" #找到/tmp目录下所有txt文件 ls /tmp|grep \'.txt\' #检查nginx的端口是否存活 netstat -tunlp |grep nginx
- grep命令:(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
语法: grep [参数] [--color=auto] [字符串] filename 参数详解: -i : 忽略大小写 -n : 输出行号 -v : 反向选择 --color = auto : 给关键词部分添加颜色 grep "我要找什么" /tmp/oldboy.txt #排除 -v,排除我要找的东西 grep -v "我要找什么 /tmp/oldboy.txt 示例: // 找出/etc/passwd下root用户所在行,以及行号,显示颜色 cat /etc/passwd |grep \'^root\' --color=auto -n // 找出/etc/passwd所有不允许登录的用户 grep /sbin/nologin /etc/passwd //找到/etc/passwd的所有与mysql有关行,行号 cat /etc/passwd |grep \'mysql\' -n
- head、tail命令
head显示文件前几行,默认前10行 tail显示文件后几行,默认后10行 #查看前两行 head -2 /tmp/oldboy.txt #查看后两行 tail -2 /tmp/oldboy.txt // 在主屏幕上持续打印log日志 #持续刷新显示 tail -f xx.log #显示文件10-30行 head -30 /tmp/oldboy.txt |tail -21
- sed命令
sed命令详解:详细补充连接:https://www.cnblogs.com/Fushengliangnian/articles/9816976.html
- 简介:
sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。
处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),
接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。
接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。
Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
- du命令:用于显示目录或文件的大小。
用法:
du 【参数】【文件或目录】 -s 显示总计 -h 以k,M,G为单位显示,可读性强
示例:
显示目录或文件所占空间 #什么都不跟,代表显示当前目录所有文件大小 du #显示/home的总大小 du -sh /home
- top命令:用于动态地监视进程活动与系统负载等信息
统计信息区的图片信息的解析:
第一行 (uptime) 系统时间 主机运行时间 用户连接数(who) 系统1,5,15分钟的平均负载 第二行:进程信息 进程总数 正在运行的进程数 睡眠的进程数 停止的进程数 僵尸进程数 第三行:cpu信息 1.5 us:用户空间所占CPU百分比 0.9 sy:内核空间占用CPU百分比 0.0 ni:用户进程空间内改变过优先级的进程占用CPU百分比 97.5 id:空闲CPU百分比 0.2 wa:等待输入输出的CPU时间百分比 0.0 hi:硬件CPU中断占用百分比 0.0 si:软中断占用百分比 0.0 st:虚拟机占用百分比 第四行:内存信息(与第五行的信息类似与free命令) 8053444 total:物理内存总量 7779224 used:已使用的内存总量 274220 free:空闲的内存总量(free+used=total) 359212 buffers:用作内核缓存的内存量 第五行:swap信息 8265724 total:交换分区总量 33840 used:已使用的交换分区总量 8231884 free:空闲交换区总量 4358088 cached Mem:缓冲的交换区总量,内存中的内容被换出到交换区,然后又被换入到内存,但是使用过的交换区没有被覆盖,交换区的这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。
- which命令:用于查找文件。会在环境变量$PATH设置的目录里查找符合条件的文件。
语法: which 【参数】【文件】 参数: -n<文件名长度> 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。 -p<文件名长度> 与-n参数相同,但此处的<文件名长度>包括了文件的路径。 -w 指定输出时栏位的宽度。 -V 显示版本信息。 实例: which python #python命令在哪 /usr/bin/python #命令文件绝对路径
- alias命令:用于替换某些命令的实际用处;实际就是给某些指令重新命名,让其指向别的用处。
#查看系统别名 alias 默认别名 alias cp=\'cp -i\' alias egrep=\'egrep --color=auto\' alias fgrep=\'fgrep --color=auto\' alias grep=\'grep --color=auto\' alias l.=\'ls -d .* --color=auto\' alias ll=\'ls -l --color=auto\' alias ls=\'ls --color=auto\' alias mv=\'mv -i\' alias rm=\'rm -i\' alias which=\'alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde\' 别名作用是: 我们在linux中使用cp时候相当于执行了cp -i -i:删除已有文件或目录之前先询问用户; #别名用比较危险的操作,防止你犯错
示例:为rm设置别名:
#让系统显示 do not use rm echo do not use rm #设置rm别名 alias rm=\'echo do not use rm\' #设置别名永久生效,写入到/etc/profile(针对登录用户的合同,设置环境变量) vim /etc/profile #编辑文件 G 快速到达最后一行 o 当前行下一行,创建一个新行,进入编辑模式 source /etc/profile #读取文件(合同生效) --------------- #取消别名 unalias rm
- wget命令 :用于在终端上下载网络文件
用法: wget命令用于在终端下载网络文件 参数是 wget [参数] 下载地址 示例: wget -r -p http://www.luffycity.com#递归下载路飞所有资源,保存到www.luffycity.com文件中
- seq命令: 用于产生从某个数到另外一个数之间的所有整数。
- 语法
seq [选项]... 尾数 seq [选项]... 首数 尾数 seq [选项]... 首数 增量 尾数
- 参数
-f, --format=格式 使用printf 样式的浮点格式 -s, --separator=字符串 使用指定字符串分隔数字(默认使用:\\n) -w, --equal-width 在列前添加0 使得宽度相同
- 示例
#显示1-50整数
seq 50
#以000方式显示9-11区间整数 seq -f "%03g" 9 11
#以000方式显示1-100区间整数
seq -f "%03g" 1 100
- 软连接:ln -s 软连接也叫做符号链接,类似于windows的快捷方式。常用于安装软件的快捷方式配置,如python,nginx等
ln -s 目标文件 软连接名 1.存在文件/tmp/test.txt [root@master tmp]# ls -l -rw-r--r-- 1 root root 10 10月 15 21:23 test.txt 2.在/home目录中建立软连接,指向/tmp/test.txt文件 ln -s /tmp/test.txt my_test 3.查看软连接信息 lrwxrwxrwx 1 root root 13 10月 15 21:35 my_test -> /tmp/test.txt 4.通过软连接查看文件 cat my_test my_test只是/tmp/test.txt的一个别名,因此删除my_test不会影响/tmp/test.txt,但是删除了本尊, 快捷方式就无意义不存在了
- 权限相关命令:
- Linux权限相关知识详解:补充内容以及相关命令:https://www.cnblogs.com/Fushengliangnian/articles/9816979.html
- 创建用户:
- 删除用户:
- kill命令:用来删除进程
参数选项:
-a:当处理当前进程时,不限制命令名和进程号的对应关系; -l <信息编号>:若不加<信息编号>选项,则-l参数会列出全部的信息名称; -p:指定kill 命令只打印相关进程的进程号,而不发送任何信号; -s <信息名称或编号>:指定要送出的信息; -u:指定用户。
只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略,下面是常用的信号:
HUP 1 终端断线 INT 2 中断(同 Ctrl + C) QUIT 3 退出(同 Ctrl + \\) TERM 15 终止 KILL 9 强制终止 CONT 18 继续(与STOP相反, fg/bg命令) STOP 19 暂停(同 Ctrl + Z)
实例
先用ps查找进程,然后用kill杀掉: ps -ef | grep vim root 3268 2884 0 16:21 pts/1 00:00:00 vim install.log root 3370 2822 0 16:21 pts/0 00:00:00 grep vim kill 3268
- tar命令:压缩/解压缩; tar 命令:用来压缩和解压文件。tar本身不具有压缩功能。他是调用压缩功能实现的
语法:
tar(选项)(参数) -A或--catenate:新增文件到以存在的备份文件; -B:设置区块大小; -c或--create:建立新的备份文件; -C <目录>:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。 -d:记录文件的差别; -x或--extract或--get:从备份文件中还原文件; -t或--list:列出备份文件的内容; -z或--gzip或--ungzip:通过gzip指令处理备份文件; -Z或--compress或--uncompress:通过compress指令处理备份文件; -f<备份文件>或--file=<备份文件>:指定备份文件; -v或--verbose:显示指令执行过程; -r:添加文件到已经压缩的文件; -u:添加改变了和现有的文件到已经存在的压缩文件; -j:支持bzip2解压文件; -v:显示操作过程; -l:文件系统边界设置; -k:保留原有文件不覆盖; -m:保留文件不被覆盖; -w:确认压缩文件的正确性; -p或--same-permissions:用原来的文件权限还原文件; -P或--absolute-names:文件名使用绝对名称,不移除文件名称前的“/”号; -N <日期格式> 或 --newer=<日期时间>:只将较指定日期更新的文件保存到备份文件里; --exclude=<范本样式>:排除符合范本样式的文件。
实例
tar -zxvf Python-3.7.0b3.tgz #解压 tar -czvf oldboy.txt.tar.gz oldboy.txt #压缩oldboy.txt 上述命令等于 tar -cvf oldboy.tar oldboy.txt gzip oldboy.tar tar -cf all_pic.tar *.jpg #压缩当前目录所有jpg结尾的文件 tar -xjf xx.tar.bz2 #解压缩bz2结尾的文件
- netstat命令: 用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。
语法【选项】
netstat [选项] -t或--tcp:显示TCP传输协议的连线状况; -u或--udp:显示UDP传输协议的连线状况; -n或--numeric:直接使用ip地址,而不通过域名服务器; -l或--listening:显示监控中的服务器的Socket; -p或--programs:显示正在使用Socket的程序识别码和程序名称; -a或--all:显示所有连线中的Socket;
实例
// 查找mysql的服务 netstat -tunlp |grep mysql
- ps命令:用于查看系统中的进程状态,格式为“ps [参数]”
语法:
ps 命令常用参数 -a 显示所有进程 -u 用户以及其他详细信息 -x 显示没有控制终端的进程
示例:
// 先用ps查找进程,然后用kill杀掉: ps -ef | grep vim
- scp命令: 用于服务器之间的文件传输;
- 语法:
scp [参数] [原路径] [目标路径] 参数解析: -1 强制scp命令使用协议ssh1 -2 强制scp命令使用协议ssh2 -4 强制scp命令只使用IPv4寻址 -6 强制scp命令只使用IPv6寻址 -B 使用批处理模式(传输过程中不询问传输口令或短语) -C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能) -p 保留原文件的修改时间,访问时间和访问权限。 -q 不显示传输进度条。 -r 递归复制整个目录。 -v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。 -c cipher 以cipher将数据传输进行加密,这个选项将直接传递给ssh。 -F ssh_config 指定一个替代的ssh配置文件,此参数直接传递给ssh。 -i identity_file 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。 -l limit 限定用户所能使用的带宽,以Kbit/s为单位。 -o ssh_option 如果习惯于使用ssh_config(5)中的参数传递方式, -P port 注意是大写的P, port是指定数据传输用到的端口号 -S program 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
- 示例:从本地服务器复制到远程服务器
- 从本地服务器复制到远程服务器: 复制文件: 命令格式: scp local_file remote_username@remote_ip:remote_folder scp local_file remote_username@remote_ip:remote_file scp local_file remote_ip:remote_folder scp local_file remote_ip:remote_file 第1,2个指定了用户名,命令执行后需要输入用户密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名 第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名 复制目录: 命令格式: scp -r local_folder remote_username@remote_ip:remote_folder scp -r local_folder remote_ip:remote_folder 第1个指定了用户名,命令执行后需要输入用户密码; 第2个没有指定用户名,命令执行后需要输入用户名和密码;
- 示例:从远程服务器复制到本地服务器
从远程复制到本地的scp命令与上面的命令雷同,只要将从本地复制到远程的命令后面2个参数互换顺序就行了。 - 从远处复制文件到本地目录 scp root@192.168.120.204:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/ - 从远处复制目录到本地目录 scp -r root@192.168.120.204:/opt/soft/mongodb /opt/soft/
- yum命令:
- 概要:
yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包,
能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
尽管 RPM 能够帮助用户查询软件相关的依赖关系,但问题还是要运维人员自己来解决,
而有些大型软件可能与数十个程序都有依赖关系,在这种情况下安装软件会是非常痛苦的。
Yum 软件仓库便是为了进一步降低软件安装难度和复杂度而设计的技术。
Yum 软件仓库可以 根据用户的要求分析出所需软件包及其相关的依赖关系,然后自动从服务器下载软件包并安 装到系统。
Yum 软件仓库中的 RPM 软件包可以是由红帽官方发布的,也可以是第三方发布的,当 然也可以是自己编写的。
Linux安装其他第三方软件
- 添加环境变量
- 软连接方式,生成快捷方式,将执行文件 和 /ues/bin/ 目录产生连接:
示例:
ln -s /opt/python36/bin/python3 /ues/bin/
- 在 /etc/profile 文件中添加 PATH
示例:
// 1. 编辑 /etc/profile 文件 vim /etc/profile // 2. 在文件的最后追加 PATH=PATH:"/opt/python36/bin" // 3.重新加载该配置文件 source /etc/profile
- 安装第三方软件:
- 通过yum指令直接安装:(注意,yum仓库中必须要有该软件)
// 1. 通过yum直接安装 yum install 软件名称 // 2. 通过systemctl 命令进行启动 systemctl start 软件名 // 3. 通过systemctl 命令关闭 systemctl stop 软件名 // 3. 通过systemctl 命令重启 systemctl restart 软件名
- 下载源码包,进行编译安装:
1. 在网上找到相对应的源码包的压缩文件,利用wget 命令直接下载到本地。 2. 解压文件 tar -xzf 文件路径 3. 找到文件中的 configure 文件,进行编译: ./configure --prefix=指定编译安装路径(在进行编译之前需要配置一些其他的依赖文件) 如果没有该文件,则不用进行编译 4. 在解压后的文件夹下面使用make && make install 指令,进行安装。
- 编译安装python示例:
1, 进入 /opt 目录下面,执行wget命令: wget - c https://www.python.org/ftp/python/3.6.7/Python-3.6.7rc2.tar.xz 2, 解压该文件: tar -xzf /opt/Python-3.6.7rc2.tar.xz 或者 tar -xf /opt/Python-3.6.7rc2.tar.xz
3, 进入解压后的文件进行编译安装
./configure --prefix=/opt/python36
4, 在当前目录下执行 make && make install 命令
5, 配置环境变量:
echo "PATH=PATH:/opt/python36/bin" >> /etc/prefile
6, 结束。
- 编译安装Python前yum python需要的依赖库的指令:
yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y
- yum安装mysql示例:
- 在这里安装 mariadb 该数据库是在mysql被收购后为了避免闭源的风险而出现的一个替代品,
- MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。
- 使用yum命令前,需要创建 mariadb.repo仓库文件
# 编辑新建MariaDB.repo文件 vi /etc/yum.repos.d/MariaDB.repo # 在文件中写入 [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.1/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
- yum命令安装
# yum命令安装 mysql服务器和客户端 yum install mariadb-server mariadb # mariadb数据库的相关命令是: systemctl start mariadb #启动MariaDB systemctl stop mariadb #停止MariaDB systemctl restart mariadb #重启MariaDB systemctl enable mariadb #设置开机启动
# 安装好后,初始化配置文件
详情可见:https://www.cnblogs.com/Fushengliangnian/category/1292532.html
- 安装redis示例以及redis基本用法:https://www.cnblogs.com/Fushengliangnian/articles/9825926.html
- 安装nginx示例以及nginx简单介绍和基本用法:https://www.cnblogs.com/Fushengliangnian/articles/9825929.html
以上是关于Linux基础知识的主要内容,如果未能解决你的问题,请参考以下文章