sed替換與別名配置

第1章 Sed替換與別名設置
1.1 cp複製與覆蓋
已知/tmp下已經存在test.txt文件,如何執行命令才能把/mnt/test.txt拷貝到/tmp下覆蓋掉/tmp/test.txt,而讓系統不提示是否覆蓋(root權限下)。

[root@oldboyedu50 ~]# cp /mnt/test.txt /tmp/
cp: overwrite `/tmp/test.txt'?

複製的時候不提示是否覆蓋
1.1.1 #方法1
[root@oldboyedu50 ~]# \cp /mnt/test.txt /tmp/

1.1.2 #方法2 使用命令的絕對路徑(全路徑)
[root@oldboyedu50 ~]# which cp #命令的絕對路徑(全路徑)
alias cp='cp -i'
/bin/cp
[root@oldboyedu50 ~]# cp /mnt/test.txt /tmp/
cp: overwrite `/tmp/test.txt'? ^C
[root@oldboyedu50 ~]# /bin/cp /mnt/test.txt /tmp/

#cp overwrite
#rm 是否刪除
#mv 是否覆蓋文件

cp === cp -i
rm === rm -i
mv === mv -i

1.2 別名
系統的別名 給命令起了一個外號
#安全
#省事

1.2.1 #第1個里程碑-顯示系統中的別名
alias san='cp -i'
alias zhang='mv -i'
alias wang='rm -i'

1.2.2 #第2個里程碑-設置別名
alias wang='rm -i'
alias 別名='命令'
1.3 給rm命令設置別名

1.3.1 #第1個里程碑-配置rm別名-目標

目標:執行rm 屏幕顯示rm command bny.

1.3.2 #第2個里程碑-配置rm別名-命令
[root@oldboyedu50 ~]# echo rm command bny
rm command bny

1.3.3 #第3個里程碑-配置rm別名-臨時生效
[root@oldboyedu50 ~]# alias rm='echo rm bny'
[root@oldboyedu50 ~]# alias rm
alias rm='echo rm bny'
[root@oldboyedu50 ~]# rm /tmp/oldboy.txt
rm bny /tmp/oldboy.txt

1.3.4 #第4個里程碑-配置rm別名-永久生效
修改文件 /etc/profile

[root@oldboyedu50 ~]# tail -5 /etc/profile
done

unset i
unset -f pathmunge
alias rm='echo rm bny'

生效
[root@oldboyedu50 ~]# source /etc/profile
[root@oldboyedu50 ~]# alias rm
alias rm='echo rm bny'

1.3.5 #第5個里程碑-巨坑
[root@oldboyedu50 ~]# vim /root/.bashrc

.bashrc

User specific aliases and functions

alias rm='rm -i'

alias cp='cp -i'
alias mv='mv -i'

Source global definitions

if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi

1.3.6 #第6個里程碑-重新登錄 並檢查
[root@oldboyedu50 ~]# alias rm
alias rm='echo rm bny'

1.4 如何配置別名:
1.4.1 命令行-臨時生效 與檢查
alias rm='echo rm bny'
rm /tmp/oldboy.txt
1.4.2 修改文件-永久生效
vim /etc/profile
source /etc/profile
1.4.3 檢查
1.4.4 坑-rm mv cp
/root/.bashrc

1.5 配置別名:
1.5.1 實例1-2 net設置別名
輸入net 顯示/etc/sysconfig/network-scripts/ifcfg-eth0文件的內容

完成後發出
1.alias net
2./etc/profile最後5行

1.命令行-臨時生效 與檢查
[root@oldboyedu50 ~]# alias net='cat /etc/sysconfig/network-scripts/ifcfg-eth0'
[root@oldboyedu50 ~]# net
DEVICE=eth0
TYPE=Ethernet
UUID=8fdc5e19-5b35-49fa-b63e-1629a63af1f0
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
HWADDR=00:0C:29:59:D4:13
IPADDR=10.0.0.200
PREFIX=24
GATEWAY=10.0.0.254
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"

1.5.2 修改文件-永久生效
vim /etc/profile #編輯文件寫入最後一行
[root@oldboyedu50 ~]# source /etc/profile 永久生效
[root@oldboyedu50 ~]# alias net
alias net='cat /etc/sysconfig/network-scripts/ifcfg-eth0'
3.檢查

vim 快捷鍵
G 到達文件的最後一行
gg 到達文件的第1行
10gg 到達文件的第10行

o(小寫字母O) 當前行下面插入一個空行並進入編輯模式
u 撤銷

:q! 強制退出不保存

[root@oldboyedu50 ~]# rm oldboy.txt
rm bny oldboy.txt
[root@oldboyedu50 ~]# \rm oldboy.txt
[root@oldboyedu50 ~]# ll oldboy.txt
ls: cannot access oldboy.txt: No such file or directory
[root@oldboyedu50 ~]# alias ll
alias ll='ls -l --color=auto'

##13 把/oldboy目錄及其子目錄下所有以擴展名 .sh結尾的文件中,文件包含oldboy的字符串全部替換爲oldgirl
mkdir -p /oldboy/test
cd /oldboy
echo "oldboy">test/del.sh
echo "oldboy">test.sh
echo "oldboy">t.sh
touch oldboy.txt
touch alex.txt

##第1個里程碑-find
[root@oldboyedu50 oldboy]# find /oldboy/ -type f -name "*.sh"
/oldboy/test/del.sh
/oldboy/test.sh
/oldboy/t.sh

##第2個里程碑-替換一個文件中的內容
[root@oldboyedu50 oldboy]# cat t.sh
oldboy
[root@oldboyedu50 oldboy]# sed 's#oldboy#oldgirl#g' t.sh
oldgirl

[root@oldboyedu50 oldboy]# sed 's#oldboy#oldgirl#g' t.sh
oldgirl
[root@oldboyedu50 oldboy]# cat t.sh
oldboy
#sed 修改文件的內容 把文件中的oldboy替換爲oldgirl
[root@oldboyedu50 oldboy]# sed -i 's#oldboy#oldgirl#g' t.sh
[root@oldboyedu50 oldboy]# cat t.sh
oldgirl

#第3個里程碑-把find命令找出的文件傳遞給 sed命令
[root@oldboyedu50 oldboy]# find /oldboy/ -type f -name ".sh"
/oldboy/test/del.sh
/oldboy/test.sh
/oldboy/t.sh
[root@oldboyedu50 oldboy]# find /oldboy/ -type f -name "
.sh"|xargs sed 's#oldboy#oldgirl#g'
oldgirl
oldgirl
oldgirl
[root@oldboyedu50 oldboy]# find /oldboy/ -type f -name ".sh"|xargs sed -i 's#oldboy#oldgirl#g'
[root@oldboyedu50 oldboy]# find /oldboy/ -type f -name "
.sh"|xargs cat
oldgirl
oldgirl
oldgirl

1.6 小結:
1.別名
2.sed替換
find+sed

1.7 linux基礎優化
1.顯示系統的版本信息
[root@oldboyedu50 oldboy]# cat /etc/redhat-release 查看內核版本
CentOS release 6.9 (Final)
[root@oldboyedu50 oldboy]# uname –r 查看系統版本
2.6.32-696.el6.x86_64
[root@oldboyedu50 oldboy]# uname –m 查看安裝的是多少位系統
x86_64

2.添加用戶 設置密碼 切換用戶
#添加用戶
[root@oldboyedu50 oldboy]# useradd oldboy
#password 設置密碼
[root@oldboyedu50 oldboy]# passwd oldboy
Changing password for user oldboy.
New password:
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.

#切換用戶
su - oldboy

ctrl + d 退出當前用戶

1.8 預習
題find+sed其他方法
1.關閉iptables和selinux
2.linux顯示中文亂碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章