1. 为oldboy.txt增加内容为“I am studying linux.”。
解答:
方法一:#vim /data/oldboy.txt
I am studying linux.
方法二:# echo "hello oldboy linux" >>/data/oldboy.txt
== >> ##追加内容到oldboy.txt
方法三:#cat >>/data/oldboy.txt<<EOF
>I am studying linux.
>hello oldboy linux
>I am study
>EOF
[root@server1 ~]# cat /data/oldboy.txt
I am studying linux.
hello oldboy linux
I am study
2. 已知文件test.txt内容为:
test
liyao
oldboy
请给出 输出test.txt文件 内容时,不包含 oldboy 字符串的命令。
解答:
方法一 : # grep "oldboy" /data/test.txt
oldboy
[root@server1 ~]#grep -v "oldboy" /data/test.txt
test
liyao
#方法二: # head -n2 /data/test.txt
test
liyao
[root@server1 ~]# head -2 /data/test.txt
test
liyao
#方法三: [root@server1 ~]# sed '/oldboy/d' /data/test.txt
test
liyao
#方法四: # awk '/oldboy/' /data/test.txt
oldboy
[root@server1 ~]# awk '!/oldboy/' /data/test.txt
test
liyao
3. 已知 /tmp 下已经存在 test.txt文件,如何执行命令才能把 文件 /mnt/test.txt 拷贝到 /tmp 下覆盖掉 /tmp/test.txt ,而让系统不提示是否覆盖(root权限下)。
解答:
#方法一:使用 \cp
[root@server1 ~] # \cp /mnt/test.txt /tmp/
#方法二.使用命令cp 的全路径(绝对路径)
[root@server1 ~] # which cp
alias cp='cp -i'
/bin/cp
[root@server1 ~]# /bin/cp /mnt/test.txt /tmp/
4. 只查看 ett .txt文件(共 100 行)内第 20 到第 30 行的内容。
解答:[root@server1 ~]# seq 100 >/data/ett.txt ==>创建100行内容
#方法一: # head -30 /data/ett.txt |tail -11
20
21
22
23
24
25
26
27
28
29
30
#方法二:# sed -n '20,30p' /data/ett.txt ===>> -n 取消默认输出
20
21
22
23
24
25
26
27
28
29
30
#方法三:# awk 'NR==20,NR==30' /data/ett.txt
20
21
22
23
24
25
26
27
28
29
30
# awk 'NR>=20 && NR<=30' /data/ett.txt
20
21
22
23
24
25
26
27
28
29
30
#方法四:# grep -A10 "20" /data/ett.txt ## -A10, 20之后的十行
20
21
22
23
24
25
26
27
28
29
30
# grep -B 10 "30" /data/ett.txt ## -B 10,30之前的十行
20
21
22
23
24
25
26
27
28
29
30
# grep -C 5 "25" /data/ett.txt ##-C 5, 25左右五行
20
21
22
23
24
25
26
27
28
29
30
5. 为什么运行cp命令的时候 会提示你 ?执行cp命令的时候,就相当于执行了 cp -i (mv -i ; rm -i )
★linux设置别名。
查看别名:[root@server1 ~]# alias
alias cp='cp -i'
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'
取消别名:[root@server1 ~]# unalias cp
例子:执行rm命令时,显示do not use rm command
###第一个里程碑-如何显示这行文字
[root@server1 ~]# echo do not use rm command
do not use rm command
###第二个里程碑-配置别名
[root@server1 ~]# alias cp //看别人是如何配置的
alias cp='cp -i'
[root@server1 ~]# alias rm='echo do not use rm command'
###第三个里程碑-测试
[root@server1 ~]# rm /data
do not use rm command /data
[root@server1 ~]# rm -rf /data
do not use rm command -rf /data
###第四个里程碑-让别名永久生效-/etc/profile
[root@server1 ~]# tail -1 /etc/profile
alias rm='echo do not use rm command'
###第五个里程碑-让别名的配置生效
[root@server1 ~]# source /etc/profile
###第六个里程碑-排坑 -vim /root/.bashrc
[root@oldboyedu37 ~]# cat /root/.bashrc
# .bashrc
# User specific aliases and functions
#alias rm='rm -i' //注释rm 这行
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
6、把/oldboy目录及其子目录下所有以扩展名.sh结尾的文件中包含./hostlists.txt(oldboy)的字符串全部替换为../idctest_iplist(oldgirl)。
###创建测试文件
[root@server1 ~]# mkdir -p /oldboy/test
[root@server1 ~]# cd /oldboy
[root@server1 oldboy]# echo "oldboy">test/del.sh
[root@server1 oldboy]# echo "oldboy">test.sh
[root@server1 oldboy]# echo "oldboy">t.sh
[root@server1 oldboy]# touch oldboy.txt
[root@server1 oldboy]# touch alex.txt
[root@server1 oldboy]# tree /oldboy/
/oldboy/
├── alex.txt
├── oldboy.txt
├── test
│?? └── del.sh
├── test.sh
└── t.sh
1 directory, 5 files
###第二个里程碑:如何找出要处理的文件
[root@server1 ~]# find /oldboy/ -type f
/oldboy/alex.txt
/oldboy/test.sh
/oldboy/t.sh
/oldboy/oldboy.txt
/oldboy/test/del.sh
[root@server1 ~]# find /oldboy/ -type f -name "*.sh"
/oldboy/test.sh
/oldboy/t.sh
/oldboy/test/del.sh
###第三个里程碑:sed命令修改文件的内容
#sed 's#找谁#替换成什么#g' 文件
[root@server1 ~]# sed 's#oldboy#oldgirl#g' /oldboy/t.sh
oldgirl
#修改文件内容
[root@server1 ~]# sed -i 's#oldboy#oldgirl#g' /oldboy/t.sh
[root@server1 ~]# cat /oldboy/t.sh
oldgirl
联系qq:2632886623
转载于:https://blog.51cto.com/zhaojia/1925155