一、文档编辑、过滤、查看命令
1、cp 复制文件和目录
-a 复制文件并保持文件属性
-d 若源文件为链接文件,则复制链接文件属性而非文件本身
-i 覆盖文件前提示,如果不要提示,在命令前加上\
-r 递归复制,通常用于目录的复制
-f 强制复制,
-p 连同文件的属性一起复制过去,而非使用默认属性
-u 若目标文件存在,则目标文件比源文件旧时才复制
例子:cp oldboy.txt /tmp/ 命令 参数 源文件 目标路径
cp --r /date /tmp
2、echo显示一行文本
-e :对反斜杠转义的解释
echo显示颜色:
语法:echo -e "\033[字背景颜色;文字颜色m字符串\033[0m"
Note:文字颜色后边有一个m
文字颜色:30---37
30:黑色。31:红色。32:绿色。33:黄色。34:蓝色。35:紫色
36:天蓝色。37:白色
背景颜色:40---47
40:黑色。41:红色。42:绿色。43:换色。44:蓝色。
45:紫色。46:天蓝色。47:白色
最后边控制选项说明:
0m:关闭所有属性。1m:设置高亮度
2m:下划线。5m:闪烁。7m:反显
8m:消隐。
3、mv 移动文件、重命名文件 不加参数也可以移动文件或者目录
移动文件: mv 源文件名 目标移动路径
-i 如果目的文件已存在,询问是否覆盖
-f 强制执行,不会询问
-u 若目的文件存在,则比源文件新,才会移动
重命名:mv 原文件名 修改后的名字 例如:mv file{4,6}.txt
多文件移动:mv 文件名 ......移动到的目录,最后一个参数必须是目录/
移动时源文件后边不要多斜线
例如:mv /date /root/
4、ls :显示目录、文件清单
选项:
-a:显示所有,包括隐藏文件目录
-l:以长格式显示,就是把详细信息列出来 简写方式:ll
-h:以人类已读的方式显示,人性化
-d:只显示目录
-F:为目录添加/
-r:反向排序
-t: 按照修改时间排序
-i :显示查找inode结点
生产案例:查找最近更新的文件 ls -lrt
5、rm 删除文件或者目录 此命令较危险,不能乱用,一般不用。
删除普通文件不加-r (递归删除) 删除目录则需要加-r
-f force 强制删除
-r --R recursive 递归删除,
正确删除文件的方法:
1、使用mv命令移动到/tmp (回收站)代替删除
2、cd 目的目录 ;find . --type f(d) --name ''|xargs rm 要到文件目录下去删,不能从根开始,
6、pwd print working directory 打印当前动作目录,就是查看当前在那个目录下
7、find 查找文件(支持通配符)
xargs 从标准输入(管道或者stdin 输入重定向)获取数据,并将数据转换成命令行的参数
输入重定向:多行输入变成单行输出
-i 后面是{ }
-I 后面是[ ]
-n 指定每个命令行最多的参数
支持使用文件权限Mode,文件属主属组,进行查找
8、touch 创建新文件或者更新时间戳,例如创建文件 touch /data/shiyouyuan.txt
创建文件也可以用cd进入目录,在touch 创建
创建多个文件方法:例如touch stu{1......1000}.txt,就会创建1.txt-1000.txt
touch 文件名 如果文件存在就更新时间戳,如果文件不存在就创建时间戳
vi 相当于windows的记事本,vim 高级编辑器
vi 要编辑的文件名 进入后按i进入insert状态,就可以输入内容了
输入完成后按esc,退回命令模式,然后输入:wq保持并退出
echo 命令,重定向
输入文本内容还可以这样做:echo 'my name is syy'>shiyouyuan.txt
如果文件不存在会创建文件,如果存在会清空、覆盖之前的内容,在插入新的内容,
在内容后面加>>(两个>)就会在原来内容的末尾添加内容,不会清空之前的内容。
还有一个较复杂不常用的类似命令printf
9、cat 查看文件内容 例如:cat shiyouyuan.txt 也可以输入内容,命令:cat >文件名 输入内容,按ctrl+c 或者ctrl+d两边结束输入
cat 的多行追加能力 内容中间用EOF 圈起来,可以用其他的,但是要完全是一对。
cat >>/data/shiyouyuan.txt 0<< EOF
I am studying linux
I am studying linux
I am studying linux
EOF
特殊符号:
>或1> 输出重定向:把前面的输出的东西输入到后边的文件中,会清除文件原有内容
>>或1>> 追加重定向:把前面输出的东西追加到后边的文件尾部,不会清除文件原有内容
0<或< 输入重定向:输入重定向用于改变命令的输入,后面指定输入内容,前面跟文件名
例如:echo 1 2 3 4 >shi.txt
cat shi.txt
1 2 3 4
xargs --n 2 <shi.txt
显示的结果就是
1 2
3 4
相当于把shi.txt交给xargs --n这个命令处理
0<<或<< 追加输入重定向:后跟字符串,用来表示"输入结束",也可用ctrl +d 来结束输入
例如:cat >>/data/shiyouyuan.txt 0<< EOF
I am studying linux
I am studying linux
I am studying linux
EOF
2> 错误重定向:把错误信息输入到后边的文件中,会删除文件的原有内容
2>>错误追加重定向:把错误信息追加到后边的文件中,不会删除元件的原有内容
2>&1标准正常输出和标准错误输出一样,就相当于跟屁虫一样,1放到哪儿,2就放到哪儿
例如:echo 'shi' >a.txt 2>&1
说明:
1、箭头的指向就是数据的流向
2、数字说明:
1、标准输入stdin :代码为0 使用<或<<,数据流向从右往左
2、标准正常输出stdout :代码为1 ,使用>或>>,数据流向从左往右
3、标准错误输出stderr :代码为2 使用2>或2>>
关于find的企业面试题:http://oldboy.blog.51cto.com/2561410/1650380
**|**管道命令,键盘上按shift + \
相当于把前面命令的执行结果传送给后边的命令继续执行
.(一个点)当前目录,..(两个点)上级目录
10、grep文本过滤工具,相当于筛子一样,是一个管道命令,一般配合正则表达式和通配符使用
用法:grep 选项 文件
选项:
-v :排除选项,
-i :不区分大小写
-n :对匹配到的内容显示行号
-color=auto 对匹配到的内容高亮显示
-B :除了显示匹配到一行之外,并显示改行之前的n行
-A :除了显示匹配到的一行之外,并显示该行之后的n行
-C :除了显示匹配到的一行之外,并显示该行的前后各n行
11、head 读取文件的前n行,默认为前10行,
用法:head -n number file
例:head -n 6 123.txt 意思就是读取123.txt这个文件的前6行
12、tail读取文件的后n 行,与head是相对的,用法也是一样的
13、tree :目录树
如果linux上没有这个命令的话,可以使用yum -y install tree 进行安装
选项:
-a :显示所有文件,包括隐藏文件,隐藏文件以 "."开头
-d :只显示目录
-L :层级,显示指定的层级:tree -L 1 tree -dL 2 显示两级目录
-f :为每个文件显示完整的路径,
-i:不显示压痕线,就是路径前面的横线
-F:区分文件和目录,目录后面有一根斜线
14、mkdir 创建目录 (make directory)
用法:mkdir 选项 需要创建的目录名称
选项:
-m :设置创建目录的权限(一般在后面用chmod设置)
-p :递归创建目录,例如可以mkdir -p test/a/b
-v :显示创建目录的过程,mkdir -pv test/a/b
例子:可以采用连续创建目录,如:mkdir test/dir{1......10}
创建出来的目录就是dir1 dir2...dir10
创建目录及多级子目录 mkdir test/{1..3}/{4..5}利用乘法分配律创建,
二、linux文件、目录属性及权限
389379 drwxr-xr-x. 22 root root 4096 Apr 5 02:52 var
inode节点号 文件的类型、权限 硬链接次数 属主 属组 文件大小 创建时间 文件名
1、indode节点和block
inode,中文意思是索引节点(index node),在每个linux存储设备或存储设备的分区被格式化文件系统后,一般生成两部分:inode和block,
block是实际存储数据的,inode是存储文件属性等信息,包含指向文件实体的指针,但是,inode唯独不包含文件名。查看inode的总量和使用量:inode -i。如果某个磁盘无法放文件,但实际还有空间,这个时候就可能是inode节点满了。
inoded的大小在分区被格式化创建文件系统后就无法更改了,在创建文件系统前可以更改,但实际用不到
inode 号相同的文件互为硬链接文件
一个文件创建后,至少要占用一个inode和block
block大小一般有1k、2k、4k几种,
例如:一个1000k的文件,block的大小为4k,那么就会占用250各block,如果block为1k,就要占用1000各block,消耗I/O分别为250次和1000次(读取一个block就会消耗一次磁盘I/O),但是如果block为4k,但是文件为1k,其余的3k就浪费了,所以block的大小应该根据需求设计。
2、其中drwxr-xr-x为文件的的类型和权限
第一位为文件的类型;后九尾为文件的权限
文件的类型一共有七类:
1、d :代表文件类型为目录
2、f或者-:代表文件类型为普通文件
3、s :代表文件类型是套接字
4、b :代表文件类型是块设备
5、l :代表文件类型是链接文件
6、p :代表文件类型是管道文件
7、c :代表文件类型是字符设备文件
文件权限最后一位后面有一个点(.)适合selinux相关的,实际中没有什么用
1、stat 查看文件或者文件系统的状态
选项:
-L:显示文件链接
-f:显示文件系统状态而不是文件状态
-c:使用指定的格式文件
2、diff比较两个文件的差异
选项:
-q:只在比较的两个文件不同时报告
-s:两个文件相同时报告
-C,-c:复制上下文输出的N行,默认三行
-U,-u:统一上下文的输出NUM(默认3)行,将两个文件的的前N行变为相同
三、Linux三剑客:sed流编辑器 stream editor
是一个行编辑器,一次只能处理一行文本。
用法:
Sed 选项.........scropt inputfile
选项:
-n :不输出模式中的内容至屏幕
-e :多点编辑
-f :脚本文件路径,从指定文件读取脚本命令
-r :使用扩展的正则表达式
-i :原处编辑(一定要测试正确才用,慎用)
地址定界
(1)
不给地址,对全文进行 处理
(2)单地址
a:指定的行
/pattren/:被次模式所能匹配到的每一行
(3)地址范围:
#,#
#,+#
/pat1/ ,/pat2/
#,/pat1/
编辑命令
-d :删除命令
eg;sed '/^$/d'/etc/fstab 删除空白行
sed '/^#/d'/etc/fstab 删除以#号开头的行
sed '/1,4d/'/etc/fstabse
p :显示模式空间中的内容,会显示两行,跟-n 可以只显示一行
eg ; sed '/^UUID/p'/etc/fstab
a \'text':在行后面追加文本,支持多行\n追加
sed '/^#/a \# hello world' /tmp/httpd.conf
i \在行后面插入文本,支持多行\n多行插入
c \text 替换行为单行或多行文本
w /path/to/somefile :保存模式空间中匹配到的内容至指定文件中
sed '/^#/w /tmp/1.txt' /tmp/httpd.conf
r :/path/from/somefile:读取指定文件的文本流至指定文件中
=:为模式空间中行打印行号
!:取反,对没有匹配到的行之外的所有行进行操作
s/// :查找替换,支持其他分隔符如:s@@@,s###
替换标记:
g:全局替换
i :忽略字符大小写
P :显示替换成功的行
w :/path/to/somefile,将替换成功的结果保存至指定文件中
sed 's/^#/789/g' /tmp/httpd.conf
sed 's/^#/&syy/g' /tmp/httpd.conf 后项引用
高级编辑命令
h:用模式空间的内容覆盖至保持空间中,源源保持空间中内容将被清除
H:把模式空间内容追加至保持空间中
g:从保持空间中取出看数据覆盖至模式空间
G;从保持空间取出内容追加至模式空间
x;把模式空间的内容与保持空间中的内容进行互换
n :读取匹配到的行下一行至模式空间
N :追加匹配到的行的下一行至模式空间
D :删除多行模式空间中行
d :删除模式空间中的行
eg:sed --n 'n;p' file 显示偶数行
sed 'n;d' file 显示奇数行
sed '1!G;h ;$!d' file 逆向显示文件内容
sed '!N;!D' FIEL 取出文件后两行
sed '$!d' fle 取出文件最后一行
步进:~
显示所有奇数行 sed '1~2p' /tmp/httpd.conf
显示所有偶数行 sed '2~2p' /tmp/httpd.conf
sed '1~2p' 表示从1 开始,步进为2,显示奇数行,偶数行同理。
四、杂类(网络、系统、文件上传下载)
1、dmesg 打印或控制内核环缓冲区,默认显示所有消息
选项:
-K:显示内核消息、信息
2、rs sz上传下载文件,依赖于lrzsz这个软件包
3、traceroute 追踪路由
选项:
-4:使用IPv4
-6:使用IPv6
-T:使用TCP协议,默认80端口
-I:使用ICMP协议
-p:端口
-i:指定网卡出口
4、uptime显示系统运行时间及负载。
5、nmap 网络探测工具和安全/端口扫描器
6、mpstat 报告处理器相关统计
7、nc 一款强大的网络工具
选项:
-4:使用IPV4
-6使用IPV6
-u:使用UDP协议
-U:使用Unix套接字
-h:目标地址
-p:目标端口
8、tcpdump 命令行抓包工具
选项:
-A:用ASCII格式打印每个包(减去它的链接级别头)。方便捕捉网页。
-c:接受多个包后退出
9、Auditd工具:是Linux中一个审计守护进程,其负责将审计记录写入磁盘,其中包含如下工具:
auditctl : 即时控制审计守护进程的行为的工具,比如如添加规则等等。
/etc/audit/audit.rules : 记录审计规则的文件。
aureport : 查看和生成审计报告的工具。
ausearch : 查找审计事件的工具
auditspd : 转发事件通知给其他应用程序,而不是写入到审计日志文件中。
autrace : 一个用于跟踪进程的命令。
/etc/audit/auditd.conf : auditd工具的配置文件。
使用auditd可以用来监控文件或者目录是否被修改过。可以追踪进程。