一、補充一些find命令的方法:
第13題 把/oldboy目錄及其子目錄下所有以擴展名.sh結尾的文件中,文件包含oldboy的字符串全部替換爲oldgirl
解答:
方法1:find + |xargs
[root@oldboyedu41 ~]# find /oldboy/ -type f -name "*.sh" |xargs sed 's#oldboy#oldgirl#g' -i
方法2:$()或``
[root@oldboyedu41 ~]# sed 's#oldboy#oldgirl#g' $(find /oldboy/ -type f -name "*.sh")
[root@oldboyedu41 ~]# sed 's#oldboy#oldgirl#g' `find /oldboy/ -type f -name "*.sh"`
方法3:find 與-exec
[root@oldboyedu41 ~]# find /oldboy/ -type f -name "*.sh" -exec sed 's#oldboy#oldgirl#g' {} \;
二、linux命令別名
1.查看別名
[root@oldboyedu41 ~]# 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@oldboyedu41 ~]# alias ll rm alias ll='ls -l --color=auto' alias rm='rm -i'
2.修改別名
[root@oldboyedu41 ~]# alias rm='echo do not use rm'
3.測試
[root@oldboyedu41 ~]# rm /etc/hosts do not use rm /etc/hosts
4.永久生效,需要修改/etc/profile文件
在/etc/profile文件的最後一行,添加:alias rm='echo do not use rm'
[root@oldboyedu41-001 tmp]# echo "alias rm='echo Do not use rm'" >> /etc/profile
5.生效
[root@oldboyedu41 ~]# source /etc/profile
6.臨時取消別名:
1)使用\反斜槓,如:\rm
2)使用命令的絕對路徑,如:/bin/rm
三、重定向符號 >> > < <<
#>> 或 1>> 追加 標準輸出追加重定向 前面命令內容 放入到文件的最後一行
#> 或 1> 輸出重定向 先把文件的內容清空,然後再往文件中放入內容
1表示 標準輸出----命令執行正確後的結果
#2>> 錯誤追加 把命令執行錯誤的信息 追加到一個文件
#2> 錯誤重定向 把命令執行錯誤的信息 重定向到一個文件(先清空 在放入)
2表示 錯誤信息
####把錯誤的信息 或 正確的信息 同時放入到一個文件
####echo oldboyedu.com >>oldboy.txt 2>>oldboy.txt
#echo oldboyedu.com >>oldboy.txt 2>&1
####< 輸入重定向 表示從某個文件中讀取內容
[root@oldboyedu41 ~]# echo {1..10}>>xargs.txt [root@oldboyedu41 ~]# xargs -n3 <xargs.txt 1 2 3 4 5 6 7 8 9 10
####<< 輸入追加重定向
cat >>/oldboy/oldboy.txt <<EOF
I
am
studying
linux.
EOF
EOF:end of file
四、Linux優化:
1)如何關閉selinux
#enforcing selinux開啓了 正在運行
#permissive 臨時關閉了 會有一些警告信息
#disablied selinux徹底關閉
#####臨時關閉--linux重啓之後仍會自動啓動
[root@oldboyedu41 ~]# getenforce Enforcing [root@oldboyedu41 ~]# setenforce 0 [root@oldboyedu41 ~]# getenforce Permissive
#####永久關閉--修改配置文件-重啓linux之後不會自動啓動
[root@oldboyedu41 ~]# cat /etc/selinux/config [root@oldboyedu41 ~]# sed 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config [root@oldboyedu41 ~]# sed -i.bak 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config [root@oldboyedu41 ~]# cat /etc/selinux/config
總結:
1.先備份cp,cat
2.臨時-命令行
3.永久-配置文件
4.檢查
2)關閉iptables
#####臨時關閉
[root@oldboyedu41 ~]# /etc/init.d/iptables stop iptables: Setting chains to policy ACCEPT: filter [ OK ] iptables: Flushing firewall rules: [ OK ] iptables: Unloading modules: [ OK ] [root@oldboyedu41 ~]# /etc/init.d/iptables stop [root@oldboyedu41 ~]# /etc/init.d/iptables status iptables: Firewall is not running.
#####永久關閉
重啓之後,還會自動啓動(開機自啓動) 在開機的時候不會自動運行
######linux下面管理 是否開機自啓動的命令
chkconfig
# chkconfig iptables off
# chkconfig |grep ipt
iptables 0:off1:off2:off3:off4:off5:off6:off
3.linux下面顯示中文亂碼如何操作
###字符集就是一套文字符號及其編碼
###1.如何查看字符集
[root@oldboyedu41 ~]# #LANG [root@oldboyedu41 ~]# echo $LANG en_US.UTF-8 [root@oldboyedu41 ~]# #zh_CN [root@oldboyedu41 ~]# #語言.字符集
###2.如何修改系統正在使用的字符集或語言
# export LANG=zh_CN.UTF-8
###3.如何永久修改系統正在使用的字符集或語言
[root@oldboyedu41 ~]# cat /etc/sysconfig/i18n LANG="en_US.UTF-8" SYSFONT="latarcyrheb-sun16"
###4.如何讓修改的字符集 生效
[root@oldboyedu41 ~]# source /etc/sysconfig/i18n
七、linux目錄結構
特點:
1.一切從根開始 ******
Windows目錄結構:
c:\windows\system32\drivers\etc\hosts
c:\program files\3000soft
d:\學習資料\美國
d:\學習資料\日韓
d:\學習資料\馬克思
Linux目錄結構:一切從/開始
/etc/sysconfig/network-scripts/ifcfg-eth0##setup
2.下面的目錄可以隨便掛載到不同的磁盤分區上(瞭解)
/home 屬於第一塊硬盤第一個分區
/tmp 屬於第一塊硬盤第一個分區
我把/home 掛載到新的磁盤分區上面
3.linux下面,沒有掛載的磁盤分區無法使用,掛載就是給設備磁盤分區創建一個入口 ******
光盤設備(磁盤分區 )
/dev/cdrom 沒有辦法直接使用
cd
cat
4.掛載之後就可以使用,掛載相當於是給設備(磁盤分區 光盤) 開一個入口
[root@oldboyedu41 oldboy]# mount /dev/cdrom /mnt/cdrom
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@oldboyedu41 oldboy]# cd /mnt/
df -h
5.相對路徑絕對路徑
絕對路徑:從根開始的路徑 /etc/hosts /etc/sysconfig/network
相對路徑:不是從根開始的路徑 相對於當前路徑(位置)