Linux快速入门03-系统管理

这部分将涉及常用的各类linux命令和一些系统高级管理特性,尤其是shell script的创建,这部分在系统自动化运维时会很有作用。

在进入bash介绍之前,首先需要介绍vim编辑器,虽然现在的编辑器已经非常强大, 比如sublime等,但有些场合还是需要简单的使用vim来进行文件的编辑,由于现在这部分内容已经不是重点,因此通过一个简单的表格介绍其最基本的几个命令。


命令


示例


编辑w文本


vi test.txt,默认进入命令模式


编辑模式


通过i字符进入


命令模式


通过[Esc]进入,通过:wq完成编辑并保存,其中w表示保存,q表示退出,:q!表示强制退出不保存


常见快捷键


dd删除所在行,yy复制所在行,[ctrl]+r重做上一个操作

u复原前一个操作

接下来开始bash常用命令介绍,内容比较多,需要有点耐心。这部分内容推荐把bash脚本当做一个全新的语言进行学习,这个力度将会使你很好的掌握bash。


命令


示例


type name


查看命令信息


变量的显示、设置和取消


echo $PATH, name=xionger, unset name


环境变量


HOME:用户主文件,SHELL:默认为/bin/bash

HISTSIZE:临时命令条数,PATH:执行文件查找路径,用:分隔


locale


查看系统语言环境信息,可以通过/etc/sysconfig/i18n


从键盘读取用户输入


read [-pt] variable

read -p ‘please keyin your name: ‘ -t 30 named


声明变量declare


默认定义为字符串

declare –a,定义变量为数组

declare –i,定义变量为整数

declare –x,用法与export一样,将之后变量设置为环境变量

declare –r,设置为readonly


alias,unalias


给长命令设置/取消别名


history


查看已使用命令,history | grep named


相关配置文件


~/.bash_profile, /.bash_login, /.profile

可以通过source 配置文件,读入环境配置


数据流重定向


ll / > ~/temp/llShow.txt,一个>表示方式,2个表示append方式


命令执行的判断依据


; && ||


Pipe管道命令


后续命令依赖于前一个命令的结果,ls –al /etc | less


常用字符串命令


cut –c 分割字符; grep 字符串,查找包含此字符串的行

sort排序命令; uniq去重命令;wc获取行数

其他命令:tr,col,join,paste,expand,split

Tip:如果命令太长,可以使用\[Enter]方式换行。

正则表达式在Linux的应用:正则的概念和使用大家已经非常熟悉,这儿就不做介绍了,可参考博文--正则表达式。这儿主要介绍其在系统中的使用,目的只有一个,为之后的运维脚本提供基础。通常正则会用在grep命令中,比如 grep –n ‘the‘ demo.txt,这儿的the可以用任意正则pattern替换。此外,可以通过sed、awk工具帮助查询脚本,需要时查询相关文档即可。

 1 #!/bin/bash
 2 # program:用户输入一个文件名,系统检查其目录和权限
 3 # History:2016
 4 PATH=/bin:/sbin:/user/bin:/user/sbin:~/bin
 5 export PATH
 6
 7 #1.输入文件名
 8 echo -e "please input a filename, it will check the filename‘s type and \
 9 permission \n\n"
10 read -p "input filename : " filename
11 test -z $filename && echo "you must input a filename" && exit 0
12 #2.判断文件是否存在
13 test ! -e $filename && echo "the filename ‘$filename‘ is not existed " &&exit 0
14 #3.判断文件类型
15 test -f $filename && filetype=‘regular file‘
16 test -d $filename && filetype=‘directory‘
17 test -r $filename && perm=‘readable‘
18 test -w $filename && perm=‘$perm writable‘
19 test -x $filename && perm=‘$perm executable‘
20 #4.输出信息
21 echo "The filename: $filename is a $filetype"
22 echo "And the permissions are : $perm"

常见逻辑结构


逻辑结构


示例


判断结构


if ["$yn"=="y"] || ["$yn"=="Y"]; then

echo "OK,continue"

elif ["$yn"=="n"] || ["$yn"=="N"]; then

echo "Fail"

else

echo "Default"

fi


循环结构


for username in $users

do

id $username

finger $username

done


函数


function printit(){}

在Linux中,用户的账号信息都保存在/etc/passwd文件中,常见的账号管理命令如下所示。


命令


示例


组命令


groups查看当前组,newgrp创建新组


用户命令


useradd创建用户,passwd修改密码,chage显示密码详细信息

usermod修改用户信息, userdel删除用户


Acl权限


Getfacl, setfacl


用户身份切换


su切换用户, sudo模拟root进行操作,非常有用,比如安装软件

sudo apt install xxx


pam模块


Pluggable Authentication Modules用于用户认证


信息查询


w, who获取账号登录信息,last,lastlog

接下来,介绍linux关于文件系统的一些高级概念。

磁盘配额Quota:用于管理每个用户可用的磁盘大小,包括一个hard阀值和一个soft阀值。

软件磁盘阵列Software RAID:比如RAID-0性能最佳,RAID-1完整备份,RAID-0+1兼顾性能和备份,RAID-5通过同位检查码parity来均衡性能和安全,任何一个盘损坏,均可恢复,通过/etc/madadm.conf配置。

逻辑卷管理器LVM(Logical Volume Manager):涉及5个主要概念,PV表示物理卷,VG表示卷用户组,PE表示物理扩展块,LV表示逻辑卷。

Tip:现在流行的Docker就是建立在LXC上的容器引擎,这部分内容还需要加强。

我们常见的Job类型工作在Linux中被称为crontab例行性任务,系统中常见的例行性工作包括:进行日志文件的轮替,日志文件分析Logwatch任务,新建locate数据库,whatis数据库的建立,RPM软件日志文件的新建,删除临时文件,与网络服务有关的分析行为。

仅执行一次的工作:/etc/init.d/atd restart, chkconfig atd on, at now + 5 minutes

循环性的例行工作:59 23 1 5 * mail tete < /home/xionger/lover.txt 每年给女友发邮件,系统配置文件/etc/crontab

之后介绍Linux的进程管理,Linux的进程也包括进程控制块PCB和数据部分,前者包含PID和权限相关信息,数据部分包含了程序所需的代码和相关资料,对其管理的相关命令如下所示。


命令


示例


工作管理


Jobs查看当前工作,kill –pid关闭后台进程


进程查看


ps aux, ps aux | egrep ‘(cron|syslog)‘

top动态查看进程变化

pstree查看进程树

ps aux | grep ‘syslog‘ | grep -v ‘grep‘ | awk ‘{print $2}‘

killall -9 httpd终止所有以httpd启动的进程


进程优先级


ps -l, nice, renice [number] PID


系统资源的查看


free查看内存信息;uname查看内核信息;

uptime查看系统启动时间和工作负载

netstat:跟踪网路

其他命令:dmesg, vmstat

cat /etc/services

最后介绍,个人觉得比较重要的系统服务和日志分析部分。在Linux中,daemon后台进程(也就是服务)包含两类,一种是stand_alone的,一种是由super daemon统一管理的。通常来说,每一个服务都具有一个指定的端口,比如http服务的80端口,ftp服务的21端口。服务的启动脚本将放置在/etc/init.d/*中,其相关初始化配置文件放在/etc/sysconfig/*中,super daemon的配置文件在/etc/xinetd.conf,/etc/xinetd.d/*中,服务自身的配置文件放在/etc/*中,服务产生的数据放在/var/lib/*中,服务的PID则记录在/var/run/*中。可以通过service xxx restart启动服务,通过service --status-all查看服务状态。

Tip:可以通过修改/etc/hosts.allow和/etc/hosts.deny来设置白/黑名单。

在Linux中,常见的日志文件通常在/var/log/目录, cron为工作调度日志,dmesg为内核检测信息,lastlog所有账号最近一次登录信息,maillog邮件相关信息(SMTP, POP3),messages系统错误信息,secure登录相关安全信息,httpd网络服务信息。

那么记录日志文件的服务是什么呢?syslogd,可以通过如下命令查看:ps aux | grep syslog, chkconfig --list syslog,为了保护日志文件,我们可以通过chattr –a来实现。此外,日志的轮替是通过logroate服务来实现的,其配置文件为/etc/logrotate,conf,/etc/logrotate.d目录中文件均会被读入配置。(注意在阿里云中,ubuntu14.0.0,所有的syslog均变为rsyslog).

此外,linux常见的日志分析工具包括logwatch,可以定期将分析报告发送到你的邮箱,如果需要更进一步的自定义分析,到时参阅资料即可。

"人活着就要实现自己吹过的‘牛逼‘"--佚名

参考资料:

  1. 鸟哥. 鸟哥的Linux私房菜基础学习篇(第三版)[M]. 北京:人民邮电出版社, 2010.
时间: 2024-10-31 01:42:33

Linux快速入门03-系统管理的相关文章

Linux快速入门04-扩展知识

这部分是快速学习的最后一部分知识,其中最重要的内容就是源码的打包和软件的安装的学习,由于个人的Linux学习目的就是自己能在阿里云Ubuntu上搭建一个简单的nodejs发布环境. Linux系列文章 快速入门系列--Linux--01基础概念 快速入门系列--Linux--02文件系统管理 快速入门系列--Linux--03系统管理 快速入门系列--Linux--04扩展知识 由于现在均是使用云平台,这部分内容已完全透明,因而只做一个简单的了解,整个linux的启动过程包含如下8个步骤: 1.

Linux快速入门打开你的学习之道

相信看到这篇文章的你一定是想要学习Linux,或者已经在学习Linux的人了,那我们就可以一起探讨一下,学习Linux如何快速入门呢? 首先,希望大家弄清楚自己为什么要学习Linux,有的人是因为兴趣,有的人是因为Linux比较好找工作,兴趣驱使的那部分人找好方法学习Linux就差不多了.另一部分为了工作来学习Linux的人,不仅要找到合适自己的方法,而且还要更加努力,有自己的计划.但是无论是什么原因学习Linux的,方法还是差不多的,想要快速入门,首先你要选择一本基础书籍带你入门,开始的时候我

如果你是小白,linux快速入门技术值得你收藏

Linux是一个操作系统软件. 与Windows不同的是,Linux是一套开放源代码程序的.并可以自由传播的类Unix操作系统,它是一个支持多用户.多任务.多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程序和网络协议.它支持32位和64位硬件. Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统. 如何快速入门,需要哪些知识点?1:linux环境专栏 linux系统安装 linux开发环境ssh与Samba配置 linux开发环境Gcc配置 li

Linux快速入门02-文件系统管理

继续进入Linux文件系统的学习,加油,早日突破MS压在自己身上的那道束缚. 文件属性基本概念:文件所有者,文件组,其他人. 对上图来说,-rw-r—r—表示文件的权限,1表示连接数,两个root分别表示所有者和用户组,264表示文件大小(单位为B),之后信息为文件修改日期和文件名(.开头表示隐藏文件). 这部分最终要的概念就是文件权限,可以将文件权限部分内容分为之后的4个部分来理解,例如对于[-][rwx][r-x][r--],有: 部分 诠释 第一部分[-] 文件类型,d表示目录,-表示文件

UML建模快速入门03 基本结构建模 CLASS

2015/03/25 - 07:19 [声明]欢迎转载,但请保留文章原始出处:http://blog.csdn.net/yelangjueqi/article/details/44733433 1,入门 类是任何面向对象系统中最重要的模块.类是对一组具有相同属性.操作.关系和语义的对象的描述.一个类可以实现一个或多个接口. 类可以用来捕获正在开发的系统中的词汇.这些类可以包括作为问题域一部分的抽象,也可以包括构成实现的那些类.可以用来描述软件事物和硬件事物,甚至可以描述纯粹概念性的事物. UML

Linux快速入门01-基础概念

4年多前,刚到上海时报过一个关于Oracle的培训班,在那里接触到了Linux,不过一直都没真正去试着使用它.现在经过慢慢的成长,越来越觉得,Linux是每一个服务端工程师必须掌握的系统,即使是现在最为火热的.NET开源潮流,也离不开对Linux系统的学习.本系列学习将以鸟哥真神的<鸟哥私房菜>一书作为基础,最新的Ubuntu16系统(相比CentOS,其界面更加友好,使用起来比较嗨森,快乐是坚持学习的源泉哈)作为环境来进行,让我们和Linux企鹅一起飞向星辰大海吧. Linux的内核是有Li

linux快速入门 1.1命令行操作

http://lovesoo.org/linux-command-line-operation.html 1.1命令行操作 目录: <wp_nokeywordlink>Shell简介 <wp_nokeywordlink>Shell 控制台使用方法 1.1.1 Shell简介 shell 是用户和Linux 操作系统之间的接口.Linux 中有多种shell,其中缺省使用的是bash. Linux 系统的shell 作为操作系统的外壳为用户提供使用操作系统的接口,它是一个命令语言解释

UML建模快速入门00 Outline

Preface UML建模,其重要性不言而喻,本人虽然大学期间就早已知其大名,无奈因各种因素总是拿起又放下,未能持续研究,几经断断续续,一直未持续深入读完一本书.最近越发觉得逆向工程(由代码生成UML)在日常整理中的重要性及方便性,便又捡起书本,觉得应该好好看看,边看边画,对很多概念又有了较深入的理解,对以前模糊的概念更加明晰些了.说实在的,这次拿起书本来看,主要有两个原因:一是觉得UML建模确实应该作为码工具备的一个技能,二是为了提升下逼格. 为了记录个人历经的路程,后续将推出系列快速入门读书

2018年最新Linux云计算入门学习路线图

近年来,Linux在技术行业里的重要性越来越高,成为了IT从业者的必备技能之一,据统计,Linux相关岗位增长达到了惊人的24%.市场需求扩大后Linux技术人员的薪资也一路上升,1-3年Linux运维工程师的平均薪资上升了13%. 因为几年来很多人都选择转行从事Linux运维行业,入门学习的需求很旺盛,在这几年中也出现了不少对新手非常友好的入门学习路线图.然而从2017年中段开始,Linux运维的技能需求变化很大,这些入门学习路线路线图大部分已经不适应新时代的技能需求了.举例而言,Kubern