Linux文件有四种时间:
# stat anaconda-ks.cfg //查看文件的详细属性(其中包括文件时间属性)
访问时间:atime,查看内容 //RHEL6会延后修改atime
修改时间:mtime,修改内容
改变时间:ctime,文件属性,比如权限
删除时间:dtime,文件被删除的时间
[root@jia1 ~]# ll anaconda-ks.cfg
-rw-------. 1 root root 2233 Aug 20 2016 anaconda-ks.cfg
[root@jia1 ~]# stat anaconda-ks.cfg
File: `anaconda-ks.cfg'
Size: 2233 Blocks: 8 IO Block: 4096 regular file
Device: 802h/2050d Inode: 147316 Links: 1
Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-08-20 20:15:42.681998739 +0800
Modify: 2016-08-20 20:15:43.180998739 +0800
Change: 2016-08-20 20:15:55.941998725 +0800
ls -l 文件名 //看第一个字符
- 普通文件(文本文件,二进制文件,压缩文件,电影,图片。。。)
d 目录文件
b 设备文件(块设备)存储设备硬盘,U盘 /dev/sda, /dev/sda1
c 设备文件(字符设备)打印机,终端 /dev/tty1
s 套接字文件
p 管道文件
l 链接文件
[root@jia1 ~]# ll -d /root/anaconda-ks.cfg /bin/ls /home /dev/sda /dev/tty1 /etc/grub.conf /dev/log
-rwxr-xr-x 1 root root 117024 Oct 15 2014 /bin/ls
srw-rw-rw- 1 root root 0 Mar 13 20:36 /dev/log
brw-rw---- 1 root disk 8, 0 Mar 13 20:36 /dev/sda
crw--w---- 1 root tty 4, 1 Mar 13 20:36 /dev/tty1
lrwxrwxrwx. 1 root root 22 Aug 20 2016 /etc/grub.conf -> ../boot/grub/grub.conf
drwxr-xr-x. 2 root root 4096 Sep 23 2011 /home
-rw-------. 1 root root 2233 Aug 20 2016 /root/anaconda-ks.cfg
[root@jia1 ~]# file anaconda-ks.cfg
anaconda-ks.cfg: ASCII English text
[root@jia1 ~]# file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
[root@jia1 ~]# file /home
/home: directory
[root@jia1 ~]# file /dev/sda
/dev/sda: block special
[root@jia1 ~]# file /dev/tty1
/dev/tty1: character special
[root@jia1 ~]# file /etc/grub.conf
/etc/grub.conf: symbolic link to `../boot/grub/grub.conf'
[root@jia1 ~]# file /dev/log
/dev/log: socket
绝对路径 /root/anaconda-ks.cfg
相对路径./anaconda-ks.cfg
cd 改变目录
touch 创建文件
mkdir 创建目录
cp 拷贝
rm 删除
mv 移动
查看文件:cat more less head tail
vi vim
groupadd groupdel
useradd userdel usermod
passwd chage
# chage -m 0 -M 90 -W 7 -I 14 username
chage -d 0 #username will force a password update on next login.
chage -l #username will list a username's current settings.
chage -E YYYY-MM-DD #will expire an account on a specific day.
手动改文件添加一个用户:手动添加用户
添加 组jyt
1.#vim /etc/group
jyt:x:533:
2.#vim /etc/gshadow
添加用户jyt
3.#vim /etc/passwd
4.#vim /etc/shadow
5.mkdir /home/jyt 创建家目录
touch /var/spool/mail/jyt 创建邮箱
cp -rf /etc/skel/.bash*/home/jyt/ 拷贝环境变量文件
chown -R jyt.jyt /home/jyt 修改所有者-R递归
chown -R jyt.mail /var/spool/mail/jyt 修改所有者
chmod 700 /home/jyt 修改权限
权限对象:
属主: u
属组: g
其他人: o
权限类型:
读:r 4
写:w 2
执行: x 1
- rwx r-x r-x 1 root root 117024 Oct 15 2014 /bin/ls
- - - - - - - - - -
u g o
7 5 5
chown 修改所属者所属组 chgrp 修改所属组
文件权限管理之: ACL设置基本权限(r、w、x)
UGO设置基本权限: 只能一个用户,一个组和其他人
ACL 设置基本权限: r,w,x
=ACL基本用法=
设置:
[root@jia1 ~]# touch /home/test.txt
[root@jia1 ~]# ll /home/test.txt
-rw-r--r-- 1 root root 0 10-26 13:59 /home/test.txt
[root@jia1 ~]# getfacl /home/test.txt
[root@jia1 ~]# setfacl -m u:alice:rw /home/test.txt //增加用户alice权限
[root@jia1 ~]# setfacl -m u:jack:- /home/test.txt //增加用户jack权限
[root@jia1 ~]# setfacl -m o::rw /home/test.txt
查看/删除:
[root@jia1 ~]# ll /home/test.txt
-rw-rw-r--+ 1 root root 0 10-26 13:59 /home/test.txt
[root@jia1~]# getfacl /home/test.txt
[root@jia1 ~]# setfacl -m g:hr:r /home/test.txt
[root@jia1 ~]# setfacl -x g:hr /home/test.txt //删除组hr的acl权限
[root@jia1 ~]# setfacl -b /home/test.txt //删除所有acl权限
=查看帮助=
[root@jia1 ~]# man setfacl
/EXAMPLES
[root@jia1 ~]# getfacl file1 |setfacl --set-file=- file2 //复制file1的ACL权限给file2
=ACL高级用法=
mask:
用于临时降低用户或组(除属主和其他人)的权限
建议:为了方便管理文件权限,其他人的权限置为空
[root@jia1 ~]# setfacl -m m::--- /home/file100.txt
default: 继承(默认)
要求: 希望alice能够对/home以及以后在/home下新建的文件有读、写、执行权限
suid 普通用户可以通过suid提权 (针对文件)
sgid 新建文件继承目录属组 (针对目录)
sticky 用户只能删除自己的文件 (针对目录) 如/tmp
[root@jia1 ~]# ll -d /tmp
drwxrwxrwt. 23 root root 4096 Mar 13 21:01 /tmp
umask 掩码 如022 创建文件默认为644 目录默认为755
getattr
chattr
chattr +a file 只能追加写入不能覆盖不能删除
chattr +i file 变为只读文件。不能写入不能删除
Process states 进程状态 R (running) S (Sleeping 可中断) D(Sleeping不可中断,处于I/O等) T (Stopped 停止的等待信号rutern to running )Z(Zombie 已经释放留大部分资源除了PID) X(释放了全部)
[root@jia1 ~]# ps aux |less
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 2164 648 ? Ss 08:47 0:00 init [5]
USER: 运行进程的用户
PID: 进程ID
%CPU: CPU占用率
%MEM: 内存占用率
VSZ: 占用虚拟内存
RSS: 占用实际内存 驻留内存
TTY: 进程运行的终端
STAT: 进程状态 man ps (/STATE)
R 运行
S 可中断睡眠 Sleep
D 不可中断睡眠
T 停止的进程
Z 僵尸进程
X 死掉的进程
Ss s进程的领导者,父进程
S< <优先级较高的进程
SN N优先级较低的进程
R+ +表示是前台的进程组
Sl 以线程的方式运行
START: 进程的启动时间
TIME: 进程占用CPU的总时间
COMMAND: 进程文件,进程名
[root@jia1 ~]# ps aux --sort %cpu |less
[root@jia1 ~]# ps aux --sort -%cpu |less
[root@jia1 ~]# ps aux --sort rss |less
[root@jia1 ~]# ps aux --sort -rss |less
[alice@jia1 ~]$ sudo yum -y install httpd
[alice@jia1 ~]$ sudo service httpd start
[root@jia1 ~]#ps auxf|grep httpd
root 9279 0.0 0.0 4264 672 pts/1 S+ 14:37 0:00 \_ grep httpd
root 8310 0.0 0.1 10092 2912 ? Ss 14:19 0:00 /usr/sbin/httpd
apache 8311 0.0 0.0 10092 2060 ? S 14:19 0:00 \_ /usr/sbin/httpd
apache 8312 0.0 0.0 10092 2060 ? S 14:19 0:00 \_ /usr/sbin/httpd
apache 8313 0.0 0.0 10092 2060 ? S 14:19 0:00 \_ /usr/sbin/httpd
apache 8314 0.0 0.0 10092 2060 ? S 14:19 0:00 \_ /usr/sbin/httpd
apache 8315 0.0 0.0 10092 2060 ? S 14:19 0:00 \_ /usr/sbin/httpd
apache 8316 0.0 0.0 10092 2060 ? S 14:19 0:00 \_ /usr/sbin/httpd
apache 8318 0.0 0.0 10092 2060 ? S 14:19 0:00 \_ /usr/sbin/httpd
apache 8319 0.0 0.0 10092 2060 ? S 14:19 0:00 \_ /usr/sbin/httpd
[root@jia1 ~]#ps -ef查看PPID
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 08:47 ? 00:00:00 init [5]
//自定义显示字段
[root@jia1 ~]#ps axo user,pid,ppid,%mem,command
[root@jia1 ~]#ps axo user,pid,ppid,%mem,command |grep httpd
root 8310 1 0.1 /usr/sbin/httpd
apache 8311 8310 0.0 /usr/sbin/httpd
apache 8312 8310 0.0 /usr/sbin/httpd
apache 8313 8310 0.0 /usr/sbin/httpd
apache 8314 8310 0.0 /usr/sbin/httpd
apache 8315 8310 0.0 /usr/sbin/httpd
apache 8316 8310 0.0 /usr/sbin/httpd
apache 8318 8310 0.0 /usr/sbin/httpd
apache 8319 8310 0.0 /usr/sbin/httpd
root 9236 6798 0.0 grep httpd
[root@jia1 ~]#ps axo user,pid,ppid,%mem,%cpu,command --sort -%cpu |less
//查看指定进程的PID
[root@jia1 ~]# ps aux |grep sshd
root 10180 0.0 0.0 7224 1024 ? Ss 16:00 0:00 /usr/sbin/sshd
[root@jia1 ~]#pgrep -l sshd
10180 sshd
[root@jia1 ~]#pgrep sshd
10180
[root@jia1 ~]#pidof sshd
10180
//查看进程树
[root@jia1 ~]# pstree
动态查看进程 top
[root@jia1 ~]# top
[root@jia1 ~]# top -d 1 设置每一秒更新一次
[root@jia1 ~]# top -d 1 -p 10126 查看指定进程的动态信息
[root@jia1 ~]# top -d 1 -p 10126,1
[root@jia1 ~]# top -d 1 -u apache 查看指定用户的进程
[root@jia1 ~]# top -d 1 -b -n 2 > top.txt 将2次top信息写入到文件
第一部分:系统整体统计信息
top - 14:15:04 up 47 min, 2 users, load average: 0.25, 0.18, 0.12
Tasks: 235 total, 1 running, 234 sleeping, 0 stopped, 0 zombie
Cpu(s): 8.9%us, 1.0%sy, 0.0%ni, 90.1%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 7944064k total, 746164k used, 7197900k free, 35724k buffers
Swap: 1048568k total, 0k used, 1048568k free, 261492k cached
load average: 0.86, 0.56, 0.78 系统最近 1分钟,5分钟,15分钟平均负载
第二部分:进程信息
命令
h|?帮助
M 按内存的使用排序
P 按CPU使用排序
N 以PID的大小排序
R 对排序进行反转
f 自定义显示字段
1 显示所有CPU的负载
< 向前
> 向后
z 彩色
W 保存top环境设置 f更改以后W保存到配置文件/etc/.toprc
杀进程 kill killall pkill
进程优先级 nice renice
jobs 查看后台的进程
bg 后台运行
fg 前台运行
/proc 进程动态的信息
管道 ip addr |grep 'inet ' |tee ip.txt |awk -F"/" '{print $1}' |awk '{print $2}'
正确输出: 1> 1>> 等价于 > >> > 追加 >>覆盖
错误输出: 2> 2>>
&> /dev/null
>/dev/null 2>&1
主要知识点: 基本分区、逻辑卷LVM、EXT3/4文件系统、磁盘限额、RAID
从工作原理区分:
机械
固态
从磁盘尺寸:
3.5
2.5
1.8
从插拔方式:
热插拔
非热插拔
硬盘主要接口:IDE —— SATA I/II/IIISCSI —— SAS
PCIE
FC
kernel对不同接口硬盘命名方式:
OS IDE(并口) SATA(串口) SCSI
RHEL5 /dev/hda /dev/sda /dev/sda
RHEL6 /dev/sda /dev/sda /dev/sda
KVM /dev/vda
存储连接方式:
本地存储
外部存储
从分区方式区分(针对分区表)
存储大小 分区软件 分区表
2TB以下的硬盘 fdisk/parted/centos7 fdisk MSDOS(MBR) /GPT
2TB以上的硬盘 parted/centos7 gdisk GPT
MSDOS(MBR)分区的限制:
主分区,扩展分区,逻辑分区
只支持4个主分区,总分区数不能超过15个
只支持2TB以下的硬盘
GPT的限制:
没有限制
注意:从MBR转到GPT,或从GPT转换到MBR会导致数据全部丢失!
HP服务器硬盘
/dev/cciss/c0d0
/dev/cciss/c0d0p1 //c0第一个控制器, d0第一块磁盘, p1分区1
/dev/cciss/c0d0p2 //c0第一个控制器, d0第一块磁盘, p2分区2
分区 fdisk parted 分区(基本分区)、格式化、挂载
分区工具fdisk msdos
分区工具parted msdos 或 GPT
sectors 扇区 512B centos6+
cylinders 柱面
Block size 块大小 1024B 2048B 4096B 文件系统分配最小单元
一、分区工具fdisk MBR(msdos)
1. 查看新设备是否发现
# ll /dev/sd* //查看Kernel识别到的设备
# fdisk -cul //u以扇区的方式查看
2. 分区
# fdisk -cu /dev/sdb //分区
Command (m for help): m
Command action
d delete a partition
m print this menu
n add a new partition
p print the partition table
q quit without saving changes
t change a partition's system id
w write table to disk and exit
# ll /dev/sd*
# partx -a /dev/sdb //让内核刷新分区表
# ll /dev/sd*
3. 格式化(创建文件系统)
Windwos: FAT,FAT32,NTFS
Linux: VFAT,Ext2,Ext3,Ext4,XFS,GFS,GFS2
最大文件系统大小
最大单个文件大小
[root@jia1 ~]# mkfs.ext4 /dev/sdb1 //100M的分区
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=1024 (log=0) //块大小1024B (1K)
Fragment size=1024 (log=0)
25688 inodes, 102400 blocks
9765 blocks (5.00%) reserved for the super user
[root@jia1 ~]# mkfs.ext4 /dev/sdb2 //1G的分区
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2) //块大小4096B (4K)
Fragment size=4096 (log=2)
65536 inodes, 262144 blocks
12207 blocks (5.00%) reserved for the super user
4. 挂载
建立挂载点
# mkdir /mnt/disk1 //建立挂载点,挂载点建议是空目录,例如/var/lib/mysql/data
# mkdir /mnt/disk2
挂载
==手动: 临时
[root@jia1 ~]# mount -o ro -t ext4 /dev/sdb1 /mnt/disk1
[root@jia1 ~]# mount /dev/sdb2 /mnt/disk2
[root@jia1 ~]# mount
/dev/sdb1 on /mnt/disk1 type ext4 (ro)
/dev/sdb2 on /mnt/disk2 type ext4 (rw)
[root@jia1 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sdb1 97M 5.6M 87M 7% /mnt/disk1
/dev/sdb2 1008M 34M 924M 4% /mnt/disk2
[root@jia1 ~]# cat /proc/mounts
rootfs / rootfs rw 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
devtmpfs /dev devtmpfs rw,relatime,size=111856k,nr_inodes=27964,mode=755 0 0
devpts /dev/pts devpts rw,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /dev/shm tmpfs rw,relatime 0 0
/dev/vda2 / ext4 rw,relatime,barrier=1,data=ordered 0 0
/proc/bus/usb /proc/bus/usb usbfs rw,relatime 0 0
/dev/vda1 /boot ext4 rw,relatime,barrier=1,data=ordered 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw,relatime 0 0
/dev/sda1 /mnt/disk1 ext4 ro,relatime,barrier=1,data=ordered 0 0
/dev/sda2 /mnt/disk2 ext4 rw,relatime,barrier=1,data=ordered 0 0
==开机自动挂载 方案一:/etc/fstab
[root@jia1 ~]# umount /dev/sdb1
[root@jia1 ~]# blkid
/dev/sdb1: UUID="653a949d-ebf5-4543-9f67-4b71cbe5cf2b" TYPE="ext4"
/dev/sdb2: UUID="7ca49b1d-5359-413f-83aa-ed51c7421877" TYPE="ext4"
[root@jia1 ~]# vim /etc/fstab
UUID="653a949d-ebf5-4543-9f67-4b71cbe5cf2b" /mnt/disk1 ext4 defaults 0 0
UUID="7ca49b1d-5359-413f-83aa-ed51c7421877" /mnt/disk2 ext4 defaults 0 0
[root@jia1 ~]# mount -a //读取/etc/fstab并挂载
二、分区工具parted msdos 或 GPT
命令行
交互式
[root@jia1 ~]# parted /dev/sdc
GNU Parted 2.1
Using /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) help
(parted) mklabel gpt
(parted) print
(parted) mkpart primary 1M 1T
(parted) mkpart primary 1T 3T
(parted) mkpart primary 3T 3.1T
(parted) print
(parted) mkpart primary 3100GB 5T
(parted) mkpart primary 5000GB 6T
(parted) mkpart primary 6T 7T
(parted) print
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 1000GB 1000GB primary
2 1000GB 3000GB 2000GB primary
3 3000GB 3100GB 100GB primary
4 3100GB 5000GB 1900GB primary
5 5000GB 6000GB 1000GB primary
6 6000GB 7000GB 1000GB primary
(parted) rm 6
(parted) print
(parted) quit
Information: You may need to update /etc/fstab.
[root@jia1 ~]# partx -a /dev/sdc
lvm
pvcreate /dev/sdc
vgcreate vg0 /dev/sdc
lvcreate -L 500M -n lv0 vg0
lvs
vgs
pvs
vgextend vg0 /dev/sdd
[root@jia1 ~]# lvextend -L 800M /dev/vg1/lv1 扩展到800M
[root@jia1 ~]# lvextend -L +800M /dev/vg1/lv1之前基础上加800M
==减小VG vgreduce==
1.查看当前的VG中PV的使用情况
[root@jia1 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdb1 vg1 lvm2 a-- 960.00m 64.00m
/dev/vdb2 vg1 lvm2 a-- 960.00m 960.00m
2. pvmove数据到其它PV
[root@jia1 ~]# pvmove /dev/vdb1 //原始PV
/dev/vdb1: Moved: 0.0%
/dev/vdb1: Moved: 71.4%
/dev/vdb1: Moved: 100.0%
[root@jia1 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdb1 vg1 lvm2 a-- 960.00m 960.00m
/dev/vdb2 vg1 lvm2 a-- 960.00m 64.00m
3.vgreduce VG
[root@jia1 ~]# vgreduce vg1 /dev/vdb1
Removed "/dev/vdb1" from volume group "vg1"
[root@jia1 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg1 1 2 0 wz--n- 960.00m 64.00m
FS扩容扩展文件系统扩容后文件系统不会自动扩展
[root@jia1 ~]# df -Th
/dev/mapper/vg1-lv1 xfs 637M 67M 570M 11% /mnt/lv1
/dev/mapper/vg1-lv2 ext4 240M 32M 192M 15% /mnt/lv2
a. xfs
[root@jia1 ~]# xfs_growfs /dev/vg1/lv1
b. ext2/3/4
[root@jia1 ~]# resize2fs /dev/vg1/lv2
[root@jia1 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg1-lv1 xfs 765M 67M 698M 9% /mnt/lv1
/dev/mapper/vg1-lv2 ext4 488M 32M 429M 7% /mnt/lv2
lvm快照
lvcreate -L 128M -s -n lv2-snap /dev/vg1/lv2
mkfifo 创建管道文件 本地进程之间通信使用
文件种类7种
-(普通文件) d(目录) l(符号链接) s(套接字文件) p(管道文件) c(字符设备文件) b(块设备文件)
umount -l 强制卸载
vim文本编辑器
可视化--在指定列插入--选中该列--进入插入模式--插入要插入的东西--ESC
用户管理
echo 123 |passwd --stdin robin非交互式更改密码
文件系统 /etc/shadow 第二列(!锁定帐号 !!锁定密码 *永远不许登录)
/etc/login.defs
权限管理( 基本权限 高级权限 )
U G O suid(u+s) sgid(g+s) sticky(o+t)
facl
setfacl -m u:robin:rwx filename
setfacl -m d:u:robin:rwx directoryname 在该目录下创建新的继承这条acl
setfacl -x u:robin filename 清除一条
setfacl -b filename 清除所有
setfacl -m m::--- /home/file100.txt 临时修改acl的mask 修改目录的要加-d参数
chattr i只能看 a可以追加
lsattr A不修改atime
atime 比 mtime 新 不更新
atime 比 mtime 旧 更新
进程
ps
ps -ef
ps aux
top 动态
杀进程
kill -9/15 pid
killall 进程名
pkill 进程名
xkill 图形化杀进程,点谁谁死
Ctrl+alt+退格 杀图形
进程状态 S R D T s l < +.....
优先级nice (-20~19)
nice -n -20 进程
renice
前后台运行
ctrl+z
jobs
bg + 编号
fg + 编号
进程 &
shell 基础
1> 1>> 2> 2>>
文件描述符
1 标准正确
2 标准错误
&>
&& 前边命令正确执行,后边命令执行
|| 前边命令错误执行,后边命令执行
; 命令分隔
判断语句
[root@localhost tmp]# cat file.sh
#!/bin/bash
if [ -f /tmp/tt.txt ]
then
echo "文件存在!显示详细信息!!!!!"
sleep 1
ls -l /tmp/tt.txt
else
echo "文件不存在,正在创建文件!!!!"
sleep 1
touch /tmp/tt.txt
echo "文件创建完成!!!"
fi
循环语句
#!/bin/bash
for i in {1..10}
do
echo "添加帐号abc$i"
useradd abc$i
sleep 1
echo "设置帐号abc$i的密码"
echo 123 | passwd --stdin abc$i 1> /dev/null
done
高级命令:
sort
grep
uniq
cut
cut -d ":" -f1 /etc/passwd
cut -c 1-4 /etc/passwd 取1-4个字符
sed
awk
存储管理
fdisk
fdisk -cul
fdisk /dev/sda
sata 主分区1-3 扩展分区4 逻辑分区5-15
ide 主分区1-3 扩展分区4 逻辑分区5-
partx -a 同步分区表
mkfs.ext4 创建文件系统 没有文件系统的叫裸设备
mount 挂载
1./etc/rc.local(系统开机执行的最后一个脚本)
2./etc/fstab
3.autofs (auto.master auto.test)
磁道 扇区512B 柱面
raid(磁盘阵列)
mdadm -C -n1 -l4 /dev/sda
raid 0 条带化
raid 1 冗余
raid 5 带奇偶校验的条带化(左旋、右旋)
raid 10
lvm(空间整合、在线扩容)
创建
pvcreate /dev/sdb /dev/sdc
vgcreate vg0 /dev/sdb /dev/sdc
lvcreate -L 500M -n /dev/vg0/lv0 vg0
扩容
lvextend -L +500M /dev/vg0/lv0
lvs
resize2fs /dev/vg0/lv0
缩小
e2fsck -f /dev/vg0/lv0
lv快照(存的元数据)
/dev/vg0/lv0 500M /dev/vg0/lv0-snap 50M cow(copy on write写时拷贝)
lvcreate -L 50M -s -n /dev/vg0/lv0-snap /dev/vg0/lv0
1.只用快照文件
2.只用源lv
swap
mkswap /dev/sda5
swapon /dev/sda5
swapon -s
swapoff /dev/sda5
swapon -s
quota 磁盘配额 size inode
软限 到软限之后可以继续增加
硬限 到硬限之后不可以继续增加。而且当你删除一些东西之后一样不能增加。一直到软限值。
软链接ln -s和硬链接ln
符号链接必须写绝对路径ln -s
硬链接inode相同 符号链接inode不同
符号链接的链接权限永远是777
符号链接源文件删除后不能访问
符号链接可以作用与目录 硬链接只可以用于文件
符号链接可以跨文件系统,硬链接不可以跨文件系统
find
-name
-type
-link
-user
-group
-regex
-size
-mtime
-perm
-a
-o
-exec
文件打包压缩
tar zcvf a.tar.gz /etc
tar jcvf a.tar.bz2 /etc
tar Jcvf a.tar.xz /etc
tar xvf a.tar.gz
gzip gunzip
bzip2 bunzip2
软件包管理:
rpm:
rpm -ivh /yum/Packages/httpd-2.2.15-39.el6.centos.x86_64.rpm'
rpm -q httpd
rpm -ql httpd
rpm -qf /etc/man.config
rpm -qf `which nmap`
rpm -e httpd
yum:
1.挂载镜像 /yum
2.创建配置文件 /etc/yum.repos.d/
touch /etc/yum.repos.d/yum.repo
vim /etc/yum.repos.d/yum.repo
[centos]
name = centos
baseurl = file:///yum
gpgcheck = 0
enabled = 1
yum install httpd-devel
yum install -y httpd-devel
yum reinstall httpd-devel
yum remove httpd
yum clean all
yum makecache
createrepo 软件包所在的位置
源码包:
./configure --predix=/usr/local/mysql
make
make install
半源码包:
rpm -ivh lftp.src.rpm
~/rpmbuild/SPECS
rpmbuild -bb lftp.spec
~/rpmbuild/RPMS
计划任务cron
用户:
cronie-1.4.4-12.el6.x86_64
[root@localhost ~]# crontab -e
* * * * *
分 时 日 月 周
[root@localhost ~]# cat /var/spool/cron/root
10 02 * * 6 date > /tmp/aa.txt
系统:
cron.monthly/
cron.daily/
cron.hourly/
cron.weekly/
vim /etc/cron.deny 把用户名写入该文件 此用户就不能使用计划任务了
文件系统
dumpe2fs /dev/sda1
tune2fs -l /dev/sda1 只查看超级块信息
卷标
[root@localhost ~]# tune2fs -L test /dev/sda5
[root@localhost ~]# mount LABEL=test /mnt/
修改最大挂载次数
[root@localhost ~]# tune2fs -c 100 /dev/sda5
修改当前挂载次数
[root@localhost ~]# tune2fs -C 50 /dev/sda5
添加默认属性
[root@localhost ~]# tune2fs -o acl /dev/sda5
取消默认属性
[root@localhost ~]# tune2fs -o ^acl /dev/sda5
UUID挂载
[root@localhost ~]# mount UUID=c94fc044-19b5-40bb-9967-a24e9a2785dc /mnt/
修改UUID
[root@localhost ~]# tune2fs -U c94fc044-19b5-40bb-9967-a24e9a2785d9 /dev/sda5
内核升级 模块管理
模块管理
模块存储存储位置
[root@localhost ~]# ls /lib/modules/2.6.32-504.el6.x86_64/kernel/
查询已加载模块
[root@localhost ~]# lsmod
模块信息
[root@localhost ~]# modinfo ext4
加载模块
[root@localhost ipv4]# insmod /lib/modules/2.6.32-504.el6.x86_64/kernel/net/ipv4/tcp_lp.ko
卸载模块
[root@localhost ipv4]# rmmod tcp_lp
动态加载模块:
[root@localhost ipv4]# modprobe tcp_lp
动态加载所依赖查询的文件:
/lib/modules/2.6.32-504.el6.x86_64/modules.dep
/lib/modules/2.6.32-504.el6.x86_64/modules.dep.bin 优先查这个文件
重新建立依赖文件:
[root@localhost 2.6.32-504.el6.x86_64]# depmod -a
share object .so结尾的库文件
kernel object .ko结尾的内核模块
编译新内核
[root@localhost ~]# tar -xvf linux-3.10.5.tar.xz -C /usr/local/src/
[root@localhost linux-3.10.5]# cd /usr/local/src/linux-3.10.5
设备文档
[root@localhost Documentation]# vim /usr/local/src/linux-3.10.5/Documentation/devices.txt
或者
[root@localhost linux-3.10.5]# yum install kernel-doc.
[root@localhost linux-3.10.5]# rpm -ql kernel-doc | grep devices.txt
/usr/share/doc/kernel-doc-2.6.32/Documentation/devices.txt
创建块/字符设备文件
[root@localhost linux-3.10.5]# mknod -m 660 /dev/sda5 b 8 5
c b是块设备c是字符设备
编译内核:
配置内核参数
[root@localhost linux-3.4.4]# make menuconfig
编译
[root@localhost linux-3.4.4]# make
安装模块
[root@localhost linux-3.4.4]# make modules_install
安装内核
[root@localhost linux-3.4.4]# make install
[root@localhost]#uname -r
2.6.32-504.el6.x86_64
主版本号.次版本号.修订版本号.系统版本.平台
次版本号: 奇数(测试版) 偶数(稳定版)
启动过程
一.加电,自检,读取bios设定,通过硬盘启动
二.读取硬盘的第一个512字节(MBR)(446字节-引导程序 64字节-分区表 2-magic number)
stage1 512B----->stage1.5 其中各种文件系统驱动------>stage2 真正的引导程序
/boot/grub/grub.conf 引导程序配置文件
default=1 设置默认启动的title
timeout=5 进入系统前的计时
hexdump 查看十六进制文件
[root@localhost 桌面]#dd if=/dev/sda of=MBR bs=512 count=1
[root@localhost 桌面]#hexdump MBR
od 查看八进制文件
grub 引导程序名字
lilo
bootloader --->
1)手动引导操作系统(当grub.conf丢失)
root (hd0,0)
kernel /vmlinuz-2.6.32-504.el6.x86_64 ro root=/dev/sda2
initrd /initramfs-2.6.32-504.el6.x86_64.img
boot
grub加密
hiddenmenu
password --md5 $1$gGkmw$wiUrD9Z.mJK4/.MhcsSOa0
[root@localhost 桌面]# grub-md5-crypt
Password: 123
Retype password: 123
$1$gGkmw$wiUrD9Z.mJK4/.MhcsSOa0
2)修复引导程序
破坏引导程序:
dd if=/dev/zero of=/dev/sda bs=446 count=1
修复:
1.光盘或者U盘引导盘 进入修复模式(进光盘系统,内存)
2. grub
root (hd0,0)
setup (hd0)
3.重启系统
三.通过引导程序(grub)-----grub.conf(grub程序找到内核文件位置,启动文件位置,内核参数)
vim /boot/grub/grub.conf
四.将内核释放到内存,由内核启动第一个进程(init)
五.init进程读取配置文件
/etc/inittab 确定运行级别
/etc/init/rcS.conf 系统初始化(/etc/rc.sysinit)
etc/init/rc.conf 确定当前运行级别的前提下,执行不同脚本
/etc/rc.d/
rc1.d/ rc3.d/ rc5.d/ rc0.d/ rc2.d/ rc4.d/ rc6.d/
/etc/init/control-alt-delete.conf 重启键设定
/etc/init/tty.conf 和 /etc/init/serial.conf 设置tty的数量
六.启动对应级别的其他进程
七.执行进入系统前最后一个执行脚本rc.local
八.加载文本资源 login
九.加载图形资源 login
十.通过认证,加载环境变量,进入系统
hexdump 查看十六进制文件
[root@localhost 桌面]#dd if=/dev/sda of=MBR bs=512 count=1
[root@localhost 桌面]#hexdump MBR
od 查看八进制文件
网络管理:
[root@localhost ~]# ifconfig
[root@localhost ~]# ifconfig eth2
[root@localhost ~]# ifdown eth2 取消激活
[root@localhost ~]# ifup eth2 激活网卡
setup 设置ip地址
service network restart 重启网卡
网卡配置文件:/etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE=eth2 设备名
TYPE=Ethernet 以太网
ONBOOT=yes 是否开机或者重启网卡时启动
NM_CONTROLLED=yes NetworkManager管理器
BOOTPROTO=none 启动协议(dhcp|static|none)
IPADDR=172.16.20.1 ip地址
NETMASK=255.255.255.0 子网掩玛
GATEWAY=172.16.20.254 网关
chkconfig NetworkManager off 关闭网卡管理器
[root@jiajiren ~]# mii-tool eth0 看网卡是否链接网线
eth0: negotiated 100baseTx-FD, link ok
[root@jiajiren ~]# mii-tool eth1
eth1: no link
网关:网络出口
主机1: 172.16.20.1 网关:172.16.20.10
主机2: 192.168.1.1 网关:192.168.1.10
主机3: 172.16.20.10
192.168.1.10
临时开启路由转发功能 echo 1 > /proc/sys/net/ipv4/ip_forward
临时添加网关
route add default gw 172.16.20.10
临时删除网关
route del default gw 172.16.20.10
内核参数:
/proc/sys/net/ipv4/ip_forward 开启路由转发功能 1开启 0关闭
/proc/sys/net/ipv4/icmp_echo_ignore_all 不响应ping请求 1 不响应 0 响应
/proc/sys/vm/drop_caches 1.释放cache 2.释放buffer 3.释放cache和buffer
永久修改内核参数:
[root@localhost ~]# vim /etc/sysctl.conf
[root@localhost ~]# sysctrl -p 刷新内核参数配置
网卡子接口:(网卡别名)
临时添加:(重启后消失)
ifconfig eth2:0 10.10.10.1/24
永久生效:
[root@localhost ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth2 /etc/sysconfig/network-scripts/ifcfg-eth2:0
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth2:0
DEVICE=eth2:0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=10.10.10.1
NETMASK=255.255.255.0
其他网络命令
arp 查询arp缓冲表
arping 查询ip地址是否冲突的(将ip地址解析成mac地址)
arping -I eth2 172.16.20.254
traceroute 路由追踪(查看到目标主机经过多少个路由)
ip
[root@localhost ~]# ip addr show
route(路由表)
route -n 查询
添加网关
route add default gw 172.16.20.10
删除网关
route del default gw 172.16.20.10
设置主机名:
临时:
[root@localhost ~]# hostname myhostname
[root@localhost ~]# hostname
myhostname
永久:
[root@localhost ~]# vim /etc/sysconfig/network
HOSTNAME=myhostname
解析主机名:
[root@localhost ~]# vim /etc/hosts
172.16.20.1 myhostname
虚拟机网络配置
桥接
NAT( vmnet8 )
仅主机(vmnet1)