linux 笔记

Posted a笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 笔记相关的知识,希望对你有一定的参考价值。

一、linux系统管理与维护

1、分区:/boot(100-200m)

swap:(交换分区,建议是物理分区的1.5-2倍)

/:剩余空间

root是管理员用户,区分于administrator

2、对初学者建议:关闭iptables

a、chkconfig iptables off

b、打开/etc/sysconfig/selinux文件,修改“SELINUX=disabled”,保存并退出

注意:两项都要关闭,然后reboot重启生效。

3、MBR引导:

位于磁盘的0柱面0磁道1扇区,共512字节

512=446+64+2(446字节为grub引导器,64字节是分区表,2字节是结束标记)

grub菜单:对应文件是/boot/grub/grub.conf

加载内核:内核所对应的文件在/boot下

4、init进程:由linux内核加载运行/sbin/init

是系统中第一个进程,PID号永远为1

5、配置默认运行级别:/etc/inittab

例如:/etc/init/control-alt-delete.conf 控制终端下的ctrl+alt+del热键操作

6、runlevels(运行级别):0关机6重启5图形,3完整字符,2不支持网络字符,

1(单用户,即不需要密码可登录,多用于系统维护),4未分配,一般不用

vi的使用:vim 文件名

按i键--修改内容--按esc键--:wq(保存并退出),加!表示强制执行。

7、服务的控制:

方法一:service 服务名亨 控制类型 

方法二:/etc/rc.d/init.d/服务名称 控制类型

控制类型:start|stop|restart|reload(重载)|status(查看状态)

例如:重启network服务

service network restart

或/etc/rc.d/init.d/network restart 

8、查看当前的运行级别:runlevel

系统服务管理工具(控制开机自启动):

(1)ntsysv:交互式,有菜单选项。按空格启用或停用,tab切换

(2)chkconfig:纯命令配置

查看当前服务的默认启动状态:chkconfig --list

修改服务在某个级别的开机自启动:chkconfig --level 级别 服务名 on(或者off)

二、目录和文件管理

1、查看文件的内容:

cat:显示文件的内容(如果内容多,则只显示最后一屏)

more:分屏显示文件

less:分屏显示文件内容,但是扩展功能多

head:只看文件的首(首行依次往下) ,head -n(n可理解为页数)

tail:查看文件的尾(同head,顺序相反)

例如:;shift + page up(down)翻页,tail -f:跟踪日志文件

2、wc命令:统计文件内容(-l行、-c字节、-w单词数)

3、grep命令:检索和过滤文件内容

常用命令选项:-i查找时忽略大小写,-v反转查找,输出与查找条件不相符的行

查找条件设置:a.要查找的字符以双引号括起来

b."^......"表示以...开头,"......$"表示以...结尾

c."^$"表示空行

4、压缩和解压缩(只能针对文件压缩)

a.压缩(文件)

gzip 文件名(压缩后的后缀为gz)

bzip2 文件名(压缩后的文件为bz2)

b.解压缩

解压gz:

gzip -d 或gunzip

解压bz2:

bzip2 -d 或bunzip2

制作一个大文件:cat /dev/zero > 文件名 (ctrl+c结束)

5、归档和压缩tar(文件或文件夹)

a.归档并压缩

tar czf .tar.gz 需要压缩的文件或目录(压缩为gz格式)

tar cjf .tar.bz2 需要压缩的文件或目录(压缩为bz2格式)

b.解压缩

解压 .tar.gz:

tar zxf   .tar.gz文件

解压 .tar.bz2

tar xjf  .tar.bz2文件  

解压的选项:(-C 目标位置) 注意:C为大写

6、vi编辑器

vi的使用:

A.vi的三种模式以及模式的切换:

光标的移动:#G(指定跳转到哪一行)

复制(yy 或者#yy表示从哪一行开始复制)、粘贴(P)、删除(x表示删除

删除一个字符,而dd或者#dd表示删除行)

查找:/查找内容(从上至下)、?查找内容(从下至上查)

撤销:d,如果单个字符撤销,为u

B.末行模式下使用:

显示行号(:set nu),(:set nonu表示取消)

保存和退出:w保存,q退出,wq表示保存并退出,加!表示强制执行

查找和替换:(: % s /old/new/g)

注:%--代表整个文档、g--代表整行

在行号"#,#"范围内替换所有字符串:(:#,# s /old/new/g)

三、 安装及管理程序

1、查询已安装的rpm软件信息

格式:rpm -q(子选项) (软件名)

-qa:查看系统中已安装的所有rpm软件包列表

-qi:查看指定软件的详细信息

-ql:查询指定软件包所安装的目录、文件列表

-qc:仅显示指定软件包安装的配置文件

-qd:仅显示指定软件包安装的文档文件

2、查询文件或目录属于哪个rpm软件

格式:rpm -qf 文件或目录名

3、查询未安装的rpm包文件信息:

格式:rpm -qp(子选项)rpm包软件

-qpi:通过.rpm包文件查看该软件的详细信息

-qpl:查看.rpm安装包内所包含的目录,文件列表

-qpc:查看.rpm安装包内所包含的配置文件列表

-qpd:查看.rpm安装包内包含的文档文件列表

4、光盘的挂载

mount /dev/cdrom(设备) /media(目录)

注意:与windows的使用光盘的习惯要区分开,linux必须挂载或卸载。

查看挂载情况:mount

光盘的卸载:umount /dev/cdrom 或umount /media

5、rpm包的安装

rpm -ivh(不区分先后顺序) rpm软件包名

-i(安装)、-U(升级)、-F(更新)、-v(显示信息)、-h(显示安装进度,“#”表示)

6、rpm包的卸载:

rpm -e 软件包名

--nodeps(忽略依赖关系)、--force(强制)

7、维护rpm数据库

重建rpm数据库:rpm --rebuilddb 或 rpm --initdb

8、编译安装过程:

a、tar解包——下载源代码安装包文件

用途:解压并释放源代码包到指定的目录。

b、(./configure配置)

用途:设置安装目录、安装模块等选项

c、make编译

用途:生成可执行的二进制文件

d、make install安装

用途:复制二进制文件到系统,配置应用环境

e、测试及使用

相关命令:cp * 复制所有文件

源码包存放位置:/usr/src

源码包安装的位置:/usr/local

访问linux网页加端口号(:10000),可输入root和密码访问

四、 账号和权限管理

用户管理:

1、用户相关的配置文件

/etc/passwd(保存用户)

/etc/shadow(用户密码文件)

/etc/skel(用户模板文件)

2、用户相关的命令

useradd(创建用户)、passwd(修改密码)、userdel(删除用户)、usermod(修改用户属性)

useradd选项:

-d:指定用户的宿主目录位置

-e:指定用户账号失效时间

-g:指定用户的基本组名(或GID号)

-G:指定用户的附加组名(或GID号)

-s:指定用户的登录shell

passwd (选项) 用户名

-d:删除密码,root才能受用

-f:强制执行

-k:设置只有在密码过期失效后,方能更新

-l:锁住密码

-u:解锁账号

-s:列出密码相关的信息,root才能使用

usermod命令:

格式:usermod (选项)用户名

注:usermod可用来修改用户账号的各项设定

-L:锁定用户账户

-U:解锁用户账户

由于选项与useradd命令中的含义大致相同,此处不做详解

chage -l 用户(查看用户账户信息)

删除用户账号:

userdel命令

格式:userdel (-r) 用户名

此处补充一个知识点:!命令可以从历史记录中找出你所需要的命令行,history可得到历史命令的序号

3、组的管理

a、组相关的配置文件:/etc/group

b、组相关的命令:groupadd -g (创建组)、groupdel(删除组)、gpasswd(将用户添加到组中)

gpasswd命令:

格式:gpasswd (选项) 组账号名

-a:向组内添加一个用户

-d:从组内删除一个用户成员

-M:定义组成员列表,以逗号分隔(附加组)

补充:

a、id命令

用途:查询用户身份标识 (id 用户名)

b、groups命令

用途:查询用户所属的组

groups 用户名

c、finger命令

finger 用户名

d、users、W、who命令

用途:查询已登录到主机的用户信息

五、 磁盘和文件系统管理(一)

磁盘管理:

1、查看磁盘分区

fdisk -l

2、磁盘分区(此处以/dev/sdb为例)

fdisk /dev/sdb

m——查看帮助,n——创建分区(p为主,e为扩展,l为逻辑)

d——删除分区,p——查看分区,w——保存并退出,q——不保存退出

3、创建文件(俗称格式化)

1)、格式化为ext4

mkfs -t ext4 /dev/sdb1

或者mkfs.ext4 /dev/sdb1

2)、格式化为swap

mkswap /dev/sdb5 (转换为swap)

swapon /dev/sdb5 (启用)

swapoff /dev/sdb5(禁用)

4、挂载和卸载(此处注意区分临时挂载和永久挂载)

1)、临时挂载

a、挂载一个分区(/dev/sdb1)

mount /dev/sdb1 /share(目录可自定义,但必须是真实创建的)

b、挂载一个光驱设备

mount /dev/cdrom /media

c、挂载一个光盘镜像(后缀为.iso)

先制作一个光盘镜像文件

cp /dev/cdrom a.iso

mount -o loop a.iso /挂载目录

2)、卸载

umount /设备名 或 umount /挂载点

3)、永久挂载

使用vim修改/etc/fstab文件,

添加一行:

/dev/sdb1 /share ext4 defaults 0 0 

5、查看磁盘使用情况或挂载情况

1)、查看挂载情况:mount

2)、查看磁盘使用情况:df -hT

六、 磁盘和文件系统管理(二)

主要命令:

pvcreate 设备名1 (设备名2)

vgcreate 卷组名 物理卷名1 物理卷名2

lvcreate -L 容量大小 -n 逻辑卷名 卷组名

lvextend -L +大小 /dev/卷组名/逻辑卷名

lvm的步骤:整个磁盘或分区——pv——vg——lv——格式化——挂载

1、创建pv(此处以/dev/sdb1,/dev/sdc1为例)

pvcreate /dev/sdb1 /dev/sdc1

2、创建vg

vgcreate share /dev/sdb1 /dev/sdc1

3、创建lv

lvcreate -L 30G -n test share 

4、格式化

mkfs -t ext4 /dev/share/test

5、挂载

mount /dev/share/test /mailbox

6、扩展lv

lvextend -L +9G /dev/share/test 

7、扩展后,需在线更新文件系统

resize2fs /dev/share/test

8、扩展vg

vgextend share /dev/sdb1

用户配额实验:

1、修改/etc/fstab文件,支持配额

/dev/share/test /mailbox ext4 defaults,usrquota,grpquota 0 0

2、重新挂载或重启系统(使/etc/fstab生效)

umount /mailbox ——mount /mailbox

3、生成配额文件

quotacheck -aucgv

4、启用配额文件(所有)

quota -a

5、设置配额

edquota -u 用户

edquota -g 组

6、测试配额(测试配额生效否)

cat /dev/zero > 文件名 ,分别切换用户登录

7、查看配额使用情况

quota -u 用户

quota -g 组

repquota -a查看所有

组的配额:

组中的用户共用空间大小和文件数,只对基本组生效,附加组不生效。

配置过程与用户配额步骤一样,只需修改

edquota -g 组,使用测试即可

添加用户到基本组:useradd -g 组名 用户名

添加用户并加入到附加组

useradd -G 组名 用户名

创建组

groupadd 组名

七、 进程和计划任务管理

1、查看进程信息

1)、查看静态的进程信息

ps aux

2)、查看动态的进程信息

top

3)、根据条件查询进程信息

pgrep -l “进程名”

4)、查看进程树

pstree -aup

2、进程启动

1)、手工启动:前台 后台(&)

2)、调度启动:at(一次性)、crontab(周期性)

3、漏斗命令:cat /dev/zero(表永远读不完的0) > /dev/null(表永远写不满的文件)

4、结束进程

1)、ctrl+c(正在运行的进程)

2)、kill(杀进程的PID)

格式:kill PID号 

选项 -q表强制

3)、killall(杀进程名)

格式:kill all

4)、pkill(根据特定条件杀进程)

pkill -q -U “张三” (以用户张三为例)

5、at(一次性)

服务脚本:/etc/init.d/atd

格式:at 时:分 年-月-日 

ctrl +d表提交任务

相关命令:

at(设置)        查看当前时间:date

atq(查询)       修改时间 date -s 时:分

atrm(删除)      修改日期:date -s 年月日

6、crontab(周期性)

服务脚本:/etc/init.d/crond

格式:

分 时 日 月 星期(0,7代表周日) 命令或脚本(绝对路径)

相关命令:

crontab -e 编辑

crontab -l 查看

crontab -r 删除

时间数值的特殊表示方法:

*:表示该范围内的任意时间

,:表示间隔的多个不连续时间点

-:表示一个连续的时间范围

/:指定间隔的时间频率

八、 分析和排查系统故障

日志的分类:

内核及系统日志、用户日志、程序日志

日志保存位置:

默认位于:/var/log目录下

内核及公共消息日志:/var/log/messages

计划任务日志:/var/log/cron

日志消息重要程度:

0 EMERG(紧急):会导致主机系统不可用的情况

1 ALERT(警告):必须马上采取措施解决的问题

2 CRIT(严重):比较严重的情况

3 ERR(错误):运行出现错误

4 WARNING(提醒):可能影响系统功能,需提醒用户的重要事件

5 NOTICE(注意):不会影响系统功能,但是需要注意的事件

6 INFO(信息):一般信息

7 DEBUG(调试):程序或系统调试信息等。

九、 linux基础网络设置

一、查看网络参数

1、查看ip地址信息

ipconfig(查看活动)

参数:-a(查看所有),eth0(只查看eth0)

2、查看主机名

hostname

3、查看路由表(默认网关)

route -n 或netstat -rn

4、查看tcp/udp端口信息

netstat -auptu(a表所有,n表数字,p表进程id,t指tcp,u指udp)

5、跟踪网络节点

traceroute

6、测试dns解析

nslookup

二、设置网络参数

1、配置ip地址

ifconfig eth0 IP地址

ifconfig eth0:2 IP地址

2、配置默认网关

route add default gw 网关地址(添加)

route del default gw 网关地址(删除)

三、设置网络参数(固定)

1、修改IP地址和默认网关

/etc/sysconfig/network-scripts/ifcfg-eth0 

需要重启服务生效:service network restart

或禁用启用后生效:ifdown eth0;ifup eth0

2、修改计算机名(重启生效)

/etc/sysconfig/network

修改HOSTNAME=主机名

3、修改首选和备用DNS地址文件

/etc/resolv.conf

4、本地主机名映射文件(立即生效)

/etc/hosts

四、DHCP服务

1、查看服务包是否安装

rpm -qa |grep dhcp 

若没有安装,插入系统安装光盘

安装后须覆盖:cp /usr/share/doc/dhcp-4.1/dhcpd.conf.sampe(sampe文件) /etc/dhcp/dhcpd.conf(主配文件)

2、服务脚本

/etc/init.d/dhcp.d 

启动服务:service dhcpd start

3、端口号:

UDP:67(服务器)

UDP:68(客户端)

4、排除错误,查看日志

tail -30 /var/log/messages

十、 samba文件共享服务

一、安装包

rpm -ivh samba-3.x.x.....

二、samba服务

1、samba服务器的主要程序

smbd:提供对服务器中文件、打印资源的共享访问,tcp端口号139和445

nmbd:提供基于NetBios主机名称的解析,udp端口号138和137

2、samba的配置目录及文件

/etc/init.d/smb

3、samba的配置目录和文件

/etc/samba/smb.conf

三、主配置文件smb.conf的全局配置项

1、security:安全级别,可用值如下:

share(匿名访问)

user(本地用户验证用户名及密码)

server(其他linux服务器验证)

domain(windows域控制器身份验证)

2、常见共享目录配置项的含义

path:(共享目录在服务器中对应的实际路径)

guest ok(或public):是否允许所有人访问共享权限

read only(只读,默认不写也是只读)

writable(可读可写)

四、搭建一个匿名共享访问(实践是检验理论的唯一标准)

1、修改主配置文件/etc/samba/smb.conf

security=share

2、创建一个自定义的共享

【software】

path=/software

publice=yes

read only=yes

注意:/software目录需在系统中创建

3、启动服务或重启服务

service smb start/restart

五、搭建一个本地用户验证的共享访问

1、创建用户并添加到samba用户中

useradd zhangsan

pdbedit -a -u zhangsan

2、修改主配置smb.conf文件

security=user

3、自定义共享

如:财务部共享文件,财务经理完全控制,财务部员工只读,其他人无权限

【caiwubu】

path=/caiwubu

valid users=cwjl,@cwb(定义合法用户)

write list=cwjl(定义合法可读可写的用户)

六、设置上传文件和目录的默认权限

directory mask=0775(目录权限)

create mask=0644(文件权限)

七、别名

1、修改别名配置文件

/etc/samba/smbusers

2、修改smb.conf文件

在【golbal】中添加一行

username map = /etc/samba/smbusers

十一、 FTP文件传输服务

1、FTP连接

控制连接:tcp21端口,用于发送ftp命令信息

数据连接:tcp20端口,用于上传、下载数据

数据连接的建立类型:

a、主动模式:服务器从20端口主动向客户端发起连接

b、被动模式:服务端在指定范围内某个端口被动等待客户端连接

2、FTP用户的类型

匿名用户:anonymous或ftp

本地用户:账号名称、密码等信息都保存在passwd、shadow文件中

虚拟用户:使用独立的账号、密码数据文件

注意:本地用户和虚拟用户不能同时存在

3、vsftpd软件包

a、安装包(在linux系统安装光盘上)

rpm -ivh vsftpd......

b、服务(vsftpd) service vsftpd restart

c、主配置文件 /etc/vsftpd/vsftpd.conf

d、用户控制列表文件

/etc/vsftpd/ftpusers(黑名单)

/etc/vsftpd/user-list(黑白名单)

注意:ftpusers为黑名单,user_list为白名单时:

用户既在ftpusers中,又在user_list中,此用户不能访问

用户既不在ftpusers中,又不在user_list中,此用户不能访问

只有用户仅在user_list中,才能访问

anon_umask=022(反掩码)

目录正码:777-022=755

文件正码:666-022=644

虚拟用户常用的配置选项:

anon_umask=022  虚拟用户所上传的权限掩码

anon_upload_enable=YES  允许上传文件

anon_mkdir_write_enable=YES  允许创建目录

anon_other_write_enable=YES  开放其他写入权

anon_max_rate=0  限制最大传输速率(字节/秒)

local_root=/var/ftp  设置虚拟用户的ftp根目录

匿名访问:可下载可上传

十二、 DNS域名解析服务

DNS服务

1、软件包

rpm -ivh bind-9.... bind-chroot...

2、bind服务配置

a、服务脚本

/etc/init.d/named

service named restart

b、协议端口

tcp/udp 端口 53

c、主配置文件

/var/named/chroot/etc/named.conf

d、保存DNS解析记录的数据文件位于

/var/named/chroot/var/named/

e、资源记录

SOA(权威服务器)、A(主机,域名到ip)、PTR(指针,ip到域名)

NS(名称服务器)、MX(邮件交换记录)、CNAME(别名,一个主机映射到多个主机名)

3、主DNS的配置(实践检验理论)

一个正向区域benet.com 一个反向区域192.168.1.0

a、修改主配置文件

vim /var/named/chroot/etc/named.conf

options {

    directory "/var/named";

};

zone "benet.com" in{

    type master;

    file "benet.com.zone"; 

};  

注:标明下划线的内容可自定义,但必须相对应

zone "1.168.192.in-addr.arpa" in {

    type master;

    file "192.168.1.zone";

};

b、创建正向的数据文件(benet.com)

vim /var/named/chroot/var/named/benet.com.zone

$ttl 86400

@ in  soa  benet.com.    admin.benet.com. (

        20151014

        3h

        15m

        1w

        1d

)

    in   ns  ns1.benet.com.

    in   mx  5  mail.benet.com.

ns1  in   a   192.168.1.10

www  in   a   192.168.1.100

mail  in  a   192.168.1.100

web   in  cname  www

注意:正向数据文件中必须有SOA,NS

可以有MX,A,CNAME

c、创建反向的数据文件(192.168.1.0)

vim /var/named/chroot/var/named/192.168.1.zone

$ttl 86400

@ in  soa  benet.com. admin.benet.com.(

         20151014

         3h

         15m

         1w

         1d

)

   in   ns   ns1.benet.com.

10  in   ptr  ns1.benet.com.

100  in  ptr  www.benet.com.

200  in  ptr  mail.benet.com.

注意:在反向的数据文件中,必须有SOA,NS,可有PTR

4、从DNS配置步骤(辅助)

a、安装包

b、修改主配置文件

vim /var/named/chroot/etc/named.conf

options {

   directory  "/var/named";

};

zone  "benet.com" in {

   type slave;

   masters {192.168.1.10;};

   file "slaves/benet.com.zone";

};

c、启动服务

5、缓存服务器(转发器)

a、安装包

b、修改主配置文件

vim /var/named/chroot/etc/named.conf

options {

forwarders {192.168.1.10;};

};

c、启动服务

以上是关于linux 笔记的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu/Linux 笔记应用 为知笔记(支持markdown)

linux学习笔记二

linux下安装一款笔记软件(为知笔记)

《Linux内核设计与实现》读书笔记 - 目录 (完结)转

linux学习笔记一

Linux 编程笔记