1)分区目的:安全性和读写性能,保护关键分区内容;
2)/usr: user app存放,
3)/var:记录改变的文件,日志
4)查看swap用量方法:
free;
swapon -s
cat /etc/proc/swaps
5)释放cache:
echo 1/2/3 > /proc/sys/vm/drop_cache 1-page, 2-inode, 3-all
1 释放缓存的文件内容
2 释放缓存的目录信息
3 同时释放缓存的目录信息和文件内容
6)删除swap分区方法:
swap off -> /etc/fstab中删除
7#)linux 内存管理:
linux读取数据的基本方法是内核先把数据,例如文件或程序从磁盘加载到内存,之后CPU去内存读取,写入数据的方法是cpu把数据先写进内存,再由内存写入到磁盘,因为内存的读取速度比磁盘要快得多,所以buffer/cache概念诞生, 他们都是内存中分出的高速空间,虽然他们可以不止应用于内存:
读: cache会存放系统读取过的数据,如果再用他们,直接从cache读,数据使用完后,也不会立即释放回磁盘,时间久了内存占用就会加大,这时swap概念诞生,用硬盘模拟内存,如果物理内存紧张,会把内存中暂时不用的内存页面交换到swap分区。
写: cpu把数据先写进buffer,积累到一定的量,集中写入磁盘。
8#) 内存分页与分段:
9)/proc的文件都在内存,不占用硬盘空间,类似注册表。
10#)禁ping的方法:
1. echo 1> /proc/sys/net/ipv4/icmp_echo_ignore_all
2. iptables实现:
11)关机前查看的事项:who/netstat/ps-aux/df -h
12)/etc/inittab 里设置runlevel
13)chgrp设置组属性,chmod改变文件权限,chown改变文件所有者
14) x权限对目录是cd,对文件是是否可运行。
15) 在用户的所属目录下,即使该用户对某个文件无权限,也要按照目录权限来执行。
16) ls -i查看inode, ls-d仅列出目录名
17) head -n, tail -n +100->看100行以后的,tail -n 10->最后10行
18) 文件的atime: access time,例如cd,不改变任何数据和属性
mtime: modify time, 例如vi, 内容修改时间
ctime: change time, 改变inode的时间,例如该权限,所属用户组
19)umask是对默认权限的修改,root是022,user是002, 例如root用户创建文件,默认都是777,但是真实的是777-022, 减去了g和o的1个权限。
20)查看raid: cat/proc/mdstat
21)裸盘加入文件系统, raid->fdisk->mk2fs->mount
22)chattr设置文件隐藏属性,chattr+i文件不能删除。
23)显示文件隐藏属性: lsattr
24) file命令:查看某个文件是data还是acs2码
25)which查找命令路径
26) whereis locate查找文件比find要快,是因为find是查询磁盘,他们两个是查询一个linux数据库,位于/var/lib/mlocate, 更新这个数据库的命令是update db, 配置文件在/etc/update.conf
27)进入目录或者执行文件要有x权限。
28)文件系统的作用是配合相应的OS来布置和识别数据,格式化的目的是为了做成fs可读取的格式。
29)inode是存放文件存储位置的文件,例如文件的block在硬盘的1,5,10扇区,inode就记录了这个列表以及文件属性,所属组,size,acm time,默认128KB,dentry文件记录了文件的文件名,路径和inode号,在读取文件时,是先通过文件名读取dentry,然后找到inode,再找到block,一个或多个dentry指向inode,一个文件只占一个inode,但是一个inode可以指向多个文件。
30)软链接硬链接区别:
根本区别在于inode和block文件,软链接自己占了一组新的inode和block, 软链接->inode->block->源文件->源文件inode->源文件block, 虽然block只存放文件名,硬链接没有自己的iblock,与源文件公用一个inode, 硬链接/源文件->inode->block ,硬链接不能跨分区和fs。
linux inode有一个数据结构叫i_count,是1,2,3的阿拉伯数字,意为inode链接的介质计数器,当变为0时,文件block数据才真正删除,所以看上一段的关系,硬链接的i_count为2,软链接为1,删除元数据,软链接就不能读了,硬链接还可以读取,因为i_link只是变为了1,另外硬链接不占空间,软链接要占一个block的空间来存放软链接的文件名。
31)inode bitmap是inode的一个数据结构,用来记录linux中未使用的inode。
block bitmap用来记录哪些block是空的。
32)df-T 显示fs, df-i显示inode.
32-1) fdisk分区后不重启生效分区表:fdisk->partprobe
32-2) 大于2T的分区用parted代替fdisk命令。
32-3)查看磁盘健康命令:
badblocks -v /dev/sda
fsck 命令修复
32-4) 内核读取设备的原则是按照major和minor区分,major是不同设备类型,minor是同一设备类型的不同响,例如ls查看/dev/可以看到sd*的major是8,sda的minor是1,sdb是2.
32-5)转化问系统ext2到ext3命令:tune2fs -j <分区>
33)开机挂载: /etc/fstab里写入 挂载磁盘要用uuuid,因为sd名字可能会变,实际是在/etc/mtab生效。
/dev/sda6 /mnt/winE vfat defaults 0 0
33-2) 查询uuuid方法:
blkid (uuuid写在一起,没有区分)
ls -l /dev/disk/by-uuid
33-3)查看一个硬盘的详细信息比如mount点,label,block使用,inode使用可以用命令dump2fs /dev/sda
34)人为制作一个大文件: dd if=/dev/zero of=/home/123 bs=1024 count=10, 制作一个10M文件
35)mount命令: mount [-t vfstype] [-o options] device dir
-o options 主要用来描述设备或档案的挂接方式。常用的参数有:
loop:用来把一个文件当成硬盘分区挂接上系统
ro:采用只读方式挂接设备
rw:采用读写方式挂接设备
36 ) 创建一个swap分区:
1. mkswap /home/123
2. swapon /home/123
3. swapon -s 查看swap
37) Linux下备份恢复命令:
dump/restore
find |cpio > /mnt /cpio -idvc < x.cpio
dd if = of= bs= count=
tar
38) /etc/passwd存放系统存在的用户,/etc/shadow存放相应的密码
39#)setfacl getfacl
40) 查询UID与GID方法:id <用户名>
41)linux登陆过什么用户: last
42) at命令用法:
at <时间> -> 写入命令
ctrl+D退出
atq查看at命令队列
at -c <队列值> 编辑
43#)LINUX中程序生成的过程:
首先内核会调用fork复制该进程的父进程到内存,开辟一块空间,复制的内容包括环境变量程序参数等,是一个除了pid与父进程一模一样的进程,返回值是一个新的pid以及ppid,然后调用exec函数读取新程序的指令环境变量等,成为新的进程。
44)nohup与&
放在命令结尾,nohup表示即使退出当前shell也回继续执行,&表示在后台执行,不在前台显示,但是退出shell也就结束了,一般配合使用
45)crtl +Z是暂停,jobs命令可以查看暂停中的命令,fg[号码]可以调回暂停的中的命令。
46)ps -l查看本shell,ps-aux是查看所有shell的。
47)孤儿进程与僵尸进程:
正常进程结束:一个进程结束后,父进程需要调用wait()函数取得子进程的状态并终止。
孤儿进程:父进程退出,子进程还在,这种情况会由init接管,并有init终止进程。
僵尸进程:子进程结束时父进程没有调用wait函数来结束,可以通过杀死父进程来解决。
48)top命令中按p查看cpu,按m查看memory,按r重置(renice)进程的nice值。
49)改变进程的优先级方法:
进程优先级是有pr+nice值决定的,pr是系统赋予的,默认20,nice值范围 -20~19
改变nice的方法:
1.nice -n <number> vi ,给vi这个命令直接赋值
2. renice <number> <pid>
3. top中输入r
50) dmesg命令的输出是内核启动过程中检测的系统硬件信息。
51)vmstat输出的si so是表示与swap分区交互的信息,bi bo是对硬盘读写的信息。
52)通过free命令可以看到真实的内存使用是与buffer cache相关,空闲的要加上他们,使用的要减去他们
53)/proc下的信息都是与内存运行相关的。
/proc/<pid>下的文件。cmdline代表真实的指令串,enviroment代表环境标量,exec代表程序的路径
54)查询进程调用命令:
1. fuser -m -u <目录> 查看pid(m) 和用户(u), 另外fuser -k还可以杀死目录占用的进程,例如强制umount fuser -k /mnt
2.lsof -u <user> 查看user打开的进程
3. lsof -d <目录> 查看目录打开的进程
4. lsof -p <port> 查看port调用的进程
5,pidof <程序名字> 查看程序的pid
55)查看程序调用的进程 线程
1. top -H -p <pid> 显示的是该pid下的线程。
2. pstree -p <pid> 显示该pid下的子进程,很直观
3. cat /proc/<pid>/status, 查看进程状态,能看到进程和线程的个数
4. strace -p <pid> 查看pid调用的详细过程。
56)查看启动级别: runlevel, who -r, initrd文件
57)find按不同层级文件夹查询:
在root目录及其子目录下查找passwd文件。
# find / -name passwd
./usr/share/doc/nss_ldap-253/pam.d/passwd
./usr/bin/passwd
./etc/pam.d/passwd
./etc/passwd
在root目录及其1层深的子目录中查找passwd. (例如root — level 1, and one sub-directory — level 2)
# find -maxdepth 2 -name passwd
./etc/passwd
在root目录下及其最大两层深度的子目录中查找passwd文件. (例如 root — level 1, and two sub-directories — level 2 and 3 )
# find / -maxdepth 3 -name passwd
./usr/bin/passwd
./etc/pam.d/passwd
./etc/passwd
在第二层子目录和第四层子目录之间查找passwd文件。
# find -mindepth 3 -maxdepth 5 -name passwd
./usr/bin/passwd
./etc/pam.d/passwd
本文转自UVN2015 51CTO博客,原文链接:http://blog.51cto.com/10851095/1944555,如需转载请自行联系原作者