Linux

摘要:day07-linux指令1、linux系统详情发展史 unix:是一款操作系统,收费的,有钱人用的东西 mnix:unix的简化版,也收费,还可以接受 林纳斯脱袜子,用自己压岁钱,买了mnix,自己写了一个linux, linux内核,windows操作系统内核 nt

day07-linux指令

1、linux系统详情

发展史    unix:是一款操作系统,收费的,有钱人用的东西    mnix:unix的简化版,也收费,还可以接受    林纳斯脱袜子,用自己压岁钱,买了mnix,自己写了一个linux,    linux内核,windows操作系统内核  nt    美国两大派人物        比尔盖茨       copyright(版权意识)        理查德斯托曼   copyleft(开源自由)   说服了         GNU/linux    linux基金会上班呢,三流的公司卖产品,二流的公司卖品牌,一流的公司卖标准优点    (1)开源免费    (2)多客户    (3)良好的界面(桌面端、字符端)    (4)稳固持久发行版本    只需是基于linux内核的操作系统,统一称为linux系统    不同系列,基本指令都是一样的,只有软件的安装方式不一样    大便系列:Debian    Ubuntu:属于大便系列  16.04  桌面端(个人计算机使用居多)        apt-get    贱兔系列:  Gentoo    RedHat: 红帽系列(收费的)    CentOS:属于红帽系列,免费的,非常稳固,常用作服务器系统        也有桌面端   yum   6.8  7.x    费德罗: Federo,红帽系列   

2、远程连接

使用工具:putty、xshell打开你的虚拟机,会出现login,输入客户名  root  输入密码 123456  敲enter就可进入系统修改配置文件,让其有ip    vi /etc/sysconfig/network-scripts/ifcfg-eth0 先关机  poweroff   再去修改  编辑--虚拟网络编辑器   VMnet0   手动选择网卡

3、简单指令

[root@localhost ~]#root: 超级管理员,拥有至高无上的权限,所以进来之后别乱动    为了防止系统玩坏,首先拍个快照,纯净水localhost:主机名~ : 代表的是在哪一个目录下面,~代表的是当前客户的家目录# : 代表的意思是超级管理员在执行指令,$: 代表的是普通客户在执行指令假如是普通客户bajie,进来之后就是这样的:[bajie@localhost ~]$简单指令:pwd : 当前目录的绝对路径ls : 显示当前目录里面所有的文件cd : 切换目录   cd  目录路径    目录就是文件夹    绝对路径 :相对于跟目录的路径    相对路径 :相对于当前目录的路径        ./ : 当前目录里面的哪个文件   可以省略不写    ?        ../ : 上一级目录下面哪个文件    ?    / : 跟目录    ../ : 上一级目录     ?    ~ : 当前客户的家目录   root客户的家目录就是  /root        普通客户的家目录   /home/bajie        去往家目录的快捷键  cd         cd ~ == cd     ?    - : 去往上一个目录,相似遥控器的  回看关机指令:poweroff  halt重启指令:reboottab键:自动补全功能    ?清理屏幕: clearctrl + l: 清理屏幕ctrl + a: 快速的来到指令的最前面     ?ctrl + e : 快速的来到指令的最后面   ?ctrl + c : 终止当前的进程    ping :测试两台机器能否联通        ping ip地址      ping 10.7.181.xx上下按键:快速的调出历史指令shutdown :     shutdown -h now  立马关机    shutdown -r now  立马重启    shutdown -h +5 '我要关机啦'   5分钟之后关机    shutdown -h 12:00 到指定的时间关机

4、ssh

ssh是一个协议(远程登录协议),同时也是一个指令,ssh协议默认端口号是22ssh也是linux里面的一个指令,可以实现登录别的linux系统    linux1登录linux2,通过ssh登录    windows登录linux,需要使用软件,xshellssh root@10.7.181.66   输入密码就可登录ssh 客户名@ip地址

5、目录结构

linux各种颜色的意思下面是linux系统默认不同类型文件的颜色:    白色:表示普通文件    蓝色:表示目录    绿色:表示可执行文件    红色:表示压缩文件    浅蓝色:链接文件    红色闪烁:表示链接的文件有问题    黄色:表示设施文件    灰色:表示其余文件根目录下的目录都是什么意思/bin : 二进制文件,指令存放地方/boot : 存放和启动相关的内容/dev : 存放设施的地方(*)/etc : 存放配置文件的地方(*)/home : 家,普通客户家目录存放的地方(*)/lib  /lib64 : 存放都是库文件lost + found : linux系统文件独有的一个目录/media : 媒体设施/mnt : mount  是以后我们要挂载的地方(*)/opt : 可选的附加程序/proc : 和进程相关的文件/root : root客户的家目录(*)/sbin : 只有超级管理员才能执行的指令   sudo   ?/selinux : 是linux的一种安全机制,基本没用过,还得关掉它/srv : 相关服务文件存放的地方/sys : 和windows的sys,存放硬件相关驱动信息/tmp : 临时文件存放的地方/usr : unix system resource, 自己后续手动安装软件的时候安装到 /usr/local里面(*)/var : 存放的是日渐增长的文件,比方日志,比方数据库等

6、ls

显示当前目录下面的所有文件ls 目录路径(路径,绝对和相对都可以)   ls  -a : 在linux里面,以点开头的是隐藏文件,显示所有文件   ls  -R : 递归的显示所有的文件    ?   ls  -l : 以列表显示文件的详细信息,可以简写为  llll之后的每一列代表的意思第一列:文件类型    - : 一个文件    d : 一个目录    l : 一个链接    c : 字符设施    b : 块设施第二列-第十列:文件权限(介绍见后面)第十一列:是一个点.没影响,不用管第十二列:假如是文件,代表的是硬链接的个数,假如是目录,忘了   !=!第十三列:所属客户  root第十四列:所属组    root第十五列:文件的大小  kb            ls -lh 查看文件大小第十六、十七、十八:文件创立、修改时间第十九列:文件的名字

7、vi、vim

vi和vim是编辑器(编辑器之神)vi是linux自带的编辑器,vim是加强版的编辑器,但是需要安装才能使用简单使用:(1)vi 1.txt    vi后面跟文件路径,没有就创立这个文件,有就打开这个文件    进来就是vi的命令模式(2)按小写字母i    从命令模式切换到了编辑模式、插入模式    开始编辑(3)按esc    从编辑模式退出到命令模式(4)输入  :wq   保存并且退出   英文的冒号    输入冒号之后,称之为底行模式vi的其它用法    命令模式==》编辑模式        i : 在光标所在处进入编辑模式        I : 在当前行的第一个非空字符进入编辑模式        a : 在光标所在字符的后一个字符进入编辑模式        A : 在光标所在行末尾进入编辑模式        o : 在光标下新建一行进入编辑模式        O : 在光标所在行的上面新建一行进入编辑模式        s : 删除当前字符进入编辑模式        S : 删除当前行进入编辑模式    编辑模式==》命令模式        按esc    命令模式==》底行模式        :   英文的冒号就可vi的快捷键 (13个+7个+6个)    gg : 快速切换到第一行的行首    G :快速切换到最后一行的行首    ngg : 快速切换到指定行的行首    ^ : 快速切换到该行行首    $ : 快速切换到该行行尾    dd : 删除光标所在行    u : 撤销操作    ndd :删除光标下n行,包含光标所在行    yy :复制光标所在行    p : 粘贴复制的内容    np : 复制几次    nyy : 复制光标下n行,包含光标所在行    10000dd : 删除文件中所有行    ctrl + f : 下一页  forward    ctrl + b : 上一页  backward    ctrl + d : 下翻半页 down    ctrl + u : 上翻半页 up    zt : 光标所在行顶行显示  top    zb : 光标所在行尾行显示  bottom    zz : 光标所在行中间显示  zhongjian    底行模式:    :set nu  显示行号    :set nonu  取消显示行号    :wq      保存并且退出    :x       保存并且退出    shift+zz 保存并且退出    :q!      不保存,强制退出

day08-linux

1、vi

字符串查找(常用)   从上往下找    :/要查找的字符串   敲enter开始查找  n代表下一个  N代表上一个         从下往上找    ?/要查找的字符串   敲enter开始查找  n代表下一个  N代表上一个  ??        字符串替换    光标所在行时的字符串替换        :s/孤单/幸福      将光标所在行的第一个孤单替换为幸福        :s/孤单/幸福/g      将光标所在行的所有孤单替换为幸福    指定行的字符串替换        :n,ms/孤单/幸福     将n到m行第一个孤单替换为幸福        :n,ms/孤单/幸福/g     将n到m行所有孤单替换为幸福    所有行的字符串替换        :%s/孤单/幸福      将所有行的第一个孤单替换为幸福        :%s/孤单/幸福/g      将所有孤单替换为幸福vi打开快捷到某行    vi lala.txt +n    打开文件默认到第n行行首    vi lala.txt +     打开文件默认到尾行行首vi的配置文件  ????    .vimrc   假如想用vi来写python代码,搞一个配置文件    vi ~/.vimrcvi的常见错误  ????    非法编辑退出vi的时候,会产生一个 .2.txt.swp 的一个交换文件,只需有这个文件存在, 那么打开这个文件的时候就会有提醒,不想要这个提醒,删除这个文件就可       rm -f .2.txt.swp    vi -r 2.txt   恢复到上次编辑的内容

2、文件相关指令

文件和文件夹的相关指令,创立、删除、拷贝、移动、查看(1)创立:    <1>创立文件:          vi 文件路径               touch 文件路径    <2>创立文件夹:          mkdir 目录路径   创立指定的目录          mkdir -p dudu/haha/xixi   递归创立目录(2) 删除   一般都不删除文件,一般都是备份一下,编辑新的文件    <1>删除文件:         rm 文件路径             rm -f 文件路径   强制删除       通配符:*        rm -f *.txt   删除所有txt文件        rm -f *       删除所有文件    <2>删除目录:        rmdir 目录路径    只能删除空目录        rm -rf 目录路径    删除非空目录(3)拷贝    <1>cp 源文件路径 目标文件路径        拷贝文件的时候可以修改名字    <2>cp -r 源文件夹 目标文件夹        拷贝文件夹的时候可以修改        cp -r lihong jielun/       使用原来的名字        cp -r lihong jielun/hong   修改名字(4) 移动    <1>mv 源文件路径 目标文件路径        移动的时候可以修改文件名字    <2>移动文件夹不用加 -r 参数(5)查看文件    <1>vi就能查看    <2>cat 文件名             -n 显示行号    <3>tac 文件名   倒着查看    <4>head 文件名     默认查看文件前十行          head  -5  文件名     查看文件前五行      <5> tail 文件名   默认查看文件后十行          tail  -5  文件名    查看文件后五行    <6> more 文件名           enter : 往下走一行           空格 : 往下走一页           不能向上看,按q退出    <7> less 文件名           enter : 往下走一行           空格 : 往下走一页           按q退出           pageup   上翻页           pagedown 下翻页           /要查找的字符     也可在文件全文查找字符

3、文件系统

文件系统就是文件管理系统的简称,不同的文件系统存储和读取数据的方式都不一样,就会导致同样的东西,不同的文件系统来存,存的大小不一样apfs:苹果手机的格式常见的文件系统格式windows:    fat        fat16  已经淘汰        fat32  经常使用,尤其在u盘领域        fat64  (exfat)  在windows和mac都可以直接读写    ntfs        windows的默认系统格式linux:    ext    ext2    ext3    ext4  目前是这个格式  不能读写ntfs,假如要读写,安装其余软件mac:    hfs    hfs+  不能写入ntfs,假如想要写入,需要安装插件,该插件收费

4、客户和组?

linux是一个多客户多组的操作系统一个客户是否属于多个组  yes一个组是否拥有多个客户  yes一个客户至少必需属于一个组,一个客户必需拥有自己的主组,其余组称之为附加组客户创立    useradd bajie   ?    创立成功之后会留下记录,  tail /etc/passwd   ?    创立一个客户的同时,会给当前客户创立一个名字一模一样的组作为该客户的主组    给客户增加密码        passwd 客户名        (这个操作只能在root去给某个普通客户设置密码,在普通客户下只能给自己修改密码,不可设置其余普通客户密码)    -d : 创立客户的时候指定家目录,不指定会在home下面创立一个和客户名一模一样的目录,一般不指定  ?    -g : 指定主组,假如不指定,默认创立一个和客户名一模一样的组作为主组  ?    -G : 指定附加组  ?    -u :指定客户id    一般都不用  ?客户修改    usermod    -g : 修改主组  ?        usermod -g 501 bajie   修改bajie主组    -l : 修改客户名  ?        usermod -l wuneng bajie   将bajie客户名修改为wuneng    -u : 修改客户id   ?        usermod -u 505 wuneng   将wuneng客户id修改为505    -d : 修改家目录  ?        usermod -d /home/lala wuneng   不用客户删除    userdel        userdel 客户名     只删除文件中的记录        userdel -r 客户名  将家目录一并删除        假如操作不规范,家目录也可手动干掉客户切换    centos里面    su 客户名    从root切换到普通不用密码    从普通切换到root,需要输入root的密码,通过exit返回上一个客户    这里面不能sudo,由于不支持,假如要支持,需要相关配置    Ubuntu里面    不允许root直接登录,需要配置才可以。    用普通客户登录。  sudo 指令,提醒输入密码,这个密码是当前客户的密码组创立    查看当前组,  tail /etc/group    groupadd 组名    -g : 可以指定组id删除组    groupdel 组名    【注】假如一个组是主组的话,这个组删不掉    【注】假如一个组是一个客户的主组,并且仅仅是这个客户的主组,而且组名和客户名相同,那么在删除客户的同时,该组也就删除了修改组    groupmod    -g : 修改组的id号    groupmod -g 513 dudu    -n : 修改组名        groupmod -n xixi dudu

5、文件权限

权限什么意思?系统中,文件的权限都有哪些?读、写、执行读:read   r   写:write   w    执行:execute  x假如写一个-代表没有这个权限权限表示rwx     111     7   rw-     110     6r-x     101     5r--     100     4-wx     011     3-w-     010     2--x     001     1---     000     0rwx             r-x             r-x所属客户权限     组内客户权限     组外客户权限权限表示法:0755  常用权限:0755(rwxr-xr-x)   0777(rwxrwxrwx)   0644(rw-r--r--)修改权限修改组的指令不是乱用的,需要root客户的权限才能修改,Ubuntu下需要使用sudo,centos需要切换root执行修改权限:chmod    格式:  chmod 权限 文件路径    chmod 755 1.txt    chmod g+w,g-x 1.txt   ?        u : 修改所属客户        g : 修改组内客户        o : 修改组外客户    目录权限修改        chmod 777 目录路径    只修改该目录的权限        chmod -R 777 目录路径   递归修改目录里面所有文件的权限修改客户:chown    chown 客户名 文件路径         只修改客户名    chown 客户名:组名 文件路径     客户和组都修改    chown :组名 文件路径          只修改组名    chown -R 客户名:组名 目录路径      递归修改目录里面所有文件的客户和组修改组:chgrp    chgrp 组名 文件路径    chgrp -R 组名 目录路径      递归修改umask    是什么?    系统创立文件默认权限是  644    系统创立目录默认权限是  755    目录默认比文件多了一个可执行权限,对目录来说,可执行就是打开目录    umask就决定了文件和目录的默认权限        0777-0022 = 0755  这就是默认权限,文件都少可执行权限    指定umask进行修改,将umask指定为0011        0777-0011 = 0766(目录)  0666(文件)

6、文件搜索

find用法如下:find   在哪找   怎样找   找什么在哪找:就是一个路径,默认是当前路径怎样找:按照名字、大小、客户,其实就是参数    -name : 按照名字找    -size : 按照大小找    -user : 按照客户找    -group : 按照组找    -maxdepth : 查找最大目录级别    -mindepth : 查找最小目录级别找什么:1.mp3  *.txtfind / -name dudu.pyfind / -size 10k     等于10k的文件             +10k     大于10k的文件            -10k     小于10k的文件find / *.txt -user liuyanfind / -maxdepth 3 -mindepth 2 -name *.txt  找指定级别的文件

day09-linux

1、文件内容搜索

grep 内容 文件路径参数:-i :忽略大小写--color=auto : 颜色自动提醒,将grep设置为默认颜色提醒,其实就是可以给grep指令器别名    vi ~/.bashrc  ?    增加一句  alias grep='grep --color=auto'    source ~/.bashrc  让增加的指令生效-n : 显示内容出现的行号      (grep -n 内容 文件路径)  --->必需空一格-l : 显示内容出现在的文件名     (grep -l 内容 文件路径)-c : 显示出现该内容的次数     (grep -c 内容 文件路径)grep 王者荣耀 1.txt     --->找出在文件1.txt中包含王者荣耀的句子grep 王者荣耀 *.txt    --->找出在所有txt文件中包含王者荣耀的句子grep 王者荣耀 ~/.txt     --->找出所有家目录下中包含王者荣耀的句子也可以写正则表达式, 注意使用 -P    电话号码的正则表达式:13838384380    \d{11}    ^1\d{10}    3456789    ^1[3-9]\d{9}   邮箱的正则表达式:  test@qq.com   duduxixi@163.com  lalahehe@sina.cn    \w+@\w+\.(com|cn|net)grep -P '1[3-9]\d{9}' 3.txt     (正则表达式查看,P必需大写)grep -E '1[3-9]\d{9}' 3.txt    (-E的效果一样)

2、管道

格式: 指令1 | 指令2指令1的输出作为指令2的输入,指令2的输出显示到屏幕中常用的管道指令有:    ls -l /etc | less    ls -l /etc | head -5  显示内容中的前5行    ls -l /etc | tail -5   显示内容中的后5行    ls -l /etc | head -10 | tail -5    显示内容中前10行中的后5行(即6-10行)    ls -l /etc | grep 找的内容   显示查找的内容查看进程相关    ps -ef | grep ssh

3、搭建主机信任

密码学的内容--->加密-解密,用到一个东西 --->秘钥加密-解密的秘钥相同--->对称加解密加密-解密的秘钥不相同--->非对称加解密一对秘钥包括:公钥和私钥公钥:给你们,你们拿的都是公钥私钥:我自己拥有,公钥加密-私钥解密,私钥加密-公钥解密实现免密码登录,linux1登录linux2,实现免密码登录:  (1)在linux1上,生成公钥和私钥          ssh-keygen   一路敲enter就可  (2)来到生成秘钥的文件中         id_rsa : 私钥         id_rsa.pub : 公钥  (3)复制公钥        cat  id_rsa.pub   显示公钥的内容,点右键复制  (4)来到linux2中         vi ~/.ssh/authorized_keys         将公钥粘贴进来就可这样在通过linux1登录linux2的时候就实现了免密码登录

6、scp

scp:基于ssh的cp,cp是实现本机之间来回拷贝,scp是在两台linux之间进行拷贝scp的用法:    scp 源路径 目标路径    scp  1.txt   root@ip地址:路径         假如发送文件夹,需要增加 -r 选项    scp -r 1.txt  root@10.7.181.10:/rootlinux和linux之间使用scp进行互发,假如搭建了主机信任,不用输入密码winscp,实现windows和linux之间使用scp进行互发    安装,使用就可,左边:windows目录,右边:linux目录,相互拖动就可

4、重定向

标准输入(stdin, 键盘)、标准输出(stdout, 屏幕)输出重定向:意思就是不输出到屏幕,输出到其余地方ls -l > 1.txt      >作用:首先清空文件,而后写入文件ls -l >> 1.txt     >>作用:追加内容错误重定向:指令有错,错误信息显示到哪里ls /lala 2> 1.txt   将错误信息显示到指定文件中ls /lala 2>> 1.txt  将错误信息追加到指定文件中

5、挂载、磁盘相关指令

挂载:神马意思?看图形


挂载.png
将u盘和目录对应的过程就是挂载(1)插上u盘    u盘只能让你的linux识别,假如是虚拟机,在虚拟机设置里面点击让虚拟机识别,(2)linux识别成功之后,通过指令查看你的设施    fdisk -l    /dev/sda   就是linux系统的硬盘设施    假如有分区  /dev/sda1   /dev/sda2  xxx    u盘设施往下走    /dev/sdb   就是你的u盘设施    假如有分区  /dev/sdb1   /dev/sdb2    挂载u盘    mount -t  需要挂载的设施  挂载点        auto : 自动识别        vfat : fat32        ntfs-3g : ntfs格式   需要插件支持    -o iocharset=utf8  假如有中文,可以指定字符集    mount /dev/sdb1 /mnt/usb    取消挂载,不能再挂载的目录中取消挂载    umount /dev/sdb1 /mnt/usb    umount /dev/sdb1    umount /mnt/usb    假如取消挂载时候显示该设施正在忙,需要输入指令把使用的进程给干掉,再取消挂载就可    fuser -m -k /mnt/usb和磁盘相关的指令df    显示当前可用的设施的使用情况    -h  人性化的显示大小du    当前目录的使用情况    -h  人性化的方式显示大小配置开机挂载vi /etc/fstab增加一行信息/dev/sdb1     /mnt/usb      vfat    defaults      0 0

7、软硬链接

link,为理解决文件的共享问题,引入了链接机制。分为软链接和硬链接,以软链接使用居多硬链接    ln 源文件 目标文件    也可以使用link    链接之后,目标文件和源文件内容相同,修改其中一个,另外一个也被修改    在ll之后,可以看见硬链接个数,添加    删除其中一个,另外一个不受影响    可以了解为,给一个文件起了一个外号、别名      【注1】不能给目录创立    【注2】创立完硬链接之后,你的客户名和组信息不变软链接    ln -s 源文件 目标文件    软链接创立之后,修改其中一个,另一个也修改    【注1】可以给目录创立    【注2】创立完之后,客户和组信息是创立时候的信息软硬链接的不同之处    在linux里面,存放一个文件,由三部分组成,一个文件名,一个是文件索引(inode),一个是数据部分    见百鸟朝凤图
软硬链接.png

8、压缩和解压(很常用)

在linux里面,常见压缩格式有两种,一种叫做gz,一种叫做bz2gzip\gunzip(后缀名是.gz)    gzip 文件1 文件2    生成之后,源文件不在了,只有压缩文件,每一个都生成一个压缩文件    gunzip 文件    不能实现打包压缩,不能实现保留源文件bzip2\bunzip2(后缀名是.bz2)    bzip2 文件1 文件2    每一个生成一个压缩文件    -k : 保留源文件    bunzip2 压缩文件1 压缩文件2tar(可以实现压缩和解压,可以实现打包的功能)    假如打包压缩使用的gzip压缩的,那么后缀名  .tar.gz    .tgz    假如打包压缩使用的bzip2压缩的,那么后缀名  .tar.bz2       常用的参数有:    -z : 使用gzip压缩    -j : 使用bzip2压缩    -f : 打包压缩的时候指定压缩后的文件名    -c : 打包文件    -x : 解压缩使用的    -v : 压缩和解压缩时候显示进度打包使用gzip压缩:    tar -zcvf 压缩后的名字.tar.gz 文件1 文件2 文件3使用gzip解压缩    tar -zxvf 压缩包.tar.gz打包使用bzip2压缩    tar -jcvf 压缩后的名字.tar.bz2 文件1 文件2 文件3使用bzip2解压缩    tar -jxvf 压缩包.tar.bz2

9、软件安装之yum安装

红帽系列软件安装使用  yum安装大便系列软件安装使用  apt-get安装去哪下载软件呢?yum源,这个源在哪呢?默认都有自己的源,但是这个源是在国外的。所以使用linux经常将源设置为国内源,阿里源、清华源、搜狐源、网易源、中科大源如何配置为国内源?打开阿里源,点击帮助(1)mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup(2)下载对应的源配置文件wget是一个专业的下载软件,但是需要安装wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo或者者curl是自带的,不用安装curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo(3)执行    假如是本地,需要网络,吃饭的时候执行,晚上执行,热点执行    yum clean all    yum make cache

day10-linux

1、软件安装

(1)yum安装(多)   安装: yum install -y 包名   中间一路yes   卸载:   yum remove -y 包名    可以只下载安装包,不安装    yum install -y --downloadonly --downloaddir=./ wget    下载就是.rpm的包。(2)rpm安装(一般不用,依赖软件太多)    不管你用的是yum还是用的rpm安装,其实安装的都是rpm包。在linux里面,安装软件的时候,不仅仅是安装这么一个软件,与之对应的要按照很多的依赖软件    a ==》 b===》c==》d    假如使用rpm安装,你要知道软件依赖关系才能安装,但是使用yum的话,不用知道依赖关系,yum自动为你处理    比方  yum install -y --downloadonly --downloaddir=./ vim        包含vim的包以及vim依赖的包,一律下载下来之后,预计10个包,这10个都是rpm,请问先装哪个后装哪个。        yum install -y vim   依赖关系自动处理    -ivh :安装     rpm -ivh 包.rpm    -e :卸载       rpm -e wget    -ql : 列出包安装路径   rpm -ql wget    -qi : 列出指定包的详细信息  rpm -qi wget(3)编译安装(多)    相对来说,编译安装是需要编译源码的,安装的软件更加适合你的电脑,你的软硬件环境,更加的稳固,相比较yum来说稳固    编译安装3个步骤:    (1)配置        ./configure --prefix=你安装路径(/user/local/mysql) --以及其它参数    (2)编译        linux里面的软件都是使用c、c++写的,所以你得有编译器        gcc gcc-c++        yum install -y gcc gcc-c++        make     (3)安装        make install    走完一步之后,可以执行一个指令  echo $?  ,假如返回0,代表上面指令执行成功,假如返回其它,说明执行失败    指令可以连写:   make && make install    安装ntfs-3g    安装python

2、服务和进程相关指令

linux的启动等级,打开这个文件   vi /etc/inittab0 : 关机等级1 : 单客户模式2 : 多客户的无网络模式3 : 多客户模式,有网络4 : 保留模式5 : 界面模式6 : 重启模式切换等级   init 0   init 1   init 6查看当前等级  runlevel   who -rwhoami  : 我是谁,查看当前客户查看随开机启动的服务chkconfig --list随开机启动的服务,我们给他们起了一个非常好听的名字,守护进程(daemon)sshd   httpd   mysqld  其实就是一个随机开机启动的服务开启、关闭服务    要有控制开启、关闭服务的脚本,比方iptables(防火墙)    /etc/init.d/iptables start | stop | restart    /etc/init.d/network start | stop | restart    经常找脚本,太不方便了,将服务脚本放到  /etc/init.d ,假如支持服务模式,那么即可以使用如下指令开启和关闭    service iptables start | stop | restart    service network start | stop | restart    一般情况,安装服务的时候,控制服务的脚本在安装包就有,但是有的没有,比方nginx没有    自己按照的服务,你即可以将脚本放到  /etc/init.d 里面,而后通过service控制它的开启和关闭  service nginx start自己按照的服务随开机启动    chkconfig nginx on   默认设置的等级为2345    chkconfig nginx off    还得给脚本权限,权限一般设置为755    通过chkconfig --list 查看有没有配置成功进程相关指令    top : 实时查看系统的运行情况    w :查看系统的当前客户的链接情况    free : -h  内存的使用情况    ps : 查看进程相关信息        ps -ef | grep ssh        ps aux | grep ssh    kill : 杀死一个进程        kill -9 进程id    netstat -lnp : 查看网络和端口使用情况        netstat -lnp | grep 80

3、shell简介(理解一下)

shell编程   wget url    包.tar.gzpython break : 终止循环       continue : 结束当次循环,进入下一次循环

4、ftp服务搭建

ftp是什么?文件传输协议,用在将本地文件上传到服务器
1、ftp搭建   关闭防火墙和selinux   setenforce 0   依赖  gcc和openssl-devel和perl   0、yum install -y gcc openssl-devel perl   1、去pureftp官网           download==》releases==》pure-ftpd-1.0.41.tar.gz   2、下载       wget https://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.41.tar.gz   3、解压       tar -zxvf 文件名   4、配置       ./configure                    #进行配置  -h 查看配置参数       --prefix=/usr/local/pureftpd   #安装目录       --without-inetd                #不使用ineted 超级服务器管理       --with-altlog                  #采用alt日志       --with-puredb                  #采用puredb来存储ftp虚拟客户信息       --with-throttling              #开启带宽控制        --with-tls                    #开启ftps支持                ./configure --prefix=/usr/local/pureftpd --without-inetd --with-altlog --with-puredb --with-throttling --with-tls        echo $?  假如是0说明上一步成功,其它为错误                make && make install                   5、修改配置文件       cd configuration-file/       mkdir /usr/local/pureftpd/etc   创立目录       cp pure-ftpd.conf  /usr/local/pureftpd/etc/       修改:vi /usr/local/pureftpd/etc/pure-ftpd.conf 如下           在文件最后增加如下两行           PureDB      /usr/local/pureftpd/etc/pureftpd.pdb           PIDFile     /var/run/pure-ftpd.pid   6、拷贝控制文件       cp pure-config.pl /usr/local/pureftpd/sbin/       chmod 755 /usr/local/pureftpd/sbin/pure-config.pl   7、启动服务       cd /usr/local/pureftpd       ./sbin/pure-config.pl  ./etc/pure-ftpd.conf       检查:ps -ef | grep ftp          8、增加管理客户       useradd  test       mkdir -p /var/www/html/       chown -R test:test /var/www/html/       ./bin/pure-pw useradd ftp_user1 -u test -d /var/www/html       ftp_user1:ftp登录客户名       -u:指定系统中存在的客户       -d:指定访问的目录   9、创立虚拟的客户数据库       ./bin/pure-pw mkdb              /usr/local/pureftpd/bin/pure-pw list            #查看客户列表       /usr/local/pureftpd/bin/pure-pw userdel  客户名    #删除客户   10、通过ftp链接工具(FileZilla)测试   

5、nfs搭建

nfs是什么?可以实现linux之间的文件共享nfs用户端还有服务端
nfs安装教程服务器上操作    关闭防火墙   service iptables stop    关闭selinux  setenforce 0    1、yum install -y nfs-utils    2、编辑配置文件        vi /etc/exports        /nfstest         10.0.144.0/24(rw,sync)        要共享的目录     网段    3、创立目录        mkdir /nfstest        vi /nfstest/lala.txt    4、启动服务        nfs是基于rpc协议的,所以首先启动rpc        service rpcbind start        service nfs start用户端上操作    1、yum install -y nfs-utils    2、查看对应ip地址上面共享的目录        showmount -e 10.0.144.156    3、挂载nfs        mount -t nfs 10.0.144.156:/nfstest /mnt/usb        mount -t nfs 10.7.181.94:/nfstest /mnt/usb    4、配置开机挂载        vi /etc/fstab        10.0.142.34:/test/   /root/nfs   nfs   defaults  0   0

6、nginx服务搭建

nginx是什么? web服务器   apache打交道nginx服务器的根目录(www)在   /usr/local/nginx/htmlip:端口     域名(jd.com   baidu.com   taobao.com   mi.com)  sb.comDNS服务商,阿里云、腾讯云都有一个服务器能否能放多个网站呢?可以的,配置虚拟主机
nginx安装1、关闭防火墙和selinux2、安装依赖软件    yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre pcre-devel3、tar -zxvf nginx-1.11.5.tar.gz4、创立www客户,不允许以www客户登录系统    useradd www -s /sbin/nologin5、./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www --group=www   --with-http_stub_status_module --with-http_ssl_module6、make && make install7、cp nginx /etc/init.d/8、开启服务    service nginx start9、设置开机启动    chkconfig nginx on    chkconfig --list      查看能否开机启动10、查看网络和端口使用情况    netstat -lnp | grep nginx    nginx默认监听的端口为80端口虚拟主机配置步骤(1)修改nginx配置文件    vi /usr/local/nginx/conf/nginx.conf    在第116行加一行代码    include vhost/*.conf;(2)新建一个vhost文件夹    mkdir /usr/local/nginx/conf/vhost(3)来到vhost下,新建一个虚拟主机配置文件    vi /usr/local/nginx/conf/vhost/www.lala.com.conf    server    {        server_name www.lala.com;        root html/lala;        index index.html;    }    [说明]:    server_name : 域名    root : 网站的根目录    index : 网站的默认首页(4)新建虚拟主机根目录    mkdir /usr/local/nginx/html/lala    vi /usr/local/nginx/html/lala/index.html    service nginx restart   重启服务(5)编辑本机的hosts文件    C:\Windows\System32\drivers\etc\hosts    10.9.151.154  www.lala.com

Python安装教程

1、下载源码    Gzipped source tarball    这种后缀是 .tar.gz    yum install -y zlib*  (必需的哥们)    tar -zxvf Python-3.6.4.tgz    cd Python-3.6.4        编译    ./configure --prefix=/usr/local/python3 --enable-optimizations        (必需的)    vi Modules/Setup        将第366行的那个#号去掉        zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz            make && make install2、链接过来指令包    ln -s /usr/local/python3/bin/python3 /usr/bin/python3    终端输入python3,就可进入python3的终端模式3、pip3设置    find / -name pip3    ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3    pip3 -V   查看pip3版本信息        更新pip    pip3 install --upgrade pip

CentOS和Ubuntu的区别

    1. centos中新建的非root客户是没有sudo的权限的,假如需要使用sudo权限必需在/etc/sudoers 中加入账户和权限,所以切换到root账号的时候只要要输入:su,加入root账号的密码就可。 在Ubuntu中,一般使用sudo+命令,假如是第一次使用会提醒输入当前客户的密码(而不是root的密码)    2. 在线安装软件中,centos使用的是yum命令,而ubuntu中使用的是apt-get命令。除此之外yum中还有一个从软件源中搜索摸个软件的方法:yum search + 软件名CentOS7.0系列新指令:    centos7.0 没有netstat 和 ifconfig命令问题           yum -y install wget         yum -y install net-tools    centos7.0服务管理相关指令        https://www.cnblogs.com/lgqboke/p/6069170.html
ubuntu和centos不同.png

7、各系统指令区别总结

centos6.8centos7.0ubuntu16.04

需要执行的下载指令有
yum install -y gcc gcc-c++
yum install -y zlib*
yum install -y nfs-utils
yum install -y gcc openssl-devel perl
yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre pcre-devel

环境变量和shell编程

1. 环境变量

环境变量用来存储工作环境信息的变量,主要分为系统全局变量和客户级全局变量

  • 全局变量

    常见的全局环境变量 :   PATH    指令的搜索路径  HOME     客户的工作目录  LOGNAME  客户的登录名  SHELL    当前系统shell类型#使用全局变量echo $PATH  #显示单个全局变量,注意使用全局变量,必需加$export name='hello' #设置新的全局变量#系统级全局变量这类变量对系统内的所有客户都生效,所有客户都可以使用这类变量。这类变量在/etc/profile文件中设置,只有root客户才可设置vim /etc/profileexport a=100:wq #存盘退出,这个时候a不会立即生效,应该是有source  /etc/profile#单客户级全局变量在客户主目录内有三个文件 ~/.bash_profile、~/.bashrc和~/.profile 在这个文件中定义变量只针对当前客户,增加方式同系统级全局变量
  • 增加PATH环境变量

    echo $PATH  #x显示全局PATH环境变量#1 临时设置PATH=$PATH:/home/csl  #将/home/csl增加到系统环境变量,只针对当前登录有效#2 对所有客户永久有效vi /etc/profileexport PATH=$PATH:/usr/local/sysbench/bin source /etc/profile# 3.对登录客户有效# vi ~/.bashrc 在里面加入:export PATH=$PATH:/usr/local/mysql/binsource ~/.bashrc

2. shell编程

2.1 什么是shell

shell是一个命令解释器,将客户输入的命令解释给操作系统内核。

Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它相似于Windows下的cmd.exe,可以交互式地解释和执行客户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具备的控制结构,但是Shell是不需要进行编译的,它是从脚本程序中一行一行的读取并执行命令。

Shell有两种执行命令的方式:交互式(Interactive),客户输入一条命令,Shell就解释执行一条;批解决(Batch),客户事前写一个Shell脚本(Script),其中有很多条命令,让Shell一次把这些命令执行完,而不必一条一条地敲命令。

2.2 常见的shell类型

Linux 的 Shell 种类众多,常见的有:

(1) BourneShell(sh):是由AT&T Bell试验室的 Steven Bourne为AT&T的Unix开发的,它是Unix的默认Shell,也是其它Shell的开发基础。Bourne Shell在编程方面相当优秀,但在解决与客户的交互方面不如其它几种Shell。

(2) BourneAgain Shell (即bash):是自由软件基金会(GNU)开发的一个Shell,它是Linux系统中一个默认的Shell。Bash不但与Bourne Shell兼容,还继承了C Shell、Korn Shell等优点。

(3) ash:ash Shell是由Kenneth Almquist编写的,是Linux 中占用系统资源最少的一个小Shell,它只包含24个内部命令,因此使用起来很不方便。

(4) CShell(csh):是加州伯克利大学的Bill Joy为BSD Unix开发的,共有52个内部命令,与sh不同,它的语法与C语言很类似。它提供了Bourne Shell所不能解决的客户交互特征,如命令补全、命令别名、历史命令替换等。但是,C Shell与BourneShell并不兼容。该Shell其实是指向/bin/tcsh这样的一个Shell,也就是说,csh其实就是tcsh。

(5) KornShell(ksh):是AT&T Bell试验室的David Korn开发的,共有42 条内部命令,它集合了C Shell和Bourne Shell的优点,并且与Bourne Shell向下完全兼容。Korn Shell的效率很高,其命令交互界面和编程交互界面都很好。

(6) zch:是Linux 最大的Shell之一,由Paul Falstad完成,共有84 个内部命令。假如只是一般的用途,没有必要安装这样的Shell。

  • 可以使用系统变量SHELL查看当前使用的shell:echo $SHELL
  • 也可以到/etc/shells文件里查看系统可以使用的shell

2.3 shell的交互方式

  • 命令行

  • 脚本执行

    • 编写脚本,文件后缀名一般为.sh
    • 文件必需以#!/bin/bash开头
    • 增加脚本的可执行权限chmode +x 脚本名
    • 执行脚本:
      • 在当前目录里执行:./脚本名
      • 在其余目录中执行:使用绝对路径
    #!/bin/bash#使用#注释,第一行是特殊存在cd /ls -al:wq #存退出盘chmod +x 1.sh  #修改权限,增加可执行权限./1.sh   #执行当前目录下的shell脚本

2.4 定义变量

  • 变量类型

    • 局部变量:只在本shell中使用
    • 环境变量 : 使用整个系统,一般大写
  • 局部变量的使用

    #1 定义局部变量a=10 #注意等号两边不要留空格,否则会看成多个命令b=$a#2显示局部变量echo $becho ${b}echo "a=$a"  #双引号中的变量解释#3.销毁变量unset a #干掉一个变量,不要带$符#注意反引号,反引号引起来的是命令,可以执行,将执行结果给变量d=`date`【注】:等号两边不要留空格
    • 位置变量

      $0 表示脚本的名称$1-$9表示传递给脚本的的参数#test.sh脚本#!/bin/bashecho 'hello world'echo $0 $1 $2执行输出:hello world./test.sh lala dudu
    • 特殊变量

      $#表示传递给脚本的参数个数$*表示传递给脚本的所有参数$?表示上一个命令执行的返回值,返回值为0表示成功执行,否则命令执行错误
    • 常量

    readonly a=10  #定义常量echo $aa='ll'  #-bash: name: 只读变量,不能修改

2.5 引号

  • 双引号中解释变量,解释转义字符
  • 单引号不解释变量、不解释转义字符
  • 反引号会执行当中的内容
  • 特殊字符要用反斜线转义:& * ?| $ ^

2.6 字符串

  • 计算字符串长度${#字符串名}
  • 提取子串:${字符串名:start:len}从下标为start开始,提取len个字符

2.7 数组

  • 数组定义:a=(1 2 3) #千万注意,数值之间用空格分隔
  • 获取数组元素:${a[0]}
  • 赋值$a[0]=100
  • 获取数组长度:{#a[@]}或者{#a[*]}

2.8 seq

  • 生成连续整数
  • 示例:seq 1 10,生成1-10的连续整数

2.9 运算

  • 数学运算
shell默认所有变量都是字符串,执行数学计算需要用[]括起来a=100echo $[$a+10]echo $[$a/2]echo $[$a*2]echo $[$a-80]echo $[10%2]echo $((3+5))echo $((10/2))echo $((10/3))  #3 整除echo $((10*3))echo $((10%3))let a=5+6echo $alet a+=10echo $aecho `expr 3 + 5`  #也可以用expr进行计算
  • 关系运算

    运算符说明举例
    -eq==,相等返回 true。[ a -eqb ]
    -ne!=,不相等返回 true。[ a -neb ]
    -gt>,假如是,则返回 true。[ a -gtb ]
    -lt<,假如是,则返回 true。[ a -ltb ]
    -ge>=,假如是,则返回 true。[ a -geb ]
    -le<=,假如是,则返回 true。[ a -leb ]
  • 逻辑运算

    运算符说明举例
    &&逻辑的 AND[[ a -lt 100 &&b -gt 100 ]] 返回 false
    ||逻辑的 OR[[ a -lt 100 ||b -gt 100 ]] 返回 true
  • 字符串判断

    运算符说明举例
    =检测两个字符串能否相等,相等返回 true。[ a =b ] 返回 false。
    !=检测两个字符串能否相等,不相等返回 true。[ a !=b ] 返回 true。
    -z检测字符串长度能否为0,为0返回 true。[ -z $a ] 返回 false。
    str检测字符串能否为空,不为空返回 true。[ $a ] 返回 true。
  • 文件判断

    操作符说明举例
    -d file检测文件能否是目录,假如是,则返回 true。[ -d $file ] 返回 false。
    -f file检测文件能否是普通文件(既不是目录,也不是设施文件),假如是,则返回 true。[ -f $file ] 返回 true。
    -r file检测文件能否可读,假如是,则返回 true。[ -r $file ] 返回 true。
    -w file检测文件能否可写,假如是,则返回 true。[ -w $file ] 返回 true。
    -x file检测文件能否可执行,假如是,则返回 true。[ -x $file ] 返回 true。
    -s file检测文件能否不为空(文件大小能否大于0),不为空返回 true。[ -s $file ] 返回 true。
    -e file检测文件(包括目录)能否存在,假如是,则返回 true。[ -e $file ] 返回 true。

2.10 分支语句

  • if-else

    a=100if [ $a -gt 90 ]then    echo "a>90"else    echo "a<=90"fi
  • case

    case $变量名 in 模式1) 命令序列1 ;; 模式2) 命令序列2 ;;  *) 默认执行的命令序列      ;; esac
    1 #!/bin/bash  2 case $1 in  3     start | begin)  4         echo "start"  5         ;;  6     stop | end)  7         echo "stop"  8         ;;  9     *) 10         echo "I don't know" 11 esac

2.11 循环语句

for 变量 in 列表do    command1    command2    ...    commandNdone示例:for i in 1 2 3 4 5;do    echo $idone#从命令读取值for line in `cat 1.txt`;do     echo $linedone#读取目录列表for file in ~/*;do     echo $file; donefor i in `seq 1 100`;do    let sum+=$idone#遍历数组for x in ${a[*]};do     echo $x; done
  • while
#当型循环while conditiondo    commanddonesum=0i=0while [ $i -lt 10];do   let sum+=$i   let i+=1done
  • until
#直到型循环#condition为假执行循环,为真中止until condition  do    commanddoneuntil [ ! $i -lt 10 ];do     echo $i;     let i+=1; done

2.12 break和continue

和以前的用法一模一样

2.13 函数

  • 函数必需先定义后使用
#函数定义test(){    echo "简单函数"}#函数调用test()
  • 全部评论(0)
最新发布的资讯信息
【系统环境|】2FA验证器 验证码如何登录(2024-04-01 20:18)
【系统环境|】怎么做才能建设好外贸网站?(2023-12-20 10:05)
【系统环境|软件环境】梦幻仙域游戏攻略(2023-12-19 10:02)
【系统环境|软件环境】梦幻仙域游戏攻略(2023-12-19 10:02)
【系统环境|】卡帕部落揭秘潮玩新宠,探究玩法(2023-12-14 09:45)
【系统环境|数据库】 潮玩宇宙游戏道具收集方法(2023-12-12 16:13)
【系统环境|】如何开发搭建卡帕部落模式源码(2023-12-12 10:44)
【系统环境|】遥遥领先!青否数字人直播系统5.0发布,支持真人接管实时驱动!(2023-10-12 17:31)
【系统环境|服务器应用】克隆自己的数字人形象需要几步?(2023-09-20 17:13)
【系统环境|】Tiktok登录教程(2023-02-13 14:17)
手机二维码手机访问领取大礼包
返回顶部