Linux快速入门04-扩展知识
这部分是快速学习的最后一部分知识,其中最重要的内容就是源码的打包和软件的安装的学习,由于个人的Linux学习目的就是自己能在阿里云Ubuntu上搭建一个简单的nodejs发布环境。
Linux系列文章
由于现在均是使用云平台,这部分内容已完全透明,因而只做一个简单的了解,整个linux的启动过程包含如下8个步骤:
1.加载BIOS的硬件信息与进行自我检测,并依据设置取得第一个可启动的设备。
2.读取并执行第一个启动设备内MBR的boot Loader(即grub,spfdisk等程序)
3.依据boot loader的设置加载kernel,内核会开始检测硬件与加载驱动程序
4.加载完硬件驱动,内核会主动调用init进程,而该进程回去run-level信息
5.init执行/etc/rc.d/rc/sysinit文件来准备软件执行的操作环境(如网络,时区)
6.init执行run-level的各个服务的启动(script方式,可以添加自己的服务)
7.init执行/etc/rc.d.rc.local文件
8.init执行终端机模拟城西mingetty来启动Login进程,最后等待用户登录。
这部分有关的命令包括:runlevel查看当前runlevel;内核依赖性的查看; lsmod内核模块的查看;modinfo mii查看指定模块信息;insmod载入内核模块;rmmod删除内核模块;modprobe是一个增强性的命令,参数-c列出所有系统模块,-f加载模块,-r删除模块。
在linux世界中,最吸引人的莫过于开源代码了,比如Linux上最标准的程序语言C,我们使用C语法进行源代码飙血,写完后使用gcc进行编译,就可以制作一个可以执行的二进制文件。比如,用C语言编写一个hello.c,然后使用gcc –c hello.c编译生成hello.o目标程序,最后运行hello.o即可,如果需要外部库还涉及链接操作。不过这种方式在源文件很多时非常不便,通常来说,我们下载的源文件中都包含./configure文件用于生成Makefile文件,其用于管理编译过程,接下来介绍完整的安装过程。
1.取得源文件,将tarball文件解压在/usr/local/src目录
2.进入新建目录下,阅读install与readme文件,安装一些前置软件
3.通过./configure自动检测程序检测OS,并建立Makefile文件
4.使用make命令,其通过MakeFile文件中的参数进行编译操作
5.使用make install命令,也通过MakeFile文件中的参数完成安装
之前介绍的源码安装方式当应用程序很少时足以支撑,但当安装涉及大量依赖软件,且版本很多时,将会成为一个巨大的噩梦,这是就要推荐linux发行版推出的便捷安装方式了。通常来说,包括2大阵营,一个是Debian社区的dpkg,比如我用的Ubuntu就是该阵营,适合小微企业;还有一个是RadHat的RPM(RedHat Package Management)阵营,其中包括CentOS等熟知发行版,这部分一般用在集群超过10台服务器的中大型应用。
对于Ubuntu来说,安装命令:sudo apt install xxx
对于RedHat,安装命令:rpm –ivh package_name; 安装/升级软件:yum install pam-devel。可以通过rpm -qa查找包名,之后使用rpm -ql xxxx查找包的安装地址。
Linux中,备份通常都是首先建立完整备份,然后据此进行增量或差异差异备份。通常使用的工具有dd,cpio,dump/restore,也可以使用tar进行备份,使用rsync进行镜像备份,,一个推荐的备份方案如下所示,最后会附上相应的备份脚本。
1.主机硬件:使用一个独立的文件系统来存储备份数据,此文件系统挂载在/backup中
2.每日进行:备份MySQL数据库
3.每周进行:包括/home,/var,/etc/boot,/usr/local等目录与特殊服务的目录
4.自动处理:这方面利用/etc/crontab来自动提供备份的进行
5.远程备份:每月定期将数据传输到另一台机器上
第一部分/backup/backupwk.sh #!/bin/bash #每周的备份脚本 # History: PATH=/bin:/sbin:/user/bin:/user/sbin; export PATH export LANG=C basedir=/backup/weekly named=$basedir/named postfixd=$basedir/postfixd vsftpd=$basedir/vsftpd sshd=$basedir/sshd sambad=$basedir/sambad wwwd=$basedir/wwwd others=$basedir/others userinfod=$basedir/userinfod for dirs in $basedir $named $postfixd $vsftpd $sshd $wwwd $others $userinfod do [ ! -d "$dirs" ] && mkdir -p $dirs done #.将系统主要服务的配置文件分别备份下来,同时也全部备份/etc cp -a /var/named/chroot/{etc,var} $named cp -a /etc/postfix /etc/dovecot.conf $postfixd cp -a /etc/vsftpd/* $vsftpd cp -a /etc/ssh/* $sshd cp -a /etc/named/samba/* $sambad cp -a /etc/{my.cnf,php.ini,httpd} $wwwd cd /var/lib tar -jpc -f $wwwd/mysql.tar.bz2 mysql cd /var/www tar -jpc -f $wwwd/html.tar.bz2 html cgi-bin cd / tar -jpc -f $others/etc.tar.bz2 etc cd /usr/ tar -jpc -f $others/local.tar.bz2 local #2.关于用户参数 cp -a /etc/{passwd, shadow, group} $userinfod cd /var/spool tar -jpc -f $userinfod/mail.tar.bz2 mail cd /var/spool tar -jpc -f $userinfod/home.tar.bz2 home cd /var/spool tar -jpc -f $userinfod/cron.tar.bz2 cron at 第二部分backupday.sh #!/bin/bash #每日的备份脚本 # History:2016 PATH=/bin:/sbin:/user/bin:/user/sbin; export PATH export LANG=C basedir=/backup/daily basefile1=$basedir/mysql.$(date +%Y-%m-%d).tar.bz2 basefile2=$basedir/cgi-bin.$(date +%Y-%m-%d).tar.bz2 [! -d "$"] && mkdir $basedir cd /var/lib tar -jpc -f $basefile1 mysql cd /var/www tar -jpc -f $basefile2 cgi-bin 第三部分vi /etc/crontab 30 3 * * 0 root /backup/backupwk.sh 30 2 * * * root /backup/backupday.sh
"真正的才智是刚毅的志向。" --拿破仑
Tip:由于ubuntu下没有chkconfig模块,因此可以通过安装rcconf小工具来管理默认启动服务。
参考资料:
- 鸟哥. 鸟哥的Linux私房菜基础学习篇(第三版)[M]. 北京:人民邮电出版社, 2010.
Linux快速入门04-扩展知识的更多相关文章
- Linux快速入门教程-进程管理ipcs命令学习
使用Linux系统必备的技能之一就是Linux进程管理,系统运行的过程正是无数进程在运行的过程.这些进程的运行需要占用系统的内存等资源,做好系统进程的管理,对于我们合理分配.使用系统资源有非常大的意义 ...
- Linux快速入门打开你的学习之道
Linux快速入门打开你的学习之道 相信看到这篇文章的你一定是想要学习Linux,或者已经在学习Linux的人了,那我们就可以一起探讨一下,学习Linux如何快速入门呢? 首先,希望大家弄清楚自己为什 ...
- Linux快速入门01-基础概念
4年多前,刚到上海时报过一个关于Oracle的培训班,在那里接触到了Linux,不过一直都没真正去试着使用它.现在经过慢慢的成长,越来越觉得,Linux是每一个服务端工程师必须掌握的系统,即使是现在最 ...
- Linux快速入门02-文件系统管理
继续进入Linux文件系统的学习,加油,早日突破MS压在自己身上的那道束缚. Linux系列文章 快速入门系列--Linux--01基础概念 快速入门系列--Linux--02文件系统管理 快速入门系 ...
- Linux快速入门03-系统管理
这部分将涉及常用的各类linux命令和一些系统高级管理特性,尤其是shell script的创建,这部分在系统自动化运维时会很有作用. Linux系列文章 快速入门系列--Linux--01基础概念 ...
- NOI Linux 快速入门指南
目录 关于安装 NOI Linux 系统配置 网络 输入法 编辑器 1. gedit 打开 配置 外观展示 2. vim 打开 配置 使用 makefile 编译运行 1. 编写 makefile 2 ...
- linux快速入门 1.1命令行操作
http://lovesoo.org/linux-command-line-operation.html 1.1命令行操作 目录: <wp_nokeywordlink>Shell简介 &l ...
- Linux基础入门--04
目录结构及文件基本操作 实验介绍: 1.Linux 的文件组织目录结构. 2.相对路径和绝对路径. 3.对文件的移动.复制.重命名.编辑等操作. 一.Linux 目录结构 在讲 Linux 目录结构之 ...
- SQLAlchemy 快速入门、基础知识
SQLAlchemy 是Python 编程语言下的一款开源软件.提供了SQL工具包及对象关系映射(ORM)工具. ORM, 全称Object Relational Mapping, 中文叫做对象关系映 ...
随机推荐
- 提取c#代码文件中的方法块
此方法是取C#文件里面的方法块,并删除缩进符,感觉写得还是比较容易懂的,所以收藏下,以便将来用到. private static string GetCodeBlock(string allCo ...
- iOS游戏截图或广告图尺寸要求
统一的标准:72 dpi,RGB,扁平化,非透明,高质量的JPEG或者PNG文件格式 ====================================================== 3. ...
- linux下的5个查找命令
在Linux中,有很多方法可以做到这一点.国外网站LinuxHaxor总结了五条命令,你可以看看自己知道几条.大多数程序员,可能经常使用其中的2到3条,对这5条命令都很熟悉的人应该是不多的. 1. f ...
- API测试-Super Test
框架选择 Super Test:基本的HTTP请求,返回判断 Chai:对返回的结果进行判断 grunt:集成jenkins grunt-mocha-test:grunt任务 Jenkins环境配制 ...
- ibatis 使用 in 查询的几种XML写法
原文地址:http://blog.csdn.net/dracotianlong/article/details/35303593 这里摘抄学习 1.传入参数是数组 <select id=&quo ...
- col-md-*,col-xs-*
class属性 col-md-*,md 表示 medium (中等的),* 代表一个数字,它指定了这个元素所占的列宽. 在中等大小的屏幕上(例如笔记本电脑),元素的列宽被指定了. col-xs-* , ...
- 【解题报告】BZOJ2550: [Ctsc2004]公式编辑器
题意:给定一个可视化计算器的操作序列,包括插入数字.字母.运算符.分数.矩阵以及移动光标.矩阵插入行.插入列,输出操作序列结束后的屏显(数学输出). 解法:这题既可以用来提升OI/ACM写大代码模拟题 ...
- 使用.net Reflector手动修改单个dll文件
在项目中修改bug会存才版本混乱的问题,加上dll中的依赖项目比较多,想要修改单个dll文件中的少量代码是很麻烦的. 可以使用Reflector和Reflexil可以手动修改单个dll文件,我使用的是 ...
- C++函数返回局部指针变量
遇到过好几次关于函数返回指针变量问题,有时候是可以的,有时候是不可以的,然后就混乱了.今天研究了下,结果发现原来和内存分配有关. 用下面的例子分析下吧: char * test() { char a[ ...
- Java实现四则运算,使用堆栈,检查语法
突然发闲想试一试自己实现算术的四则运算,支持加减乘除和括号.正负号:支持语法检查:思路很常规,利用两个堆栈,一个压操作符,一个压操作数,念头冒出来之后,立马动手:然后本以为很容易的一个实现,却存在各种 ...