Linux讲解-day2-apt软件包安装-系统管理与应用-网络配置
#Linux-vim与软件包安装
##一、 vim编辑器
vim 全屏幕纯文本编辑器
vim使用
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 为 new
:1,10s/old/new/g 替换1到10行的所有old为new
:%s/old/new/g 替换整个文件的old为new
g代表 范围内所有old换为new
:1,10s/^/#/g 注释
:6,10s/^#//g 取消注释
:11,20s/^/\/\//g 注释 (注释的双// 要转义 \)
:16,20s/^\/\///g 取消注释(再来上一次)
##二、软件包管理
Ⅰ 软件包分类
源码包: .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文件
make后
注:
安装编译软件时的命令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 - 用户名 切换用户身份
###如何查看组信息 用户信息 ?
- 查看当前用户所在组
命令行groups 用户名 - 查看所有的组(在最后面有我们加的)
cat /etc/group - 查看所有用户信息 (在最后面有我们加的)
cat /etc/passwd
##二、进程管理
###进程管理
####进程管理三个主要任务:
- 判断服务器健康状态
- 查看所有正在运行的进程
- 强制终止进程
####进程查看
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 保存退出后,直接生效。)
* * * * * 命令
*口诀: 分 时 日 月 周 + 命令
第一个:一小时中第几分钟 0-59
第二个:一天中第几个小时 0-23
第三个:一个月中第几天 1-31
第四个:一年第几个月 1-12
第五个:一周中星期几 0-6 0表示周日
除了这些固定值外,还可以配合星号(*),逗号(,),和斜线(/)来表示一些其他的含义:
符号 | 含义 | 说明 |
---|---|---|
星号 | 表示任意值 | 比如在小时部分填写 * 代表任意小时(每小时) |
逗号 | 可以允许在一个部分中填写多个值 | 比如在分钟部分填写 1,3 表示一分钟或三分钟 |
斜线 | 一般配合 * 使用,代表每隔多长时间 | 比如在小时部分填写 */2 代表每隔两分钟。 |
注意: */1 和 * 没有区别 */2可以看成是能被2整除的任意值
实例1:
* * * * * # 每隔一分钟执行一次任务
0 * * * * # 每小时的0点执行一次任务,比如6:00,10:00
6,10 * 2 * * # 每个月2号,每小时的6分和10分执行一次任务
*/3,*/5 * * * * # 每隔3分钟或5分钟执行一次任务,比如10:03,10:05,10: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
每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha"
20 0-23/2 * * * echo "haha"
注意 :
当程序在你所指定的时间执行后,系统会寄一封信给你,显示该程序执行的内容,若是你不希望收到这样的信,请在每一行空一格之后加上 > /dev/null 2>&1 即可
例子2 :
#每天早上6点10分
10 6 * * * date
#每两个小时
0 */2 * * * date
#晚上11点到早上8点之间每两个小时,早上8点
0 23-7/2,8 * * * date
#每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * mon-wed date
#1月份日早上4点
0 4 1 jan * date
动动手:看下面是什么意思?
0 6 * * * 命令 #每天早上6点执行一次
10 9 1 1 * 命令 #在1月1号 9点10分执行一次
5 3 * 5,7,10 * 命令 # 5月7月10月 每天3点5分执行一次
*/10 * * * 1-3 命令 # 每月 1到3周 每10分钟执行一次
命令操作例子:
编辑
每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分….向 /tmp/haha.txt 文件中写入 haha
20 0-23/2 * * * echo "haha" >> /tmp/haha.txt
查看
都是一些常用的比如 服务重启,备份等等。(备份我们还没学呢)
如下:
开启/关闭服务
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 所以下面写的请名字对应,否则报错!
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 目录
即配置成功
3、问题
- 发现ifconfig中没有31.253,但是依然可以访问,而且老的31.249也可以访问
重启后即可。
网卡有缓存没有刷新
刷新后如下图: - 重启后发现无法访问外网
设置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连接
配置文件改好了记得重启
sudo service ssh restart
至此,你可以使用xshell和winscp登录了
ip写你的配置ip
账号为你的ubuntu账户 比如我的xdl
密码就是你登录ubuntu密码 我的xxxxx
- 连接xshell
第一次连接提示保存密钥
进来了
问题:如何使用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即可
搞定
扩展阅读:
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 上传目录
推荐文章: