重定向符號linux
[root@lewen ~]# eho hello 2>>/data/lewen.txt [root@lewen ~]# cat /data/lewen.txt hello lewen 錯誤 -bash: eho: command not found [root@lewen ~]# eho hello 2>>/data/lewen.txt [root@lewen ~]# cat /data/lewen.txt hello lewen 錯誤 -bash: eho: command not found -bash: eho: command not found eho hello >>/data/lewen.txt 2>>/data/lewen.txt eho hello >>/data/lewen.txt 2>&1 把錯誤的信息放入到對的信息中 對的錯誤在一塊兒 < 輸入重定向 echo 1 2 3 4 5 >/data/num.txt [root@lewen ~]# cat /data/num.txt 1 2 3 4 5 [root@lewen ~]# xargs -n2 </data/num.txt 1 2 3 4 5 << 追加輸入重定向 cat >>/data/lewen.txt<<EOF I am studying linux EOF
[root@lewen tmp]# find /root/ -type f -name "lewen.txt" /root/data/lewen.txt [root@lewen tmp]# #find /root/ -type f -name "lewen.txt" [root@lewen tmp]# #find 在哪裏找 找什麼類型的 找什麼名字 -type 找什麼類型的 f file 文件 d directory 目錄
[root@lewen tmp]# find /root/ -type f -name "lewen.txt" /root/data/lewen.txt [root@lewen tmp]# [root@lewen tmp]# [root@lewen tmp]# find /root/ -type f -name "lewen.txt"|xargs ls -l -rw-r--r--. 1 root root 0 Sep 20 02:27 /root/data/lewen.txt 找出以.txt結尾的文件 [root@lewen tmp]# find /root/ -type f -name "*.txt" /root/data/lewen.txt /root/data/num.txt
已知文件test.txt內容vim
lewen
test
lidao
請給出輸出test.txt文件內容時,不包含lewen字符串的命令。windows
建立測試文件: mkdir /data cat >/data/test.txt<<EOF test liyao lewen EOF #方法1-grep [root@lewen ~]# cd /data/ [root@lewen data]# cat test.txt test liyao lewen [root@lewen data]# grep -v "lewen" test.txt test liyao #方法2-head [root@lewen data]# head test.txt test liyao lewen [root@lewen data]# head -n2 test.txt test liyao [root@lewen data]# head -2 test.txt test liyao [root@lewen data]# tail test.txt test liyao lewen [root@lewen data]# tail -2 test.txt liyao lewen [root@lewen data]# tail -1 test.txt lewen #方法3-awk [root@lewen data]# awk '/lewen/' test.txt lewen [root@lewen data]# grep "lewen" test.txt lewen [root@lewen data]# grep -v "lewen" test.txt test liyao [root@lewen data]# awk '!/lewen/' test.txt test liyao [root@lewen data]# #awk中 !表示取反 非 #方法4-sed [root@lewen data]# sed '/lewen/d' test.txt test liyao 小結: 1.grep 過濾 ****** 2.head tail ****** 3.sed awk 瞭解
[root@lewen data]# cp /mnt/test.txt /tmp/ cp: overwrite `/tmp/test.txt'? ^C #方法1 撬棍 [root@lewen data]# \cp /mnt/test.txt /tmp/ #方法2 使用命令的絕對路徑 全路徑 [root@lewen data]# which cp alias cp='cp -i' /bin/cp [root@lewen data]# which mkdir /bin/mkdir [root@lewen data]# ls -l /bin/cp -rwxr-xr-x. 1 root root 122896 Mar 23 2017 /bin/cp [root@lewen data]# /bin/cp /mnt/test.txt /tmp/ #提示你是否覆蓋? 是否刪除? #爲什麼咱們執行cp的時候就至關於cp -i #爲什麼咱們執行rm的時候就至關於rm -i ###linux別名 ##小名 暱稱 愛稱 外號 ##目標 ###1.防止運行危險命令****** ###2.省事 簡化命令 ##如何設置一個別名 ###第一個里程碑-查看系統中的別名 [root@lewen data]# alias rm cp mv alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' ###第二個里程碑-模仿 #執行rm命令的時候提示 do not use rm root@lewen data]# echo do not use rm do not use rm [root@lewen data]# alias rm='echo do not use rm' [root@lewen data]# alias rm alias rm='echo do not use rm' [root@lewen data]# rm /tmp/test.txt do not use rm /tmp/test.txt [root@lewen data]# rm -f /tmp/test.txt do not use rm -f /tmp/test.txt [root@lewen data]# rm -fr /tmp/test.txt do not use rm -fr /tmp/test.txt ###第三個里程碑-永久生效 #/etc/profile #vim 快捷鍵 ##移動光標到文件的最後一行 G ##移動光標到文件的 第一行 gg ##在光標所在位置的下一行插入一個空行 並進入編輯模式 o(小寫字母) [root@lewen ~]# tail -1 /etc/profile alias rm='echo do not use rm' [root@lewen ~]# source /etc/profile [root@lewen ~]# alias rm alias rm='echo do not use rm' #第四個里程碑-填坑 編輯 /root/.bashrc 把 alias rm='rm -i'這一行前面加上一個註釋# 小結: 1.配置別名 2.臨時取消別名 cp rm
[root@lewen ~]# #sed 默認輸出 sed命令會把文件的內容 默認都顯示出來 [root@lewen ~]# sed -n '20p' /lewen/ett.txt 20 [root@lewen ~]# sed -n '20,30p' /lewen/ett.txt 20 21 22 23 24 25 26 27 28 29 30
[root@lewen ~]# head -30 /lewen/ett.txt |tail -11 20 21 22 23 24 25 26 27 28 29 30
#方法3-awk [root@lewen ~]# awk 'NR==20' /lewen/ett.txt 20 #NR表示行號 #== 表示等於 [root@lewen ~]# awk 'NR==20,NR==30' /lewen/ett.txt [root@lewen ~]# sed -n '20,30p' /lewen/ett.txt #方法4-grep [root@lewen ~]# grep "20" /lewen/ett.txt 20 [root@lewen ~]# #文件的內容 ====等於這一行的行號 [root@lewen ~]# grep -A10 "20" /lewen/ett.txt 20 21 22 23 24 25 26 27 28 29 30 小結: 1.取出文件中的某一行,或者連續的幾行 2.sed,head+tail 3.awk-瞭解
建立測試環境: mkdir -p /lewen/test cd /lewen echo "lewen">test/del.sh echo "lewen">test.sh echo "lewen">t.sh touch lewen.txt touch alex.txt #第一個里程碑-找出你要的文件 [root@lewen lewen]# find /lewen/ -type f /lewen/t.sh /lewen/lewen.txt /lewen/test.sh /lewen/test/del.sh /lewen/ett.txt /lewen/alex.txt [root@lewen lewen]# find /lewen/ -type f -name "*.sh" /lewen/t.sh /lewen/test.sh /lewen/test/del.sh #第二個里程碑-lewen替換爲oldgirl 處理一個文件 [root@lewen lewen]# cat /lewen/t.sh lewen [root@lewen lewen]# #sed 's#找誰#替換爲何#g' /lewen/t.sh [root@lewen lewen]# #替換 [root@lewen lewen]# sed 's#lewen#oldgirl#g' /lewen/t.sh oldgirl [root@lewen lewen]# cat /lewen/t.sh lewen [root@lewen lewen]# #sed修改文件的內容 [root@lewen lewen]# sed -i 's#lewen#oldgirl#g' /lewen/t.sh [root@lewen lewen]# cat /lewen/t.sh oldgirl #第三個里程碑-把find命令找到的文件交給sed命令處理 [root@lewen lewen]# find /lewen/ -type f -name "*.sh" /lewen/t.sh /lewen/test.sh /lewen/test/del.sh [root@lewen lewen]# find /lewen/ -type f -name "*.sh"|xargs ls -l -rw-r--r--. 1 root root 7 Sep 25 11:59 /lewen/test/del.sh -rw-r--r--. 1 root root 7 Sep 25 11:59 /lewen/test.sh -rw-r--r--. 1 root root 8 Sep 25 12:08 /lewen/t.sh [root@lewen lewen]# find /lewen/ -type f -name "*.sh"|xargs sed 's#lewen#oldgirl#g' oldgirl oldgirl oldgirl [root@lewen lewen]# find /lewen/ -type f -name "*.sh"|xargs sed 's#lewen#oldgirl#g' -i [root@lewen lewen]# find /lewen/ -type f -name "*.sh"|xargs cat oldgirl oldgirl oldgirl 小結: 1.find 與|xargs 2.ls -l rm sed 3.sed名進行替換 修改文件內容
1.find 與|xargs
2.ls -l rm sed
3.sed名進⾏替換 修改⽂件內容安全
[root@lewen lewen]# useradd lewen [root@lewen lewen]# id lewen uid=500(lewen) gid=500(lewen) groups=500(lewen) [root@lewen lewen]# id lilaoshi id: lilaoshi: No such user [root@lewen lewen]# passwd lewen Changing password for user lewen. New password: BAD PASSWORD: it is too simplistic/systematic BAD PASSWORD: is too simple Retype new password: passwd: all authentication tokens updated successfully. #切換用戶 [root@lewen lewen]# whoami root [root@lewen lewen]# su - lewen [lewen@lewen ~]$ whoami lewen #切換回root [lewen@lewen ~]$ su - root Password: #退出當前用戶 註銷 [lewen@lewen ~]$ #ctrl + d [lewen@lewen ~]$ logout 課後題目: #su 與su -區別
[root@lewen ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@lewen ~]# uname -r 2.6.32-696.el6.x86_64 [root@lewen ~]# uname -m x86_64
##通常都是大寫的,在系統中任何的地方均可以使用。
[root@lewen ~]# echo $PS1 [\u@\h \W]\$ [root@lewen ~]# #\u=====當前用戶名 whoami [root@lewen ~]# #\h 當前主機名 hostname [root@lewen ~]# #\W 當前的位置 pwd [root@lewen ~]# PS1='[\u@\h \W \t]\$'
#臨時關閉-重啓服務器失效 [root@lewen ~]# #查詢selinux狀態 [root@lewen ~]# getenforce Enforcing [root@lewen ~]# #enforcing selinux正在運行 [root@lewen ~]# #permissive selinux臨時關閉 仍是提示警告 [root@lewen ~]# #disabled selinux完全關閉 [root@lewen ~]# setenforce usage: setenforce [ Enforcing | Permissive | 1 | 0 ] [root@lewen ~]# setenforce 0 [root@lewen ~]# getenforce Permissive #永久關閉-重啓服務器生效 vim /etc/selinux/config [root@lewen ~]# grep "=disabled" /etc/selinux/config SELINUX=disabled [root@lewen ~]# grep "disabled" /etc/selinux/config # disabled - No SELinux policy is loaded. SELINUX=disabled 小結: 1.臨時關閉-setenforce 2.永久關閉-修改配置文件
#服務器對外使用,有外網,開啓防火牆 #服務器內網, 關閉 #關閉防火牆 #臨時關閉 #查詢防火牆是否在運行 /etc/init.d/iptables status [root@lewen ~]# /etc/init.d/iptables stop iptables: Setting chains to policy ACCEPT: filter [ OK ] iptables: Flushing firewall rules: [ OK ] iptables: Unloading modules: [ OK ] [root@lewen ~]# /etc/init.d/iptables stop [root@lewen ~]# /etc/init.d/iptables status iptables: Firewall is not running. #永久關閉 開機自動啓動 #讓iptables在開機的時候 不自動啓動 chkconfig [root@lewen ~]# chkconfig |grep ipt iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root@lewen ~]# chkconfig iptables off [root@lewen ~]# chkconfig |grep ipt iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off 小結: 1.臨時關閉 xxxx stop 2.永久 chkconfig xx off
1.什麼是字符集? ##表示字符 文字的方法 UTF-8 萬國碼 系統默認的字符集 GBK GB2312 2.如何查看系統的字符集 [root@lewen ~]# echo $LANG en_US.UTF-8 [root@lewen ~]# #語言.字符集 3.如何修改字符集-臨時 [root@lewen ~]# export LANG=zh_CN.UTF-8 [root@lewen ~]# echo $LANG zh_CN.UTF-8 4.如何修改字符集-永久 [root@lewen ~]# cat /etc/sysconfig/i18n LANG="en_US.UTF-8" SYSFONT="latarcyrheb-sun16" 5.生效 [root@lewen ~]# source /etc/sysconfig/i18n [root@lewen ~]# echo $LANG en_US.UTF-8 #1.查看中文亂碼的緣由****** 1)linux使用的字符集 2)遠程鏈接工具使用的字符集 1) 與 2) 不一樣 就會致使亂碼 #2.排查 1)linux使用的字符集 2)遠程鏈接工具使用的字符集 #3.解決 方法1 修改遠程鏈接工具字符集 方法2 修改linux系統的字符集 1.如何修改字符集-臨時 2.如何修改字符集-永久 3.生效
#1.把光盤放入到光驅中 #2.linux中使用光盤 /dev/cdrom [root@lewen ~]# ll /dev/cdrom lrwxrwxrwx. 1 root root 3 Sep 25 10:01 /dev/cdrom -> sr0 [root@lewen ~]# cd /dev/cdrom -bash: cd: /dev/cdrom: Not a directory [root@lewen ~]# cat /dev/cdrom ###3.把光盤掛載到系統裏面 [root@lewen ~]# mount /dev/cdrom /mnt/ mount: block device /dev/sr0 is write-protected, mounting read-only [root@lewen ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 8.8G 1.4G 7.0G 17% / tmpfs 1.9G 0 1.9G 0% /dev/shm /dev/sda1 190M 40M 141M 22% /boot /dev/sr0 3.7G 3.7G 0 100% /mnt 小結: 1.一切從根開始,一切皆文件 2.linux設備(光盤/磁盤分區)不掛載沒法使用 3.掛載至關於給磁盤分區/設備 開了一個入口 經過入口進入到光盤/磁盤分區中 4.入口-掛載點-目錄
#網卡的配置文件 DEVICE=eth0 ###網卡的名字 HWADDR=00:0c:29:1e:67:61 #@@hardware address硬件地址 MAC地址 TYPE=Ethernet ###互聯網 UUID=3405d22b-1aab-45a5-b57f-c0d005e4f269 ###UUID 系統中惟一的標識 ONBOOT=yes #@@booton 在重啓的時候是否開啓網卡(自動運行) NM_CONTROLLED=yes ###是否能被network軟件進行管理 BOOTPROTO=none #@@網卡獲取ip地址的方式 #none/static ip地址是固定的 #dhcp 自動獲取ip地址 IPADDR=10.0.0.200 #@@ ip address ip地址 NETMASK=255.255.255.0 ### 子網掩碼 GATEWAY=10.0.0.2 #@@ 網關 默認的出口 USERCTL=no ###是否准許普通用戶管理網卡 開 關 重啓 PEERDNS=yes ### DNS1=223.5.5.5 #@@ DNS2=223.6.6.6 #@@ #上網使用 www.baidu.com jd.com taobao.com 域名 ##把使用的域名轉換爲ip地址 ----DNS作 域名解析服務/系統 ###阿里雲的DNS #223.5.5.5 #223.6.6.6 #114 #114.114.114.114 #114.114.115.115 #谷歌 #8.8.8.8
#1.在網卡配置文件中添加上 DNS1=223.5.5.5 DNS2=223.6.6.6 [root@lewen ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR=00:0c:29:1e:67:61 TYPE=Ethernet UUID=3405d22b-1aab-45a5-b57f-c0d005e4f269 ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=none IPADDR=10.0.0.200 NETMASK=255.255.255.0 GATEWAY=10.0.0.2 USERCTL=no PEERDNS=yes IPV6INIT=no DNS1=223.5.5.5 DNS2=223.6.6.6
#www.baidu.com ---->119.75.216.20 10.0.0.200 www.baidu.com www.jd.com ##進行測試 /etc/hosts C:\Windows\System32\drivers\etc\hosts
查看當前的主機名 [root@lewen ~]# hostname lewen 臨時修改主機名-重啓服務器以後失效 [root@lewen ~]# hostname lewenedu01-nb [root@lewen ~]# hostname lewenedu01-nb 永久修改主機名-重啓服務器以後生效 [root@lewenedu01-nb ~]# cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=lewenedu01-nb
/etc/fstab 開機的時候自動掛載的文件 開機的時候給每一個磁盤分區開一個入口bash
init tab(table) 1.linux運行級別講解 0 關機狀態,不要把運行級別設置爲0 1 單用戶模式 root用戶密碼忘記了 2 多用戶模式,可是沒有NFS 3 徹底的多用戶模式,命令模式,文本模式 4 未使用 5 X11,桌面模式,圖形化界面模式 6 重啓狀態,不要把運行級別設置爲6 2.如何查看當前運行級別 [root@lewenedu01-nb ~]# runlevel N 3 [root@lewenedu01-nb ~]# #N 3 [root@lewenedu01-nb ~]# #上一次使用的運行級別 當前系統的運行級別 3.如何切換運行級別-臨時 [root@lewenedu01-nb ~]# #上一次使用的運行級別 當前系統的運行級別 [root@lewenedu01-nb ~]# init 5 [root@lewenedu01-nb ~]# runlevel 3 5 4.如何永久修改運行級別-重啓生效 [root@lewenedu01-nb ~]# tail -1 /etc/inittab id:3:initdefault: 小結: 1.0-6含義 2.如何查看 3.如何修改 臨時 永久
1.yum (自動解決安裝依賴的軟件) 點外賣-你缺乏什麼外面給你解決 yum install tree 2.rpm (缺啥少啥本身解決) 速凍水餃-半成品-缺乏的東西本身解決 3.編譯 本身作飯 買菜切菜---------炒菜----上菜 ./configure------make----make install [root@lewenedu01-nb ~]# ##查看軟件是否安裝成功 [root@lewenedu01-nb ~]# rpm -qa |grep tree tree-1.5.3-3.el6.x86_64
[root@lewenedu01-nb ~]# free total used free shared buffers cached Mem: 3908500 386300 3522200 236 39192 165944 -/+ buffers/cache: 181164 3727336 Swap: 786428 0 786428 [root@lewenedu01-nb ~]# free -h total used free shared buffers cached Mem: 3.7G 377M 3.4G 236K 38M 162M -/+ buffers/cache: 176M 3.6G Swap: 767M 0B 767M
/proc/cpuinfo 查看cpu信息lscpu服務器
負載:系統的繁忙程度 最近1分鐘 最近5分鐘 最近15分鐘 平均負載 [root@lewenedu01-nb ~]# w 22:20:05 up 12:18, 4 users, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 10.0.0.1 19:16 2:08m 0.18s 0.18s -bash root pts/1 10.0.0.1 11:03 3:02m 0.06s 0.06s -bash root pts/2 10.0.0.1 20:32 1.00s 0.18s 0.07s w root pts/4 10.0.0.1 20:18 2:01m 0.03s 0.03s -bash