10 >输出重定向 文件不存在则创建文件,文件存在则清空内容 放入>左边的内容 比较危险 建议备份后操作
>>追加输出重定向,在文本结尾追加内容,不删除原内容
<输入重定向
<<追加输入重定向
箭头指向为数据流向
[[email protected] abc]# cat >>white.txt<<EOF > i am white bai > thankyou > EOF [[email protected] abc]# cat white.txt i am white bai thankyou
[[email protected] abc]# > white.txt [[email protected] abc]# cat white.txt
[[email protected] abc]# echo "who are you">>white.txt [[email protected] abc]# cat white.txt i am white bai thankyou who are you
0是标准输入:一般配合<< <使用,数据流从右到左
1是标准正常输出,一般配合>> >使用,数据流从左到右
2是标准错误输出,把错误内容输入到后面的文件,数据流从左到右
2>错误重定向,把错误的信息输入到后面文件,删除原有文件
2>>错误追加重定向,把错误的信息追加到后面文件,不删除原内容
[[email protected] abc]# cat a.txt qwe [[email protected] abc]# cat b.txt [[email protected] abc]# [[email protected] abc]# eho qwe 1>a.txt 2>b.txt [[email protected] abc]# cat a.txt [[email protected] abc]# cat b.txt -bash: eho: command not found
如果a内正确和错误的都写一个文件echo qwe 1>a.txt 2>a.txt(麻烦)一般写为echo qwe 1>a.txt 2>&1(推荐)或echo qwe &>a.txt(错误输出和正确输出在一个位置)
11、cp 拷贝,复制
常用参数
-r 递归 -p连同文件属性一起拷贝 -d 目录 -a等价于-pdr -i覆盖前提示(默认)
不加参数只能复制文件
[[email protected] abc]# cp a.txt /tmp/ [[email protected] abc]# ll /tmp/ total 6372 -rw-r--r-- 1 jenkins jenkins 19673 Sep 12 20:59 akuma304166024346870543jar -rw-r--r-- 1 jenkins jenkins 19673 Sep 10 18:41 akuma6786136470976806683jar -rw-r--r-- 1 root root 0 Sep 20 22:27 a.txt [[email protected] data]# cp abc/ /tmp/ cp: omitting directory ‘abc/’ [[email protected] data]# cp abc/ /tmp/ -a [[email protected] data]# ll /tmp/ total 6372 drwxr-xr-x 3 root root 60 Sep 20 22:21 abc [[email protected] data]# cp abc/ /tmp/ -a cp: overwrite ‘/tmp/abc/white.txt’?
如果想覆盖不提示 \cp 使用则覆盖不提示
12、mv 移动,修改文件名
常用参数
-r 递归 -p连同文件属性一起移动 -d目录 -a等价于-pdr
不加参数只能复制文件
[[email protected] data]# cd abc/ [[email protected] abc]# mv a.txt ../asd/ [[email protected] abc]# tree . ├── bas ├── b.txt └── white.txt 1 directory, 2 files [[email protected] abc]# tree ../asd/ ../asd/ └── a.txt
注意 移动多个文件到目录 结尾一定是目录
13、rm 删除文件
常用参数
-f 强制删除 -r删除目录 (普通文件不能加-r) rm -fr 删除后无法恢复
[[email protected] abc]# cp b.txt b.txt.bak [[email protected] abc]# ll total 12 drwxr-xr-x 2 root root 6 Sep 20 15:58 bas -rw-r--r-- 1 root root 30 Sep 20 22:22 b.txt -rw-r--r-- 1 root root 30 Sep 20 22:33 b.txt.bak -rw-r--r-- 1 root root 37 Sep 20 22:14 white.txt [[email protected] abc]# rm -f b.txt [[email protected] abc]# ll total 8 drwxr-xr-x 2 root root 6 Sep 20 15:58 bas -rw-r--r-- 1 root root 30 Sep 20 22:33 b.txt.bak -rw-r--r-- 1 root root 37 Sep 20 22:14 white.txt [[email protected] abc]# rm -fr bas/ [[email protected] abc]# ll total 8 -rw-r--r-- 1 root root 30 Sep 20 22:33 b.txt.bak -rw-r--r-- 1 root root 37 Sep 20 22:14 white.txt
删除的正确操作(谨慎操作)
a,删除文件前使用mv命令移动到/tmp替代删除
b,进入目标目录cd;find . -type f -name " " |xargs rm -i(通过管道传递后没有-i不会提醒是否删除)
14、find 查找文件
常用参数
-type 查询类型 f文件 d目录 c字符 b磁盘 s(通信用) l链接
-a 交集 (默认) -o 并集
-name 查询名字 -maxdepth 查找深度(几级目录) -mtime 修改时间 +7 7天前 同理(-ctime修改时间 -atime接入时间 均不常用)
[[email protected] abc]# find /data -type f -name "a.txt" /data/asd/a.txt [[email protected] abc]# find /data -type f -name "a.txt" -exec rm {} \; #等价于(建议使用下面命令) [[email protected] abc]# find /data -type f -name "a.txt" |xargs rm -f;
[[email protected] ~]# find /data -type f ! -name "*.sh" -mtime +7|xargs cat [[email protected] ~]# find /log -type f -name "*oldboy" -mtime +15|xargs rm -rf
| 管道 把所有东西放在一起
15、grep 过滤
常用参数
-v 过滤掉后面的内容排除后打印
-n对匹配的内容打印行号 (不常用)
-w按照单词搜索相当于 \b边界 (不常用)
\b边界 \n换行 (不常用)
-i不区分大小写
egrep 等价于grep -E 扩展grep可以过滤多个
[[email protected] ~]# grep 3306 /etc/services mysql 3306/tcp # MySQL mysql 3306/udp # MySQL [[email protected] ~]# grep -i \(mysql /etc/services #查找(mysql 不区分大小写 sphinxql 9306/tcp # Sphinx search server (MySQL listener) #\ 转义 [[email protected] ~]# egrep "3306|1521" /etc/services #或 [[email protected] ~]# grep -E "3306|1521" /etc/services mysql 3306/tcp # MySQL mysql 3306/udp # MySQL ncube-lm 1521/tcp # nCube License Manager ncube-lm 1521/udp # nCube License Manager mysql 3306/tcp # MySQL mysql 3306/udp # MySQL ncube-lm 1521/tcp # nCube License Manager ncube-lm 1521/udp # nCube License Manager
16、alias 查看或设置系统现有的别名
(可以为一些危险命令加一些保护参数,防止互操作,可以把复杂的字符串和命令变成的简单的字符串,可以定义命令alias a=‘cp‘ a就可以进行cp一样的操作了;该命令位置为内存内,建议保存至/etc/profile或者~/.bashrc就永久生效)
[[email protected] ~]# alias cp alias cp=‘cp -i‘ [[email protected] ~]# alias ll alias ll=‘ls -l --color=auto‘
17、unalias 删除系统命令的别名
cp为cp -i(-i提示是否确认)不推荐使用,理解原理
18、seq 序列(只能生成数字序列)
常用参数 -w相等长度 seq 1 2 10 从1-10 间隔2
[[email protected] ~]# seq 1 2 10 >1.txt [[email protected] ~]# seq -w 1 2 10 >2.txt
[[email protected] ~]# cat 1.txt 1 3 5 7 9 [[email protected] ~]# cat 2.txt 01 03 05 07 09
19、tree 目录树状显示
常用参数
-d只显示目录 -L 数字 最多显示数字层的目录 -f显示完整目录结构 -i显示目录不打印树枝 -F区分普通文件和特殊文件
[[email protected] ~]# tree /data/abc/ /data/abc/ ├── b.txt.bak ├── white.txt └── www └── asd └── aaa 3 directories, 2 files [[email protected] ~]# tree -L 2 /data/abc/ /data/abc/ ├── b.txt.bak ├── white.txt └── www └── asd [[email protected] ~]# tree -dL 1 /data/abc/ /data/abc/ └── www [[email protected] ~]# tree -f /data/abc/ /data/abc ├── /data/abc/b.txt.bak ├── /data/abc/white.txt └── /data/abc/www └── /data/abc/www/asd └── /data/abc/www/asd/aaa [[email protected] ~]# tree -i /data/abc/ /data/abc/ b.txt.bak white.txt www asd aaa
原文地址:https://www.cnblogs.com/wlbl/p/9683904.html