• 拾遗:基础知识回顾01



     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[N]
    • 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个元素,N可以为负数
    • VAR=(${VAR[@]} "aa" "bb" "cc")向数组中追加元素
    • VAR[N]="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(主机名.二级域名.顶级域名.根域名)
  • 相关阅读:
    [Bzoj1009][HNOI2008]GT考试(动态规划)
    [Bzoj1016][JSOI2008]最小生成树计数
    [Bzoj3224][Tyvj1728] 普通平衡树(splay/无旋Treap)
    [Bzoj1061][Noi2008]志愿者招募(费用流)
    [Bzoj1087][SCOI2005]互不侵犯King(状压dp)
    [Bzoj1051][HAOI2006]受欢迎的牛(tarjan)
    [Bzoj1003][ZJOI2006]物流运输(spfa+dp)
    [Bzoj1026][SCOI2009]windy数(数位dp)
    插入随机数到MySQL数据库
    SSH框架整合配置所需JAR包(SSH整合)
  • 原文地址:https://www.cnblogs.com/hadex/p/5806303.html
Copyright © 2020-2023  润新知