linux日常笔记-01
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux日常笔记-01相关的知识,希望对你有一定的参考价值。
1.Openstack
监控工具:zabbix
大数据处理:Hadoop ,Spark ,Storm,elk
Docker
Python
-
RHCSA, RHCE, RHCA(认证)
Linux发行版:
Slackware:
Suse, OpensuseDebian:
Ubuntu, mintRedhat:
Rhel, fedora, centosArchlinux
Gentoo
LFS:linux from scratch
3.程序包管理器:
rpm:
RHEL, Fedora, Suse, CnetOS
dpt:
Debian, Ubuntu
区别内外部命令:
#:type command
/usr: (universal shared read-only data)
4.set -C 禁止将内容覆盖输出至已有文件中
tr 转换或删除字符
5.Linux文本处理三剑客:
grep:文本过滤工具(grep,egrep,fgrep)
sed:stream editor,文本编辑工具
awk:linux上实现gawk,文本报告生成器
grep:global search regular expression and print out the line
作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查:打印匹配到的行
模式:由正则表达式字符及文本字符所编写的过滤条件
6.只读变量:
readonly name , declare –r name
7.自定义退出码:
exit [n]
8.Vim编辑
(行号)
set nu
set nonu
(括号匹配)
set sm
set nosm
(自动缩进)
set ai
set noai
(高亮搜索)
set hlsearch set nohlsearch
(语法高亮)
syntax on syntax off
(忽略字符的大小写)
set ic set noic
9.bash 条件测试
[ expression ] [[ expression ]]
组合条件测试:
第一种方式;
command1 && command2
command1 || command2
! command
[ -e file ] && [ -r file ]
第二种方式:
expression1 –a Expression2
expression1 –o Expression2
! expression
必须使用测试命令进行:
eg: [ -f /bin/cat –a –x /bin/cat ] && cat /etc/fatab
10.文件查找:
locate,find
locate:查找速度快,模糊查找,非实时查找
locate keyword
find:查找速度略慢,精确查找,实时查找
find [option] … [查找路径] [查找条件][处理动作]
组合条件:
与: -a
或: -o
非: -not,!
!A –a !B = !(A –o B)
!A –o !B= !(A –a B)
eg:find /tmp ( -not –user root –a –not –name ‘fstab’ ) –ls
find /tmp -not ( -user root -o -name ‘fstab’ ) –ls
根据文件大小查找:
-size [+|-] #UNIT
常用单位:k,M,G
根据时间戳:
以天为单位:
-atime, -mtime, -ctime
以分钟为单位:
-amin, -mmin, -cmin
根据权限查找:
-perm [+|-]MODE
处理动作:
-print:默认的处理动作,显示至屏幕
-ls:类似于对查找到的文件执行“ls -l”命令
-delete:删除查找到的文件
-ok COMMAND {}\; 对查找到的每个文件执行由COMMAND指定的命令:对于每个文件执行前都会进行交互;
-exec COMMAND {}\; 对查找到的每个文件执行由COMMAND指定的命令;
注意:有些命令不能接受过多参数,此时命令执行时可能会出错,下面方法可规避此问题:
find |xargs COOMAND
eg:find /etc -size +1M -type -f
find / -nouser –a -nogroup -a -atime -7
find /etc -not -perm +222
11.Linux磁盘管理:
磁盘管理,文件系统管理
RAID基础原理、LVM2
网络管理:TCP/IP协议、linux网络属性配置
程序包管理:rpm、yum
进程管理:htop、glance、tsar
Sed和awk
I/O Ports: I/O设备地址;
一切皆文件;
12.硬盘接口类型:
并行:
IDE:133MB/s
SCSI:640MB/s
串口:
SATA:6Gbps
SAS:6Gbps
USB:480MB/s
/dev/DEV_FILE 磁盘设备的设备文件命名:
IDE:/dev/hd…
SCSI,SATA,SAS,USB:/dev/sd…
- 查看内核是否已经识别新的分区:
cat /proc/partitions
通知内核重新读取硬盘分区表:
partx -a /dev/DEVICE
-n M:N
kpartx -a /dev/DEVICE
-f force
centos 5:使用partprobe
Partprobe [/dev/DEVICE]
14.创建文件系统:
mkfs命令:
(1)Mkfs.FS_type /dev/DEVICE
(ext4,xfs,btrfs,vfat)
(2)mkfs -t FS_TYPE /dev/DEVICE
-L ‘LABEL’:卷标
mke2fs : ext系列文件系统专用管理工具
-t {ext2|ext3|ext4}
-b{1024|2048|4096}
-L ‘LABEL’
-j :相当于 –t ext3
mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
-i #:为数据空间每多少个字节创建一个inode,此大小不应该小于block的大小
-N #:为数据空间创建了多少个inode
-m #:为管理人员预留的空间占据的百分比
mkswap:创建交换分区
mkswap [options] device
-L ‘LABEL’
前提:调整其分区的ID为82
其他常用工具:
Blkid:块设备属性信息查看
Blkid [OPTION] …[DEVICE]
-U UUID:根据指定的UUIDl来查找对应的设备
-L LABEL:根据指定的LABEL来查找对应的设备
e2label:管理ext系列文件系统的LABEL
#e2label DEVICE [LABEL]
tune2fs:重新设定ext系列文件系统可调整参数的值
-l:查看指定文件系统的超级块信息:super block
-L ‘LABEL’:修改卷标
-m #:修改预留给管理员的空间百分比
-j:将ext2升级为ext3
-O:文件系统属性启用或禁用
-o:调整文件系统的默认挂载选项
-U UUID:修改UUID号
dumpe2fs:
-h:查看超级块信息
- 文件系统检测:
fsck:file system check
fsck.FS_TYPE
fsck –t FS_TYPE
-a:自动修复错误
-r:交互式修复错误
note:FS_TYPE一定要与分区上已有的文件类型相同
e2fsck:ext系列文件专用的检测修复工具
-y :自动回答为yes
-f :强制修复
16.文件系统挂载:
mount DEVICE MOUNT_POINT
mount:显示当前系统已挂载的所有设备
mount [-fnrsvw] [-t vfstype] [-o options] device dir
device:指明要挂载的设备:
(1) 设备文件:例如/dev/sda4
(2) 卷标: -L LABEL
(3) UUID,-U UUID
(4) 伪文件系统名称
dir:挂载点
事先存在,建议使用空目录
常用选项:
-t vsftype:指定要挂载的设备上的文件系统的类型:
-r readonly
-w read and write
-n 不更新/etc/mtab
-a 自动挂载所有支持自动挂载的设备(定义在/etc/fstab文件中)
-L LABEL
以卷标指定挂载设备
-U UUID
以UUID指定要挂载的设备
注意:查看内核追踪到的自己挂载的所有设备:cat /proc/mounts
-o options (挂载文件系统的选项)
async:异步模式
sync: 同步模式
atime/noatime:包含目录和文件
diratime/nodiratime:目录的访问时间戳
auto/noauto:是否支持自动挂载
exec/noexec:是否支持将文件系统上的应用程序运行为进程
dev/nodev:是否支持在此文件系统上使用设备文件
remount;重新挂载
卸载命令:
umount
查看正在访问指定文件系统的进程:
fuser -v mount_point
终止所有在访问指定文件系统的进程:
fuser -km mount_point
挂载交换分区:
启用:swapon [OPTION] …[DEVICE]
-a:激活所有的交换分区
-p PRIORITY:指定优先级
禁用:swapoff [OPTION]…[DEVICE]
内存空间使用状态:
free [OPTION]
-m | -g
17.bash脚本编程之用户交互:
read [option] … [name …]
-p PROMPT
-t TIMEOUT
bash -n /path/to/some_script
检测脚本中的语法错误
bash -x /path/to/some_script
调试执行
18.RAID:
Redundant Arrays of Inexpensive Disks
提高IO能力:
磁盘并行读写
提高耐用性:
磁盘冗余
级别:多块磁盘组织在一起的工作方式有所不同
RAID实现的方式:
外接式磁盘阵列:通过扩展卡提供适配能力
内接式RAID:主板集成RAID控制器
Software RAID:
级别:level
RAID—0:
RAID—1:
RAID—2:
…
RAID—5:
RAID—6:
RAID—10:
RAID—01:
RAID—0:
读、写性能提升:
可用空间:Nmin(S1,S2…)
无容错能力
最少磁盘数:2,2+
RAID—1:
读性能提升写性能略有下降:
可用空间:1min(S1,S2…)
有冗余能力
最少磁盘数:2,2+
RAID—5:
读、写性能提升:
可用空间:(N-1)min(S1,S2…)
有容错能力:一块磁盘
最少磁盘数:3,3+
RAID—6:
读、写性能提升:
可用空间:(N-2)min(S1,S2…)
有容错能力:2块磁盘
最少磁盘数:4,4+
混合类型:
RAID—10:
读、写性能提升:
可用空间:N*min(S1,S2…) /2
有容错能力:每组镜像最多只能坏一块
最少磁盘数:4,4+
RAID—01:
RAID—50:
JBOD:
将多块磁盘的空间合并成一个大的连续空间使用
实现方式:
硬件实现方式、软件实现方式
Centos 6上的软件RAID的实现:
结合内核中的md(multi devices)
Mdadm:模式化工具
格式:mdadm [mode] <raiddevice> <component-device>
支持的RAID级别:
LINEAR, RAID0,RAID1,RAID4,RAID5,RAID6,RAID10等
模式:
创建:-C
装配:-A
监控:-F
管理:-f,-r,-a
<raiddevice>:/dev/md#
<component-devices>:任意块设备
-C:创建模式
-n # :使用n个块设备来创建此RAID
-l #:指明要创建的RAID级别
-a {yes|no}:自动创建目标RAID设备的设备文件
-c CHUNK_SIZE:指明块大小
-x #:指明空间盘的个数
-D:显示RAID的详细信息
mdadm –D /dev/md#
管理模式:
-f:标记指定磁盘为损坏
-a:添加磁盘
-r:移除磁盘
观察md的状态:
cat /proc/mdstat
停止md设备:
mdadm -S /dev/md#
watch命令:
-n #:刷新间隔,单位是秒:
Watch -n# ‘COMMAND’
19.LVM2
LVM:Logical Volume Manager Version 2
dm:device mapper:将一个或多个底层块设备组织成一个逻辑设备的模块
pv管理工具:
pvs:简要pv信息显示
pvdisplay;显示pv的详细信息
pvcreate /dev/DEVICE:创建pv
vg管理工具:
vgs
vgdisplay
vgcreate
vgextend
vgremove
lv管理工具:
lvs
lvdisplay
lvcreate -L #[mMgGtT] -n NAME VolumeGroup
lvremove /dev/VG_NAME/LV_NAME
扩展逻辑卷:
lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
resize2fs /dev/VG_NAME/LV_NAME
缩减逻辑卷:
umount /dev/VG_NAME/LV_NAME
e2fsck –f /dev/VG_NAME/LV_NAME
resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
mount
快照:snapshot
lvcreate –L #[mMgGtT] –p r -s –n snapshot_lv_name original_lv_name
- dd命令: convert and copy a file
dd if =/PAATH/FROM/SRC of=/PATH/TO/DEST
bs -#:block size,复制单元大小
count-#:复制多少个bs
磁盘拷贝:
dd if=/dev/sda of=/dev/sdb
备份MBR:
dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
破坏MBR中的bootloader
dd if=/dev/zero of=/dev/sda bs=512 count=1
两个特殊设备:
/dev/null:数据黑洞
/dev/zero:吐零机
21.btrfs文件系统:
文件系统的创建:
mkfs.btrfs
-L ‘LABEL’
-d <type>: raid 0 等
-m <profile> : raid 0 raid 1 等
-O<feature>
-O list-all:列出支持的所有feature
属性查看:
btrfs filesystem show
挂载文件系统:
mount -t btrfs /dev/sdb MOUNT_POINT
列表生成方式:
(1) 直接给出列表
(2) 整数列表
(a){start…end}
(b)$(seq [start [step] end])
(3)返回列表命令:
$(COMMAND)
22.Linux程序包管理:
API:Application Programming Interface
POSIX: Portable OS
程序源代码?预处理?编译?汇编?链接
静态编译
共享编译
ABI:Application Binary Interface
Windows与Linux不兼容
库级别的虚拟化:
Linux:WINE
Windows:Cywin
系统级开发:c,c++
应用级开发:java,Python,php,perl,ruby
二进制应用程序的组成部分:
二进制文件,库文件,配置文件,帮助文件
程序包管理器:
Debian:deb,dpt
Redhat:rpm
23.查看二进制程序所依赖的库文件:
Idd /PATH/TO/BINARY_FILE
管理及查看本机装载的库文件:
Idconfig
/sbin/Idconfig -p :显示本机已经缓存的所有可用库文件名及文件路径映射关系
配置文件为: /etc/Id.so.conf,/etc/Id.so.conf.d/*.conf
缓存文件:/etc/Id.so.cache
程序包管理:
功能:将编译好的应用程序的各组成文件打包一个或几个程序包文件,从而方便快捷地实现
程序包的安装、卸载、查询、升级和校验等管理操作
管理程序包的方式:
使用包管理器:rpm
使用前端工具:yum、dnf
man rpm
包来源性验证及合法性验证:
完整性验证:
公钥加密:
对称加密:加密、解密使用同一密钥
非对称加密:密钥成对(公钥、私钥)
导入所需要公钥:
rpm --import /PATH/FROM/GPG_PUBKEY_FILE
24.数据库重建:
rpm {--initdb|--rebuilddb}
Initdb:初始化
如果事先不存在数据库,则新建之;否则,不执行任何操作
rebuilddb:重建
无论当前存在与否,直接重新创建数据库
25.编译C源代码:
第一步:configure脚本
--help
选项分类:
安装路径设定:
--prefix=/PATH/TO/SOMEWHERE :指定默认安装位置
--sysconfdir=/PATH/To/SOMEWHERE:配置文件安装位置
第二步:make
第三步:make install
安装后的配置:
(1) 导出二进制程序目录至PATH环境变量中:
编辑文件 /etc/profile.d/NAME.sh
export PATH=/PATH/TO/BIN
(2) 导出库文件路径
编辑 /etc/ld.so.conf.d/NAME.conf
添加新的库文件所在目录至此文件中
让系统重新生成缓存:
Idconfig [-v]
(3) 导出头文件:
基于链接的方式实现:
In -sv
(4) 导出帮助手册
(5) 编辑/etc/man.conf文件
(6) 添加一个MANPATH
以上是关于linux日常笔记-01的主要内容,如果未能解决你的问题,请参考以下文章