重定向
yum grouplist
echo命令:打印输出内容
输出重定向:>或者1>使用是覆盖
追加输出重定向:>>或者1>>是追加到文件尾部
输入重定向:<或者0<
追加输入重定向:<<或者0<<
说明:
箭头的指向就是数据的流向
数字说明:
- 标准输入:代码为0,使用0<或者0<<
- 正常输出:代码为1,使用1>或者1>>
- 错误输出:代码为2,使用2>或者2>>
cat的多行追加:
cat >>/a.txt<<XXK
I am linux
I am linux
I am linux
XXK
find删除文件
find /data -type f -name "oldboy" -mtime +7 -exec rm {} \;
#-type表示类型(f代表文件,d代表目录,c代表字符串,b代表块设备,s代表socket文件),link代表符号链接,-name表示名称,-mtime表示文件修改时间(NOW为基准,+7代表7天以前,7代表第7天,-7代表最近7天),-a是and:交集,-o是or:并集,-exec表示后续操作;!代表取反
find /data -type d -name "oldboy" -mtime +7|xargs rm -rf
移动查找到的文件
mv `find /data -type f -name "*.txt"` /tmp
grep
grep是linux三剑客NO.3:过滤需要的内容
grep -v是排除
cat >>a.txt<<XXK
1
2
3
XXK
#创建a.txt并写入123
grep -v 1 a.txt
#排除1显示a.txt
grep 1 a.txt
#包含1显示a.txt
haed -2 a.txt
#读取文件的前n行,默认前十行
tail -2 a.txt
#读取文件的后n行,默认后十行
递归创建目录需要在mkdir后面加参数 -p
mkdir -p a/b/c/d
使用cp命令覆盖不提示
1、命令前面加
2、命令前面加全目录/bin(使用which查找命令所属路径)
which cp
3、因为linux中的部分命令默认使用别名。前置加参数会直接执行命令,而不使用别名,可以通过删除别名来直接使用命令(重启后还原)
4、直接使用脚本来规避命令别名
alias
#查看和设置别名
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
unalias rm
#删除别名
unalias cp='echo this command does not allow to ues'
#设置别名
alias net='cat /etc/sysconfig/network-scripts/ifcfg-ens33'
#设置别名
别名的作用
1、给一些危险的命令加一些保护参数,防止人为误操作
2、使一个复杂的字符串或者命令变成一个简单的字符串或者命令
alias的修改只能保存到内存里,重启失效,需要永久保存需要写到系统配置文件里面:
1、全局:/etc/profile
2、当前用户:~/.bashrc
使用unalias删除了别名可以使用source命令恢复回来
source ~/.bashrc
seq
seq==sequence(序列)
seq 1 2 100
#1代表从1开始、2代表每次列出的数字相差2、100代表到100结束
seq -s " " 10
#默认分隔符是回车,-s指定分隔符,"分隔符"
查看ett.txt的第20行到30行
1、利用head加tail
#查看ett.txt的第20行到30行
head -30 ett.txt |tail -10
2、利用sed
sed:流编辑器,可以实现对文件的增删改替换查,Linux三剑客NO.2
sed -n '20.30'p ett.txt
#-n的作用取消默认输出,'20.30'是规则,p是打印
3、利用awk,awk是三剑客中的NO.1
awk 'NR>19&&NR<31' ett.txt
#NR是行号,&&是并且的意思
在一些语言里=是赋值,==是等号
4、用grep
grep 20 -A 10 ett.txt
A显示除了匹配的一行之外,并显示之后的n行
B显示除了匹配的一行之外,并显示之前的n行
C显示除了匹配的一行之外,并显示前后的各n行
sed 's###g'
#s表示替换,g表示全局替换,###是分隔符(可以用/@等代替),#想要替换的内容#替换成什么内容#,只是修改输出
需要修改文件需要添加-i
sed -i 's###g'
替换多个文件的字符串
find /oldboy/ -type f -name "*.sh"|xargs sed -i 's#oldboy#oldgirl#g'
#查找/oldboy下的名字结尾为.sh的文件,然后使用sed替换oldboy为oldgirl
sed -i 's#oldgirl#oldboy#g' `find /oldboy/ -type f -name "*.sh"`
注
有错请指出,不喜勿喷,不接受喷我小白,虽然这是事实,如果要喷请预约