您的位置:首页 > 其它

拾遗:基础知识回顾-01

2011-08-25 12:24 302 查看
SECTION A

Aa、禁用ctrl alt delete三键重启:注释掉/etc/inittab中的如下部分

# What to do at the "Three Finger Salute".
#ca:12345:ctrlaltdel:/sbin/shutdown -r now


Ab、vim直接全篇搜索光标所在单词

快捷键 shift #

Ac、bash数组删除元素或整个数组

unset ARRAY

unset ARRAY

Ad、获取帮助信息的渠道

whatis(首次运行需mandb或makewhatis):显示命令或文档的man手册简介,等价于执行man -f

COMMAND --help:外部命令专用

man / info

help COMMAND:内部命令专用

程序自身文档:INSTALL、README、ChangeLog等

redhat知识库:https://access.redhat.com

Ae、显示日历:cal

Af、date -u/--utc显示世界时间(格林尼治时间)

Ag、man手册

配置文件:/etc/man.conf 或 /etc/man_db.conf

临时指定man目录:man -M dir COMMAND

man章节:1-用户命令,2-系统调用,3-C库调用,4-设备文件及特殊文件,5-配置文件格式,6-游戏,7-杂项,8-管理类命令,9-Linux内核API

man -a:顺序查看全部章节

Ah、大小写是否敏感是由文件系统决定的,非操作系统,如fat文件系统在Linux上是不区分大小写的

Ai、文件系统分层结构:LSB——Linux Standard Base,FHS——Filesystem Hierarchy Standard

Aj、包括path name在内的文件名全长不能超过4095个bit,两个/之间的字符长度不能超过255个bit

Ak、block device是随机访问,character device是线性顺序访问

Al、/usr目录:universal shared&readonly data

/usr/include:C头文件存放目录

/usr/share:结构化独立数据,如man、doc、fonts等

/usr/local:用户自行编译的包的推荐安装目录

Am、/var目录:variable data files

/var/cache:应用程序缓存数据目录

/var/lib:应用程序状态数据目录

/var/local:专用于为/usr/local目录的程序存储可变数据

/var/lock:锁文件

/var/log:日志

/var/opt:第三方软件可变数据

/var/run:运行中进程相关数据,常用存储进程pid文件

/var/spool:应用程序数据池,如用户的crontab文件

/var/tmp:保存系统两次重启之间产生的临时数据

An、/proc、/sys、/selinux

/proc:内核与进程信息相关的虚拟文件系统

/sys:硬件设备相关的虚似文件系统

/selinux:selinux相关安全策略存储位置,security enhanced Linux

Ao、CWD、pwd

CWD:current work directory

pwd:printing working directory

$PWD:当前工作路径

$OLDPWD:上一次所在路径

Ap、预定义字符类:实际应用中需再加一层中括号如——[[:punct:]]

[:space:]:空白字符,包括空格、横竖制表符、换页符等

[:lower:]:小写字母

[:upper:]:大写字母

[:alpha:]:大小写字母

[:alnum:]:大小家字母和数字

[:punct:]:标点符号

Aq、touch

touch --reference=file:以另一个文件的mtime更新

touch -t:格式 [[CC]YY]MMDDhhmm[.ss]

touch -c:如果文件存在,则更新时间戳;若不存在,不创建文件(默认将创建新的空文件)

Ar、cp

cp -d:复制软链接,而非其指向的实际文件

cp -a:还当于cp -d -r --preserv=all,即递归复制并尽可能保留所有属性不变

As、alias

alias [-p]:显示所有已定义的别名

unalias NAME:临时使别名失效,-a选项临时清除所有别名

\COMMAND:不使用别名

At、tree:显示目录及文件结构

tree PATH -L 1 -d:仅显示PATH路径的目录结构,显示深度1层

Au、inode:index node

索引节点是一个表项,包含文件的元数据——文件类型、权限、gid、uid等,即stat命令显示的内容

文件名称是inode的外壳(wrapper),同一个inode可对为多个文件名称,指向同一inode的文件名称互为硬链接

rm文件实质是回收文件占用的inode,数据并非即时清空

同一磁盘分区内的mv操作,实质是更改wrapper,并无实际的数据移动

Av、打开的文件都有一个fd:file descriptor(文件描述符)

Aw、安全相关:3A

Authentication:认证

Authorization:授权

Accouting|Audition:审计

Ax、用户安全相关

token:令牌

identity:身份

Ay、uid

root:0

其它:1-65535

Az、pwck&grpck:检查passwd、group、shadow、gshadow等文件的正确性

SECTION B

Ba、用户及组密码相关文件的默认属性

配置文件:/etc/login.defs

Bb、su ROOT -c COMMAND:临时以root身份运行命令,不切换身份

Bc、passwd -e:强制用户下次登陆时修改密码

Bd、attr

chattr +i:文件或目录内容完全不可修可

chattr +a:文件或目录只可追加不可修改

lsattr:查看文件的attr权限

lsattr -d查看目录的attr权限

Be、acl

setfacl -k dir:清除目录默认acl权限

setfacl -b dir/file:清除全部acl权限

setfacl --set-file=otherfile file:复制其它文件的acl权限

Bf、cut、paste

cut -d ':' -f 3,5,6-7:以冒号为分割符切出3、5、6、7行

paste -d ':' file1 file2...: 以冒号为分割符纵向合并多个文件

paste -s file1 file2:相当于去掉所有换行符之后,再cat file1 file2

Bg、wc

wc -l:行数;wc -w:单词数;wc -m:字符数;wc -c:字节数

Bh、sort、uniq、diff

-t 指定分割符;-k 指定以第几列为标准进行排序;-n 以数字顺序排序;-r反向排序

uniq -c 显示每行重复的次数(连续且完全相同方为重复,故必须在排序后使用)

diff -ur 比较两个文件的不同之处

Bi、grep

grep PARTTERN -A 2:显示匹配到的行与这行之后的2行

grep PARTTERN -B 3:显示匹配到的行与这行之前的3行

grep PARTTERN -C 4:显示匹配到的行与这行前后各4行

Bj、sed:默认对全文中每行的第一个匹配项进行操作

sed -e:用-e连接,在一行中同时执行多个操作

sed -r:支持扩展正则表达式

sed -f file:从指定文件中读取匹配条件

Bk、vim

vim -d file1 file2 file3...:比较多个文件

命令模式下——r file读取文件到光标所在行之后,w file将当前编辑的文件另存为file,r! COMMAND将命令输出插入到光标行之后,!叹号可用于在vim内执行前显示命令结果

H跳至当前视图的页首

L跳至当前视图的页尾

M跳至当前视图的页中

#G跳转至#行,#指输入的代表行号的数字

~转换光标所在位置字符为大写或小写

r用新输入的字符替换光标所在位置字符

R转换为replace模式,可连续替换

D从光标处删除至行尾

d0从光标处删除至行尾

Bl、BASH

不支持浮点数

显示已定义的所有变量set

显示所有环境变量export、env、printenv

删除变量unset NAME

算术let VAR=或VAR=$[]或VAR=$(())

生成随机数变量$RANDOM

小括号(COMMAND)内的命令在子shell中执行

-s是否存在且非空

-e是否存在

-z是否为空

-n是否非空

双目测试:file1 -ef file2,指file1和file2是否指向同一inode;-nt -ot指file1是否比file2新或旧,指modify时间

read -p 'Please xxxx: ' VAR显示提示信息并把用户的输入赋值给变量VAR

函数中返回执行状态值(0或非零),用return而不是exit

函数可以跟脚本一样接受$n形式的位置参数

${#VAR[@]}显示数组元素数量

${VAR[@]}显示数组所有元素

${VAR
}显示第N个元素,N可以为负数

VAR=(${VAR[@]} "aa" "bb" "cc")向数组中追加元素

VAR
="xxx"替换数组中已经存在值

declare -a声明数组

declare -A声明关联数组,类似于Python中的dict

declare -i声明变量为整数型

declare -x导出变量为全局变量(环境变量)

declare -r声明变量为只读变量(常量)

间接引用变量eval VAR1=\$$VAR2 或 VAR1=${!VAR2}

Bm、创建不冲突的临时文件或临时目录

mktemp [-d] [--tmpdir=DIR] *.XXX 其中-d指创建目录,--tmpdir=DIR指在哪个目录下创建,X至少要出现3次

Bn、install命令:类似于cp,但可同时赋予权限、属主、属组等属性

install -m 700 -o fanhui -g fanhui file1 file2:将file1复制为file2,同时改变其权限为700,属主和属组均为fanhui,-m选项默认的权限为755

Bo、~/.bash_logout

用于书写用户退出时需要执行的命令

Bp、locate

locate --regex 支持扩展正则搜索

locate -n N只列出前N个匹配项

Bq、cpio:通过stdin、stdout重定向进行压缩和解压的工具

#压缩
z f # ls te* | cpio -ov > test.cpio
te
tes
test
1 block
#解压
z f # cpio -idv < test.cpio
te
tes
test
test.cpio
1 block
#查看
z f # cpio -tv < test.cpio
-rw-r--r--   1 root     root           34 Aug 25 19:23 te
-rw-r--r--   1 root     root           24 Aug 25 19:20 tes
-rw-r--r--   1 root     root           26 Aug 25 19:24 test
-rw-r--r--   1 root     root            0 Aug 25 21:14 test.cpio
1 block


Br、硬盘存储术语

head磁头

track磁道

cylinder柱面

sector扇区

Bs、磁盘分区的意义

优化i/o性能

实现磁盘空间配额

提高修复速度

隔离系统和程序

安装多个OS

Bt、MBR&GPT

MBR:master boot record,即整个磁盘的0磁道0扇区,其中前446bytes用于存储boot loader,后64bytes用于存储分区表,最后2bytes值为55AA

GPT:GUID partition table,可以直接划分128个分区,使用128位的UUID表示磁盘和分区,分区表自动备份在头尾各一份,并有CRC校验位

Bu、partprobe、partx:刷新内存中的分区表

CentOS5、CentOS7中,直接执行partprobe即可

CentOS6中,须用partx替代,partx -a -n M,N /dev/sd*,partx -d -n M,N /dev/sd*

Bv、mke2fs、tune2fs、dumpe2fs、e2label、fsck、e2fsck、blkid

mke2fs -t ext4 -b 4096 -L "xxx" -m 4 /dev/sd* ext系列文件系统专用的格式化工具

blkid -U "uuid" 或 -L "Label" 根据指定的uuid或Label来查找设备

e2label /dev/sd* [Label] 显示及更改磁盘标签

tune2fs -l 显示指定文件系统的super block信息

tune2fs -m -O -o -U -L 分别用于修改预留空间、开启或关闭文件系统特性(特性前加^表示禁用)、设定默认的挂载选项(同O,^表示禁用)、修改uuid、修改Label

dumpe2fs -h 显示更加详细的super block分组信息

fsck -a 自动修复-r 交互式修复

e2fsck -y 自动修复 -f 强制修复

Bw、mount、swap

mount -L -U -t --bind --rbind --make-rslave [-o ro,rw,noexec...]

swapon -a 激活所有交换分区或文件

swapon swapoff 开启或关闭特定swap

Bx、fuser、lsof

fuser -v 或lsof MOUNT_POINT 显示正在访问指定文件系统的进程

fuser -km MOUNT_POINT 终止所有正在访问指定文件系统的进程

By、dd命令

dd if= of= bs=(单位bytes、M等) [ibs= obs=] skip=(N个ibs块或bs块) seek=(N个obs块或bs块) count=(复制N个bs块)

dd支持输入、输出重定向,可用于磁盘备份和恢复:

dd if=/path/to/image of=/dev/sdx
gzip -dc /path/to/image.gz | dd of=/dev/sdx


Bz、df、free、du

df -Th

free -M

du -sh

SECTION C

Ca、vim 自定义快捷键(map)

例如:在/etc/vim/vimrc中定义ctrl+p组合键,用于在绝对行首添加#

map ctrl+v+p 0i#<ESC>


注1:ctrl+v+p指连续按出ctrl、v、p三键,声明要定义的快捷键为ctrl+p

注2:0i#<ESC>定义快捷键的意义,即依次输入0、i、#、<ESC>四部分

Cb、ps

a: list all processes with a terminal (tty)

x: list all processes when used together with the a option

o: 用于自定义要显示的数据列,如pid、command、state、time等,可用“,”组合多个选项

root # ps axo pid,command,state | head
PID COMMAND                     S
1 /usr/lib64/systemd/systemd  S
2 [kthreadd]                  S
3 [ksoftirqd/0]               S
5 [kworker/0:0H]              S
6 [kworker/u16:0]             S
7 [rcu_sched]                 S
8 [rcu_bh]                    S
9 [migration/0]               S
10 [migration/1]               S


Cc、grep -m NUM:Stop reading a file after NUM matching lines

equal as:--max-count=NUM

Cd、ping -f -s 1499 HOST

-f: flood泛洪模式,极尽本机性能向HOST机发送packet

-s: Specifies the number of data bytes to be sent. The default is 56, which translates into 64 ICMP data bytes when combined with the 8 bytes of ICMP header data

Ce、swapon -a/swapoff -a

启用或关闭所有swap分区或文件

Cd、
www.example.com
真正的域名是
www.example.com.root
,简写为
www.example.com.
。因为,根域名
.root
对于所有域名都是一样的,所以平时是省略的

根域名的下一级,叫做"顶级域名"(top-level domain,缩写为TLD),比如
.com
.net


再下一级叫做"次级域名"(second-level domain,缩写为SLD),比如
www.example.com
里面的
.example
,这一级域名是用户可以注册的

再下一级是主机名(host),比如
www.example.com
里面的
www
,又称为"三级域名",这是用户在自己的域里面为服务器分配的名称,是用户可以任意分配的

域名的层级结构:host.sld.tld.root(主机名.二级域名.顶级域名.根域名)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: