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
     这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。

    sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。

    该文件系统是内核设备树的一个直观反映。

    当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

  • /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:缓冲的交换区总量,内存中的内容被换出到交换区,然后又被换入到内存,但是使用过的交换区没有被覆盖,交换区的这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。
View Code

- 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=字符串   使用指定字符串分隔数字(默认使用:
)
-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)
View Code

实例

先用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 软件包可以是由红帽官方发布的,也可以是第三方发布的,当 然也可以是自己编写的。

  

  - yum 详解(包括与其相关的一切第三方软件的下载和简单使用的介绍): 内容补充连接:https://www.cnblogs.com/Fushengliangnian/articles/9816985.html

  

  

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

- 配置 nginx + uwgi django 服务 以及 supervisor 的用法:https://www.cnblogs.com/Fushengliangnian/articles/9825933.html

原文地址:https://www.cnblogs.com/Fushengliangnian/p/9806383.html