指令:基本的计算机操作,例如:加法、减法等
程序:指令的集合,一般有执行属性。看作:菜谱
进程:是程序的实例,是程序执行的过程。看作:按照菜谱进行做菜的过程
查看进程:
ps -ef
cat的工作原理:接受输入,然后完整输出。输入什么内容,cat就会输出什么内容。
输入、输出:
程序的默认输入设备,叫标准输入。 stdin 键盘 0
程序的默认输出设备,叫标准输出。 stdout 监视器 1
程序的默认错误输出设备,叫标准错误输出。stderr 监视器 2
输出重定向 >、>>、>|:
把输入内容输出到其他地方。
>:COMMOND > FILE 覆盖重定向
例如: ls / > /tmp/ls.txt
默认覆盖掉>指定文件的内容,
可以使用 set -C 关闭覆盖功能。set +C打开覆盖功能。
>>:COMMOND >> FILE 追加重定向
>|:COMMOND >| FILE 强势覆盖重定向(忽略set -C设置)
输入重定向:
<:COMMOND < FILE
例如:tr ‘a-z’ ‘A-Z’ < /etc/passwd
<<:heredoc
<<EOF
AAAAAAAAA
CCCCCCC
EOF
错误输出重定向:
COMMOND 2> FILE
COMMOND 2>> FILE
正确/错误输出重定向:
COMMOND > FILE 2> FILE2 正确的信息输出到FILE中,错误的输出到FILE2中
COMMOND > FILE 2> &1
COMMOND &> FILE
COMMOND >& FILE
管道:
把第一个命令的输出当做第二个命令的输入,管道值传递正确的信息。
连接左右两个命令,将左侧的命令的标准输出,作为右侧命令的标准输入
COMMOND | COMMOND2 | COMMOND3
command >file: 标准输出重定向到一个文件,错误仍然输出屏幕
command >>file: 标准输出重定向到一个文件(追加)
command 1>file1: 标准输出重定向到一个文件
command 2>>file2:标准错误重定向到一个文件(追加)
command 1>file 2>&1:标准输出和标准错误一起重定向到一个文件
command>>file 2>&1: 标准输出和标准错误一起重定向到一个文件(追加)
echo命令介绍
功能说明:显示文字。
语 法:echo [-ne][字符串] / echo [–help][–version]
补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。
参 数:
-n 不要在最后自动换行
-e 打开反斜杠ESC转义。若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;
-E 取消反斜杠ESC转义 (默认)
-help 显示帮助
-version 显示版本信息
xargs命令介绍
xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令,下面是一些如何有效使用xargs 的实用例子。
当你尝试用rm 删除太多的文件,你可能得到一个错误信息:/bin/rm Argument list too long. 用xargs 去避免这个问题
find ~ -name ‘*.log' -print0 | xargs -0 rm -f
获得/etc/ 下所有*.conf 结尾的文件列表,有几种不同的方法能得到相同的结果,下面的例子仅仅是示范怎么实用xargs ,在这个例子中实用 xargs将find 命令的输出传递给ls -l
find /etc -name "*.conf" | xargs ls –l
假如你有一个文件包含了很多你希望下载的URL, 你能够使用xargs 下载所有链接
cat url-list.txt | xargs wget –c
查找所有的jpg 文件,并且压缩它
find / -name *.jpg -type f -print | xargs tar -cvzf images.tar.gz
拷贝所有的图片文件到一个外部的硬盘驱动
ls *.jpg | xargs -n1 -i cp {} /external-hard-drive/directory
grep
数据提取程序
用途:在文件中查找并显示包含指定字符串的行
格式:grep [选项]... 字符 目标文件
-i:查找时忽略大小写
-v:反转查找,输出与模式不相符的行
-w:按整字查找
-n:显示符合模式要求的行号
-r:递归搜索所有文件
模式
^….:以什么开头
…..$:以什么结尾
# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
或
# cat /etc/passwd | grep root
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
wc(字数统计)命令
格式:wc [选项]… 目标文件…
-l:统计行数
-w:统计字数 (前后都是空白的一组字符)
-c:统计字符数(可见和不可见的字符)
seq
seq [选项]... 尾数
seq [选项]... 首数 尾数
seq [选项]... 首数 增量 尾数
选项
-f, --format=格式 使用printf 样式的浮点格式
-s, --separator=字符串 使用指定字符串分隔数字(默认使用:\n)
-w, --equal-width 在列前添加0 使得宽度相同
#seq -f"%3g" 9 11
9
10
11
%后面指定数字的位数 默认是%g,%3g那么数字位数不足部分是空格。
seq -s"`echo -e "/t"`" 9 11
tr命令
tr(选项)(参数)
-c或——complerment:取代所有不属于第一字符集的字符;
-d或——delete:删除所有属于第一字符集的字符; -
s或--squeeze-repeats:把连续重复的字符以单独一个字符表示;
-t或--truncate-set1:先删除第一字符集较第二字符集多出的字符。
将输入字符由大写转换为小写:
echo "HELLO WORLD" | tr 'A-Z' 'a-z'
hello world
使用tr删除字符:
echo "hello 123 world 456" | tr -d '0-9‘
hello world
cat text | tr ‘\t’ ’ ‘
tr SET1 SET2
用SET2中的字符替换掉SET1中同一位置的字符
使用tr删除字符
tr -d SET
删除与SET相同的字符
echo 123456 | tr -d 345
tr -d '[0-9]’ < /etc/hosts
echo “Tom, I hear a pig!” | tr -d '[a-z]'
使用tr压缩字符
tr -s SET
将连续相同的字符压缩成一个字符
echo 112233444555666 | tr -s 345
r -s SET1 SET2
先替换为SET2再压缩
echo 112233444555666 | tr -s 345 abc
echo 112233444555666 | tr 345 abc | tr -s abc
sort命令
默认按每行的第一个字符排序
-n:按整数进行排序
-r:递减排序
指定排序键
指定按哪一列数据进行排序
-k:指定哪一列为排序键
cat tt | sort -n -k4
指定字段分隔符
-t:指定字段分割符(默认是空格)
sort -t: -n -k3 /etc/passwd
uniq命令
删除经过排序后的数据的重复记录
通常和sort连用
sort -n tt | uniq
数据的实例统计
-c:显示文件中每行连续出现的次数
cat tt | uniq -c
-u:只显示不重复的行
cat tt | uniq –u
-d:只显示重复的行
cat tt | uniq -d
cut命令
从文本文件或者文本流中提取文本列
cut -选项 提取范围 文本文件
-c:从指定提取范围中提取字符
-f:从指定提取范围中提取字段
提取范围
n:第n项
n-:第n项到行尾
-m:行首到第m项
n,m:第n项和第m项
n-m:第n项到第m项
cut -c命令
ls -l | cut -c 10
who | cut -c 20-40
cut -c -10 /etc/passwd
cut -f命令
-d:指定分隔符默认是Tab
cut -d “:” -f 1,7 /etc/passwd
who | cut -d ' ' -f1,6
diff命令
比较两个文件之间的差异
输出结果为两个文件的不同之处
diff命令的输出格式
旧版本diff
-u:统一格式
-r: 递归比较目录下的所有文件
利用diff命令生成补丁
diff -u test1 test2 > test.patch
patch命令:
用途:用来打补丁修补文件
格式:patch [选项] 原始文件 < 补丁文件
-pN: N表示忽略N层路径
-R: 还原到老版本