Linux讲解-day2-apt软件包安装-系统管理与应用-网络配置

未匹配的标注

#Linux-vim与软件包安装

##一、 vim编辑器
vim 全屏幕纯文本编辑器
vim使用
title


    1   vim  模式
        vim  文件名

        命令---->输入    a  追加    i 插入   o  新增下一行
        命令---->末行   :w  保存    :q!   不保存退出


    2   命令模式操作

        1)光标移动
        hjkl

        :n      移动到第几行

        gg      移动文件头
        G       移动到文件尾

        2)删除字母
        x       删除单个字母
        nx      删除n个字母

        3)删除整行/剪切
        dd      删除单行
        ndd     删除多行
        p       粘贴

        dG      从光标所在行删除到文件尾

        4)复制
        yy
        nyy

        5)撤销
        u       撤销
        ctrl+r  反撤销

        6)显示行号
        :set  nu
        :set  nonu

        7)vim配置文件
        etc/vim/vimrc    vim配置文件一般不改,使用插件时会用。但是我们一般不用vim做开发)

        8)查找
        /查找内容       向下查找

        n   下一个
        N   上一个

        9)替换
        :s/old/new/              替换当前行第一个 old 为 new1,10s/old/new/g         替换110行的所有old为new%s/old/new/g            替换整个文件的old为new
                 g代表            范围内所有old换为new

        :1,10s/^/#/g            注释
        :6,10s/^#//g            取消注释

        :11,20s/^/\/\//g        注释 (注释的双// 要转义 \)
        :16,20s/^\/\///g         取消注释(再来上一次)

title

##二、软件包管理
Ⅰ 软件包分类
源码包: .tar.gz .tar.bz2
安装包: .deb (centos是rpm)

###2.1 通过apt(命令行工具)安装
APT(Advanced Packaging Tool)是Debian/Ubuntu类Liunx系统中的软件包管理程序, 使用它可以找到想要的软件包, 而且安装、卸载、更新都很简便;也可以用来对Ubuntu进行升级; APT的源文件为/etc/apt/目录下的sources.list文件.

####最喜欢用的apt命令(一定要记住)
安装命令:

sudo apt-get install 包名

删除包命令

# 删除软件及其配置文件
apt-get --purge remove <package>
# 删除没用的依赖包
apt-get autoremove <package>

删除没有用的软件包下载

apt-get autoclean 

APT的底层包是dpkg, 而dpkg 安装Package时, 会将 *.deb 放在 /var/cache/apt/archives/中,apt-get autoclean 只会删除 /var/cache/apt/archives/ 已经过期的deb。

apt-get clean 

使用 apt-get clean 会将 /var/cache/apt/archives/ 的 所有 deb 删掉,可以理解为 rm /var/cache/apt/archives/*.deb。

####APT常用命令包括:

apt search package #搜索包 
apt show package #获取包的相关信息,如说明、大小、版本等  
apt depends package #了解使用依赖  
apt rdepends package #查看该包被哪些包依赖  
apt-cache pkgnames  #执行pkgnames子命令列出当前所有可用的软件包 
apt policy package #使用policy命令显示软件包的安装状态和版本信息。

sudo apt install package #安装包  
sudo apt install package=version #安装指定版本的包  
sudo apt install package --reinstall #重新安装包  
sudo apt -f install #修复安装, "-f = --fix-missing"  
sudo apt remove package #删除包
sudo apt purge package  #删除包,包括删除配置文件等
sudo apt autoremove #自动卸载所有未使用的软件包

sudo apt source package #下载该包的源代码   
sudo apt update #更新apt软件源信息  
sudo apt upgrade #更新已安装的包  
sudo apt dist-upgrade #升级系统  
sudo apt dselect-upgrade #使用dselect升级  
sudo apt build-dep package #安装相关的编译环境  
sudo apt clean && sudo apt autoclean #清理无用的包
sudo apt clean  #清理已下载的软件包,实际上是清楚/var/cache/apt/archives目录中的软件包
sudo apt autoclean  #删除已经卸载的软件包备份  
sudo apt-get check #检查是否有损坏的依赖 

注:

1. sudo表示以管理员身份执行 
2. 命令后面的参数,短参数前用”-“,长参数前用”–” 
3. Ubuntu中apt-get的默认安装路径 
apt下载后,软件的所在路径: /var/cache/apt/archives 
Ubuntu默认的PATH: 
PATH=/home/brightman/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games: 
apt-get install安装目录是包的维护者定的,不是用户。 
系统安装软件一般在/usr/share 
可执行的文件在/usr/bin 
配置文件可能安装到了/etc 
文档一般在/usr/share 
lib文件在/usr/lib

###2.2 使用Deb包安装

sudo dpkg -i <package.deb>    #安装包
sudo dpkg -r <package.deb>   #删除包
sudo dpkg -p <package.deb>   #彻底删除包(包括配置文件)
dpkg -l                       #列出当前已安装的包

###2.3 使用ppa安装
例如安装Sublime Text编辑器:

sudo add-apt-repository ppa:webupd8team/sublime-text-3  #加入软件源
sudo apt update #更新软件源
sudo apt install sublime-text-installer #安装
sudo apt remove sublime-text-installer  #卸载

###2.4 源码包安装

1   远程传输工具传输apache到linux。
        httpd-2.2.9.tar.gz 
2   安装
    1) 解压
    tar -xf httpd-2.2.9.tar.gz 
    2) cd  解压目录     
    cd httpd-2.2.9/
    3查看安装文档(使用vi可以查看)
        INSTALL     README

    4) 编译前准备(耐心等一会)
        ./configure  --prefix=/usr/local/apache2
        功能:
            1   检测系统环境,生成Makefile
            2   定义软件选项
    5)  编译 (等一会)             
        make
    6)编译安装(会提示没有权限要加sudo )
        sudo make  install

    报错判断:
        第一:安装过程是否停止
        第二:注意error  warning  no  等错误报警

3   启动
    启动查看项
    sudo /usr/local/apache2/bin/apachectl 
    启动服务
    sudo /usr/local/apache2/bin/apachectl start

4   卸载      
    直接删除安装目录

解压包
解压包


生产makefile文件
生产makefile文件


make后
make后
sudo make install


软件安装成功

启动

apache启动啦

注:
安装编译软件时的命令sudo ./configure && make && sudo make install作用:

./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。
make是用来编译的,它从Makefile中读取指令,然后编译。
make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。

扩展阅读: CC GCC

#系统管理与网络应用

xshell 远程管理 winscp/xftp 远程传输

##一、用户与用户组管理

配置文件

用户信息文件: /etc/passwd
影子文件: /etc/shadow
组信息文件: /etc/group

###命令:

1   添加用户
    useradd  用户名

2   设定密码            
    passwd   用户名

3   删除用户                
    userdel  -r  用户名    -r的意思  连带家目录一起删除
    ps:如果提示不存在/home/用户名,说明你还没登录初始化这个账户。
4   添加组             
    groupadd  组名

5   删除组             
    groupdel  组名

6   把已经存在的用户加入组                 
    gpasswd  -a  用户名  组名        用户加入组
    gpasswd  -d  用户名  组名        把用户从组中删除

7   su  -  用户名   切换用户身份

###如何查看组信息 用户信息 ?

  1. 查看当前用户所在组
    命令行groups 用户名
  2. 查看所有的组(在最后面有我们加的)
    cat /etc/group
  3. 查看所有用户信息 (在最后面有我们加的)
    cat /etc/passwd

##二、进程管理

###进程管理

####进程管理三个主要任务:

  1. 判断服务器健康状态
  2. 查看所有正在运行的进程
  3. 强制终止进程

####进程查看

1   ps  aux 或 ps -le    查看当前系统所有运行的进程
    -a  显示前台所有进程
    -u  显示用户名
    -x  显示后台进程
    -e  显示所有进程,包括没有控制终端的进程
    -l  长格式显示


    user:       用户名
    pid:        进程id    
    %CPU        cpu占用百分比
    %MEM        内存占用百分比
    command     进程本身

2   pstree       查看进程树

3   top

    第一行:系统当前时间   系统持续时间  登录用户   1,5,15分钟之前的平均负载
    第二行:进程总数
    第三行:CPU占用率      %id 空闲百分比
    第四行:内存使用

    top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。
    内部命令如下:
    操作命令    M   内存排序
                P   CPU排序
                q   退出

4   进程管理
    (根据情况随便找一个排第一的啥来看)最好的就是使用浏览器来做实验

    top 查看使用内存 cpu大的程序的pid
    ps   aux        组合使用(查看得到该pid所有进程(包括下面的子进程))
    kill  <PID>     结束单个进程  
    kill -9 <PID>   强制

    pstree  查看进程树
    killall  -9   进程名       结束一类进程

###服务管理

####服务分类(这个要改)
1.系统默认安装的服务
2.源码包安装的服务

()系统默认安装的服务
    1   确定服务分类
        chkconfig  --list   查看服务的自启动状态
        运行级别:0-6
        0   关机
        1   单用户模式
        2   不完全多用户,不包含NFS服务  无网络登录
        3   完全多用户,启动网络连接   字符界面   
        4   未分配(用户自定义)
        5   图形界面
        6   重启



查看当前系统的运行级别可以使用命令runlevel

runlevel


切换运行级别,执行命令:
init [0123456Ss]
例子:(切换根据电脑情况会卡。建议小心。。。)
init  3 重启进入字符界面 (服务器)
init  5 重启进入图形界面  (你的windos桌面版就是图形化界面)

备注:vm虚拟机 与ubuntu init进程不兼容,无法切换来回。
出现提示 无法切回来,failed to talk to init daemon
直接reboot 或者 reboot -f 重启 不使用init进程


2   管理  默认安装的服务 
    ①启动         
        service 服务名   start|stop|restart|status
        service apache2  start

        service   服务名   start|stop|restart|status



()源码包安装的服务         
    1)绝对路径启动
    /usr/local/apache2/bin/apachectl  start


3. 配置服务自启动(扩展阅读理解)
[rc.local脚本](http://www.shxdledu.cn/post/79fb7f8ce964)

rc.local脚本是一个ubuntu开机后会自动执行的脚本,我们可以在该脚本内添加命令行指令。该脚本位于/etc/路径下,需要root权限才能修改。

###计划任务

   crontab  -e     编辑定时任务  ( crontab -e 编辑后,使用 Crtl + X 保存退出后,直接生效。)

    *  *  *  *  *   命令

title

*口诀: 分 时 日 月 周 + 命令

第一个:一小时中第几分钟 0-59
第二个:一天中第几个小时 0-23
第三个:一个月中第几天 1-31
第四个:一年第几个月 1-12
第五个:一周中星期几 0-6 0表示周日

除了这些固定值外,还可以配合星号(*),逗号(,),和斜线(/)来表示一些其他的含义:

符号 含义 说明
星号 表示任意值 比如在小时部分填写 * 代表任意小时(每小时)
逗号 可以允许在一个部分中填写多个值 比如在分钟部分填写 1,3 表示一分钟或三分钟
斜线 一般配合 * 使用,代表每隔多长时间 比如在小时部分填写 */2 代表每隔两分钟。

注意: */1 和 * 没有区别 */2可以看成是能被2整除的任意值

实例1:

* * * * *                  # 每隔一分钟执行一次任务  
0 * * * *                  # 每小时的0点执行一次任务,比如6:0010:00  
6,10 * 2 * *            # 每个月2号,每小时的6分和10分执行一次任务  
*/3,*/5 * * * *          # 每隔3分钟或5分钟执行一次任务,比如10:0310:0510:06  

实例2:

#每天早上7点执行一次 /bin/ls : 
0 7 * * * /bin/ls 
在 12 月内, 每天的早上 6 点到 12 点中,每隔3个小时执行一次 /usr/bin/backup : 
0 6-12/3 * 12 * /usr/bin/backup 
周一到周五每天下午 5:00 寄一封信给 alex@domain.name : 
0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata 
每月每天的午夜 020, 220, 420....执行 echo "haha" 
20 0-23/2 * * * echo "haha" 
注意 : 
当程序在你所指定的时间执行后,系统会寄一封信给你,显示该程序执行的内容,若是你不希望收到这样的信,请在每一行空一格之后加上 > /dev/null 2>&1 即可 

例子2 : 
#每天早上61010 6 * * * date 
#每两个小时 
0 */2 * * * date 
#晚上11点到早上8点之间每两个小时,早上80 23-7/28 * * * date 
#每个月的4号和每个礼拜的礼拜一到礼拜三的早上110 11 4 * mon-wed date 
#1月份日早上40 4 1 jan * date 

动动手:看下面是什么意思?

0  6  *  *  *   命令  #每天早上6点执行一次
10  9  1  1  *   命令   #在11910分执行一次
5  3  *  5,7,10  *  命令  # 5710月 每天35分执行一次
*/10 *  *  *  1-3   命令  # 每月 13周 每10分钟执行一次

命令操作例子:
编辑
每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分….向 /tmp/haha.txt 文件中写入 haha

20 0-23/2 * * * echo "haha" >> /tmp/haha.txt 

title
查看
title
都是一些常用的比如 服务重启,备份等等。(备份我们还没学呢)
如下:

开启/关闭服务  
service apache2 start     
service apache2 stop
/usr/local/apache2/bin/apachectl restart
备份文件/目录   /bin/cp  -r   /root/bbs   /backup/

查看和删除定时任务
crontab -l 查看系统定时任务
crontab -r 删除定时任务

crontab -e 进入编辑

注意事项:

*选项都不能为空,必须填入,不知道的值使用通配符*表示任何时间 
*每个时间字段都可以指定多个值,不连续的值用,间隔,连续的值用-间隔
*间隔固定时间执行书写为*/n格式 
*命令应该给出绝对路径 
*星期几和第几天不能同时出现
*最小时间范围是分钟,最大时间范围是月

##三、网络配置
查看:
ifocnfig命令
我当前网卡名字是 ens33 所以下面写的请名字对应,否则报错!
title

1、vi /etc/network/interfaces

添加内容:(根据你的局域网段设置,ip注意不要冲突)

auto ens33
iface ens33 inet static
address 192.168.31.253
netmask 255.255.255.0
gateway 192.168.31.1
dns-nameserver 8.8.8.8

2、重启网络:service networking restart 或者(sudo /etc/init.d/networking restart)
在局域网中访问 192.168.31.253
发现直接访问到了 apache下的/var/www/html 目录
即配置成功
title

3、问题

  1. 发现ifconfig中没有31.253,但是依然可以访问,而且老的31.249也可以访问
    重启后即可。
    网卡有缓存没有刷新
    刷新后如下图:
    title
  2. 重启后发现无法访问外网

设置DNS服务器的信息,vi /etc/resolv.conf
nameserver 180.76.76.76 百度DNS
nameserver 223.5.5.5 阿里DNS
即可访问

4、netstat 查看网络状态的命令
-an 查看所有网络连接
-tlun 查看tcp和udp协议监听端口
netstat -an | grep ESTABLISHED | wc -l 统计正在连接的网络连接数量

5、配置远程ssh连接

  1. 参考:
    www.shxdledu.cn/post/ubuntu-1804-%E...

title

  1. 配置文件改好了记得重启

    sudo service ssh restart

至此,你可以使用xshell和winscp登录了
ip写你的配置ip
账号为你的ubuntu账户 比如我的xdl
密码就是你登录ubuntu密码 我的xxxxx

  1. 连接xshell
    第一次连接提示保存密钥
    title
    进来了
    title

问题:如何使用root用户ssh连接?

:需要修改root密码

一、Ubuntu的
默认root密码是随机的,即每次开机都有一个新的root密码。我们可以在终端输入命令 sudo passwd,然后输入当前用户的密码,
enter,

二、终端会提示我们输入新的密码并确认,此时的密码就是root新密码。修改成功后,输入命令 su root,再输入新的密码就ok了。

解决代码:

xdl@xdl-virtual-machine:~$ sudo vi /etc/ssh/sshd_config
xdl@xdl-virtual-machine:~$ sudo service ssh restart
xdl@xdl-virtual-machine:~$ sudo passwd 
输入新的 UNIX 密码: 
重新输入新的 UNIX 密码: 
passwd:已成功更新密码
xdl@xdl-virtual-machine:~$ su root
密码: 
root@xdl-virtual-machine:/home/xdl# 

再去使用root 用户配合新密码登录xshell即可
搞定
title


扩展阅读:

    scp 网络复制,网络文件传输

        1) 下载
            scp   用户名@ip:路径   本地路径

            scp  root@192.168.137.130:/root/index.php  /root
            scp  -r  root@192.168.137.130:/root/bbs  /root      下载目录

        2) 上传
            scp  本地文件或目录  用户名@ip:路径

            scp  -r  /root/bbs  root@192.168.137.130:/root      上传目录

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
wangchunbo
讨论数量: 0
发起讨论 只看当前版本


暂无话题~