本系列文章为<Linux Shell Scripting Cookbook>的读书笔记,只记录了我觉得工作中有用,而我还不是很熟练的命令 书是很好的书,有许多命令由于我比较熟悉,可能就没有记录在其中了 1. 获得进程的环境变量 cat /proc/$PID/environ 将原先彼此间的null('\0')分隔符替换成换行 cat /proc/1194/environ | tr '\0' '\n' 2. 获得字符串长度 length=${#var} 3. 数字运算 let, (()), []执…
cat,script,find, xargs, tr, tmp文件,字符串截取,批量文件重命名,固定大小文件,自动化交互 1. cat的用法 压缩连续的空白行 cat -s file 也可以用tr,将连续'\n',压缩成一个'\n' cat file | tr -s '\n' 显示制表符 cat -T file 显示行号 cat -n file 2. script命令 录制: script -t 2> time.log out.session type commands; exit退出录制 回放…
ping, du, ps, kill, 收集系统信息 判断网络中哪些主机是活动主机 #!/bin/bash for ip in 10.215.70.{1..255}; do ( ping $ip -c2 &> /dev/null ; if [ $? -eq 0 ]; then echo $ip is alive fi )& # ()中为子shell,后面的&表示后台执行 done wait #等待所有进程执行完才退出 du -a dir 递归地输出指定目录或多个目录中所有文件…
wget,curl, tar, rsync wget ftp://example.com/somefile.img -t 5 -O download.img -o log -t表示重试的次数 -O指定输出文件名 -o指定一个日志文件 wget -c URL 断点续传,如果下载在完成前被中断,可以用-c从断点处开始下载 用curl指定参考页,指定cookie curl -I --referer http://www.baidu.com https://www.cnblogs.com --cooki…
sed,awk 1. sed (string editor) 使用-i可以将结果运用于原文件 sed 's/text1/text2/' file > newfile mv newfile file 其实可以使用 sed -i 's/text1/text2/' file 搞定 如果加后缀g表示全部替换,不加只会替换每行的第一处匹配 使用Ng选择从第几处开始匹配,第二个例子是为了说明无论使用/或者|或者其他什么字符,都是可以用作定界符的 移除空白行 sed '/^$/d'  # /pattern/d…
正则, grep 1. 正则表达式  正则表达式  描述  示例 ^ 行起始标记  ^hell匹配以hell开头的行 $ 行尾标记  test$匹配以test结尾的行 . 匹配任意一个字符  hell.匹配hell1,hell2,但是不能匹配hell12,只能匹配单个字符 [] 匹配包含在[字符]之中的任意一个字符  test[123]匹配test1,test2,test3 [^] 匹配除[^字符]之外的任意一个字符  test[^12]不匹配test1,test2,匹配test3 [-] 匹配…
patch, tree, head ,tail 1. 创建不可修改文件 chattr +i file chattr -i file 移除不可修改属性 2. 能够启动闪存或硬盘的混合ISO isohybrid img.iso dd if=img.iso of=/dev/sdb1 通常情况下不能将可引导的ISO文件写入USB设备来引导操作系统,但是这种混合ISO可以做到(未测试) 3. patch patch v1 < v.patch #文件v1会变得跟v2一样 再执行一遍,输入y,则会还原成v1…
<The Linux Command Line> 读书笔记02 关于命令的命令 命令的四种类型 type type—Indicate how a command name is interpreted. type命令:展示命令的类型. which which—Display which executable program will be executed. which命令:展示可执行命令的位置. 因为可执行命令有可能会有多个版本,所以有必要根据位置来判断究竟是哪个. which仅对可执行程序…
<The Linux Command Line> 读书笔记01 基本命令介绍 1. What is the Shell? The Shell is a program that takes keyboard commands and passes them to the operating system to carry out. 提示符 $被称作shell prompt,它表明shell准备好接收输入. 通常是包含了你的用户名和机器名(username@machinename),之后是当前的…
<Linux内核分析>读书笔记(四章) 标签(空格分隔): 20135328陈都 第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统. 4.1 多任务 多任务操作系统就是能同时并发地交互执行多个进程的操作系统. 多任务系统可以划分为两类: 非抢占式多任务 进程会一直执行直到自己主动停止运行 抢占式多任务 Linux/Unix使用的是抢占式的方式:强制的挂起进程的动作就叫做抢占. 像所有unix…
LINUX SHELL脚本攻略笔记[速查]…
Linux Shell脚本攻略笔记[速查] 资源 shell script run shell script echo printf 环境变量和变量 pgrep shell数学运算 命令状态 文件描述符和重定向 cat 数组和关联数组 alias date 调试脚本 函数和参数 管道 读取命令输出 read 字段分隔符和迭代器 循环 比较和测试 find xargs tr md5sum sha1sum 对目录进行校验 sort uniq tempfile split bash变量匹配切分 exp…
前一阵子系统学习了下<linux shell脚本攻略>这本书.在此记录下自己的学习笔记 1. 输出颜色字符  echo -e "\e[1:41m" 1表示背景色   2.  echo 打印!需要注意  echo "hello, bash!"  会出错  需要改成 echo 'hello, bash!'   3. printf可用于格式化输出  printf "format"  var1 var2 ...   4.  echo  ech…
一个下午看了不少硬件层面的知识,看得太多太快容易忘记.于是在博客上写下读书笔记. 有关硬件 个人计算机架构&接口设备 主板芯片组为“南北桥”的统称,南北桥用于控制所有组件之间的通信. 北桥连接速度较快的组件(CPU.显卡.内存),被称为系统总线. 南桥连接速度较慢的组件(硬盘.USB.网卡),被称为I/O总线. (北桥频率称前端总线速度(FSB Hz),每次传输的位数为总线宽度(bit),总线频宽(M/s)则为“FSB*总线宽度”.) (例:前端总线速度为1600MHz,内存与北桥频宽为12.8…
Linux用户以及权限相关命令 查看身份 id:Display user identity. 这个命令的输出会显示uid,gid和用户所属的组. uid即user ID,这是账户创建时被赋予的. gid是primary group ID,是主要的组的id.当然这个用户也可以属于其他更多的组. 用户账户信息被定义在 /etc/passwd文件中,组信息被定义在/etc/group文件中. chmod 命令名称:chmod 命令英文原意:change the permissions mode of…
1. Ctrl+alt+FX(X=1~6)可以切换到6个不同的文字界面终端(Terminal) 再按Ctrl+alt+F7就可以回到X Window,按Ctrl+alt+Backspace这是结束所有进程并注销当前用户. startx命令可以在纯文本环境登陆X Window系统 2.[vbird@www~]$_    代表正确登陆后显示这一行信息 vbird表示当前用户账号 www是主机名 ~是当前所在目录 $是命令提示符 #是root的提示符 使用exit命令注销 3.echo $LANG显示…
Table of Contents 1 概论 1.1 procfs (/proc 文件系统) 1.1.1 编程接口 1.2 sysctl (/proc/sys目录) 1.2.1 编程接口 1.3 sysfs (/sys 文件系统) 1.4 ioctl 系统调用 1.5 netlink 套接字 概论 procfs (/proc 文件系统) 允许内核以文件的形式向用户空间输出内部信息. 可以通过cat, more和> shell重定向进行查看与写入. 编程接口 内核proc文件系统与seq接口(1)…
Table of Contents 1 概述 2 定义链 3 链注册 4 链上的通知事件 5 网络子系统的通知链 5.1 包裹函数 5.2 范例 6 测试实例 概述 [注意] 通知链只在内核子系统之间使用. 大多数内核子系统都是相互独立的,因此某个子系统可能对其它子系统产生的事件感兴趣.为了满足这个需求,也即是让某个子系统在发生某个事件时通知其它的子系统, Linux内核提供了通知链的机制.通知链表只能够在内核的子系统之间使用,而不能够在内核与用户空间之间进行事件的通知. 通知链表是一个函数链表…
Vim编辑器 Vim 仅仅通过键盘来在插入和执行命令等多种模式之间切换.这使得Vim可以不用进行菜单或者鼠标操作,并且最小化组合键的操作,对文字录入员或者程序员可以大大增强速度和效率. CHAPTER 1.VIM快速入门 一.Vim的六种基本模式 1.普通模式 Vim的普通模式用的编辑器命令,比如移动光标,删除文本等等.这也是Vim启动后的默认模式,而不是大多数编辑器的插入模式. 普通模式命令往往需要一个操作符结尾. 普通模式进入插入模式的方法:a键(append/追加)键或者i(insert/…
第五章  初次使用Linux man.info的使用 组合键:切换登录环境.Tab.Ctrl+c.Ctrl+d 正确关机的方法 开机过程的问题排解:文件系统错误.忘记root密码 第六章  文件权限&目录配置 修改文件的属性/权限:chown/chmod 权限对于文件/目录的不同意义 FHS目录配置标准:将目录定义成为4种作用交互形态,定义了/./usr./var下面应该放置什么数据 各目录的解读:一个特定的文件应放置在哪个目录下 第七章  文件与目录的管理 目录/文件的相关操作:mkdir.r…
http://www.1987.name/141.html shell基础 终端打印.算术运算.经常使用变量 Linux下搜索指定文件夹下特定字符串并高亮显示匹配关键词 从键盘或文件里获取标准输入 [read命令] 文件的描写叙述符和重定向 数组.关联数组和别名使用 函数的定义.运行.传參和递归函数 条件測试操作与流程控制语句 获取时间日期格式和延时 [date.sleep命令] 内部字段分隔符IFS和脚本的调试DEBUG 显示.读取或拼接文件内容 [cat命令] 文件查找与打印文件列表 [fi…
1.Cat命令 这么多命令,常用的 Cat –n file  显示文件以及行数 Cat - echo 'Text through stdin' | cat - file.txt Text through stdin this is file and test   #这个是file.txt的内容,而 –就是echo打印出管道符接的stdin. 2.录制并回放终端会话 利用script和scriptreplay命令 录制 $ script -t > timing.log -a output.sess…
1.#!/bin/bash shebang 可以自定义 比如 #!/bin/bash +x 就会打印出执行日志 linux中 \ 代表null \n2\n3” 会转义其中的\n,生成3行数据 $! 保存着最近一个后台进程的PID $? 是最后一个命令的执行状态 0或1 (如果函数有return整数,那拿到的就是整数) $# 传递给脚本的参数个数 $$ 当前shell进程的ID 单位秒,不需要加括号. Wait 要想等所有子进程结束之后 再终止脚本,就得使用wait命令. touch –d 可以造…
ls命令与长格式输出解释 文件权限 ls命令 ls 命令用于列出目录内容,不带参数时列出当前工作目录的内容,也可以指定目标目录(可以指定多个),列出目标目录下的内容. ls命令的参数 ls -l 长格式输出 ls命令加上-l参数,输出将是长格式的. 比如: -rw-r--r-- 1 root root 47584 2012-04-03 11:05 logo-Edubuntu.png 解释一下是什么意思: 首先,第一个字母说明文件类型,小横线-表示是二进制文件,d表示是目录,也即文件夹,l表示是软…
P30, preemptive  kernel .kernel threading 和Multithreaded application support没太好理解,我想如果设计个多线程的程序来运行运行,恐怕就好理解了.搞清楚了! 在source code里面, arch和include是和硬件相关的代码,arch下面是architecture-specific的文件, include下面放的是内核的所有头文件,其中带有asm前缀的子目录里面是particular architecture的头文件…
1.Unix的前身是由贝尔实验室(Bell lab.)的Ken Thompson利用汇编语言写成的, 后来在1971-1973年间由Dennis Ritchie以C程序语言进行改写,才称为Unix. 2.1977年由Bill Joy释出BSD (Berkeley Software Distribution),这些称为Unix-like的操作系统. 3.1984年由Andrew Tanenbaum制作出Minix操作系统,该系统可以提供原始码以及软件. 4.1984年由Richard Stallm…
1.Linux的目录配置以『树状目录』来配置,至於磁碟分割槽(partition)则需要与树状目录相配合! 请问,在预设的情况下,在安装的时候系统会要求你一定要分割出来的两个Partition为何? 答:就是根目录『/』与内存置换空间『Swap』 2.若在分割的时候,在 IDE1 的 slave 硬盘中,分割『六个有用』的分割槽 (具有 filesystem 的) ,此外,已知有两个 primary 的分割类型!请问六个分割槽的档名? 答:/dev/hdb1(primary) /dev/hdb2…
1.在Linux系统中,每个设备都被当成一个文件来对待,每个设备都会有设备文件名.比如 IDE接口的硬盘文件名为/dev/hd[a-d] 括号内的字母为a-d当中任意一个,即/dev/hda,/dev/hdb,/dev/hdc,/dev/hdd四个文件. 装置 装置在Linux内的档名 IDE硬碟机 /dev/hd[a-d] SCSI/SATA/USB硬碟机 /dev/sd[a-p] USB快闪碟 /dev/sd[ap](与SATA相同) 软碟机 /dev/fd[0-1] 印表机 25针: /d…
Table of Contents 1 概述 1.1 帧接收的中断处理 2 设备的开启与关闭 3 队列 4 通知内核帧已接收:NAPI和netif_rx 4.1 NAPI简介 4.1.1 NAPI优点 4.2 NAPI所用之net_device字段 4.3 net_rx_action软中断处理函数和NAPI 4.4 新旧驱动程序接口 概述 帧接收的中断处理 把帧拷贝到sk_buff数据结构. 对一些sk_buff参数做初始化,以便稍后由上面的网络层使用. 更新其他一些该设备私用函数. 设备的开启…
Table of Contents 1 接收到帧时通知驱动程序 1.1 轮询 1.2 中断 2 中断处理程序 3 抢占功能 4 下半部函数 4.1 内核2.4版本以后的下半部函数: 引入软IRQ 5 网络代码如何使用软IRQ 6 softnet_data结构 接收到帧时通知驱动程序 轮询 例如,内核可以持续读取设备上的一个内存寄存器,或者当一个定时器到期时就回头检查哪个寄存器. 中断 此时,当特定事件发生时,设备驱动程序会代表内核指示设备产生硬件中断.内核将中断其他活动,然后调用一个驱动程序 所…