Linux基礎(二)之命令

01-基礎命令

1. 建立一個目錄
        mkdir  /data
    建立多級目錄
        mkdir -p /oldboy/data

2. 查看目錄裏面的內容
    ls /data

3. 查看目錄裏面的詳細信息
    ls -l /data

4. 進入到某個目錄
    cd /data

5. 顯示當前位置
    pwd

6. 建立文件、更新文件的時間戳
    touch /data/hyp.txt

7. 編輯文件
    vi /data/hyp.txt
        按 i 進行插入模式,按esc鍵,輸入 :wq 保存退出,:q 退出,:q! 強制退出,:wq! 強制保存退出

8. 查看文件hyp.txt內容
    cat hyp.txt

9. echo+內容 會把內容顯示到屏幕上
    echo hello world
    echo hello world >>/data/hyp.txt   追加到文件裏
    >> 追加劇定向
    cat >>/data/hyp.txt <<EOF     追加多行(EOF表示結束標記)

10. 重定向符號
    >      標準輸出重定向 (先清空文件裏的內容,再寫入內容)
    >>    追加劇定向
    
11. 複製
    cp /data/hyp.txt /tmp

12. 備份hyp.txt文件
    cp /data/hyp.txt /data/hyp.txt.bak

13. 複製目錄及目錄下的內容
    cp -r /data/ /tmp/       
    cp -a /data/ /tmp/       
    
    -r   遞歸複製,複製目錄及目錄裏面的內容
    -a  複製全部,至關於-pdr,
    -p  複製,保持屬性不變

14. 移動
    mv /data/ /root/

15. 刪除文件
    rm hyp.txt
    rm -f hyp.txt
    刪除目錄
    rm -rf  data/

16. 查找
    find /root/ -type f -name "hyp.txt"
    參數:
        -type   找什麼類型的
              f    文件
              d   目錄

17. 管道 |
    做用:把前面命令的結果,傳遞給後面的命令
        find /root/ -type f -name "hyp.txt" | xargs ls -l
    找出全部的.txt的文件
        find /root/ -type f -name "*.txt"

18. 過濾出oldboy內容
        grep "oldboy"  text.txt
    排除hello
        grep -v "oldboy" text.txt

19. 提取文件內容head
    head text.txt (默認取出前10行)
    提取文件的前2行
    head -2 text.txt

20. 從文件末尾提取
    tail text.txt (取出最後10行)

21. awk '/oldboy/' text.txt
    awk '!/oldboy/' text.txt   同grep含義同樣,awk中!表示取反

22. sed
    sed '/oldboy/d' text.txt  刪除oldboy

23. 在覆蓋文件時,不提示是否覆蓋的方法
    ① 撬棍 :
        \cp /tmp/text.txt /mnt/
    ② 使用命令的絕對路徑
        which cp   # 查找命令cp的位置
        /bin/cp /tmp/text.txt /mnt/

24. 如何設置系統中的別名
    # 查看系統中的別名
    alias
    # 設置別名,模仿:在用rm命令的時候提示do not use rm
    alias rm='echo do not use rm'
    # 永久生效:寫入到文件/etc/profile
    vim /etc/profile
    在最後一行 寫入 alias rm='echo do not use rm'
    source /etc/profile   # 生效
    # 填坑
    vim /root/.bashrc
    將 alias rm='rm -i' 註釋

25. 只查看ett.txt文件(共100行)的第20到第30行命令
    seq 100 >/oldboy/ett.txt
    方法1:sed默認會顯示全部內容,-n 取消默認輸出
    # 顯示第20行
    sed -n '20p' /oldboy/ett.txt
    # 顯示20-30
    sed -n '20,30p' /oldboy/ett.txt
    
    方法2:
    head -30 /oldboy/ett.txt | tail -11

    方法3:
    awk 'NR==20, NR==30' /oldboy/ett.txt   # NR表示行號

    方法4:-A10 表示顯示出grep過濾的內容以及接下來的10行
    grep -A10 "20" /oldboy/ett.txt

26. sed修改文件內容
   sed -i 's#oldboy#oldgirl#g' /oldboy/t.sh
   find /oldboy/ -type f -name "*.sh" |xargs sed -i 's#oldboy#oldgirl#g'

27. linux命令大全
  網址:http://man.linuxde.net

28. 查看Linux系統版本
   cat /etc/redhat-release
   查看內核版本
   uname -r
   uname -m

02-變量與PS1

PS1 系統的環境變量,控制命令行的樣式

echo $PS1  查看變量的內容

# 設置PS1的值
PS1='[\u@\h \W \t]\$'

03-添加用戶

# 添加普通用戶
useradd  hyp

# 檢查用戶是否存在
id  hyp

# 設置密碼
passwd  hyp

# 切換用戶
su - hyp

# 查看當前用戶
whoami

# 退出當前用戶,註銷
快捷鍵 Ctrl+d

04-關閉SELinux

# 臨時關閉,重啓服務器會失效
# 查詢selinux的狀態
getenforce
結果爲:Enforcing    表示selinux正在運行
           Permissive  表示selinux臨時關閉
           Disabled     表示selinux完全關閉

# 設置selinux的狀態
setenforce 0
1表示打開,0表示關閉

# 永久關閉,重啓服務器會生效
vim /etc/selinux/config
把 SELINUX=enforcing 改爲 SELINUX=disabled

05-防火牆IPtables

# 服務器對外使用,有外網,須要開啓防火牆

# 併發高,開啓防火牆

# 內網,關閉防火牆
--------------------------------------------
# 臨時關閉,重啓服務器會失效
# 查看防火牆是否在運行
/etc/init.d/iptables  status

# 臨時關閉防火牆
/etc/init.d/iptables  stop  (建議關閉兩次)
---------------------------------------------
# 永久關閉,
# 查詢iptables是不是開機自動運行
chkconfig |grep iptables

# 關閉iptables的開機自啓動
chkconfig  iptables  off

06-顯示中文亂碼排查過程

# 查看系統的字符集
echo  $LANG
結果爲:en_US.UTF-8

# 修改字符集
# 臨時修改,改成 中文環境
export   LANG=zh_CN.UTF-8

# 永久修改 (不要修改)
# 查看
cat  /etc/sysconfig/i18n

# 生效
source  /etc/sysconfig/i18n

 

# 亂碼產生的緣由?
1. Linux使用的字符集 與 遠程鏈接工具使用的字符集 的不一樣,就會致使亂碼

# 解決:
方法1:修改 遠程工具的字符集
方法2:修改 Linux的字符集

07-Linux目錄結構

目錄結構的特色:
    1. 一切從根開始
    2. Linux中每一個設備能夠掛在任何目錄上面
    3. Linux下面的磁盤/設備沒有掛載,則沒法使用

# 把光盤掛載到目錄
mount  /dev/cdrom  /mnt/
-----------------------------------------
目錄簡介:
# 安裝tree
yum install tree

08-核心目錄文件 - /etc

# 網卡的配置文件
cat  /etc/sysconfig/network-scripts/ifcfg-eth0

 

yum  install  tree 報錯的解決方法:

# 修改網卡配置文件:
vim  /etc/sysconfig/network-scripts/ifcfg-eth0
# 添加 
DNS1=223.5.5.5 
DNS2=223.6.6.6

# 網卡配置生效=重啓網卡
ifdown eth0 && ifup eth0
或者 重啓全部網卡
/etc/init.d/network  restart

8.2 /etc/resolv.conf

8.3 /etc/hosts 在測試的時候使用

 

vim  /etc/hosts

插入:
10.0.0.200   www.taobao.com   www.jd.com

8.4 /etc/sysconfig/netwaork/ - 修改主機名的文件

 8.5 /etc/fstab - 開機自動掛載的文件

 

 8.6 /etc/rc.local

/etc/rc.local
做用:開機自動運行的文件

8.7 /etc/inittab

8.8 系統環境變量別名profile

09-Linux安裝軟件的方法user-local

10-系統日誌系列

11-虛擬目錄

 12-Linux的啓動過程

13-PATH環境變量

命令:env

經常使用的環境變量:LANG、PS一、PATH

PATH:存放的是命令的路徑

命令:etho $PATH

14-練習題

命令:
    tree:以樹形顯示目錄結構
       -L:最多顯示幾層目錄
       -d:只顯示目錄

    rpm:rpm包管理命令
       -qa:查詢
       -ql:查詢軟件包裏面的內容
1. 如何過濾出已知當前目錄下oldboy中的全部第一級目錄
命令:
方法1:tree  -dL  -1  /oldboy/
方法2:find  -maxdepth 1  -type  d  !  -name  "."
方法3:ls  -l|grep  "^d"
方法4:ls  -l|awk  '$2>1'
方法5:ls  -F|grep  "/"

2.  快速回到上一次的所在位置/目錄
命令:cd  -   至關於  cd  $OLDPWD

3. 一個目錄有不少文件(ls查看時好多屏),想最快速度查看到最近更新的文件。
命令:ls  -lrt
參數:-r :逆序
         -t :按照文件的修改時間進行排序
4. 已知apache服務的訪問日誌按天記錄在服務器本地目錄/app/logs下,因爲磁盤空間緊張,如今要求只能保留最近7天的訪問日誌,請問如何解決?
(提示:能夠從apache服務配置上着手,也能夠從生成出來的日誌着手。)
命令:
方法1:find  -type  -f  -name  "*.log"  -mtime +7 |xargs  ls -l   # 篩選出7天以前的日誌
方法2:ls  -l $(find  -type  f  -name  "*.log"  -name  +7)
方法3:find  -type  f -name  "*log"  -mtime  +7  -exec  ls  -l {} \;


5. 調試系統服務時,但願能實時查看系統日誌/var/log/messages 的更新,如何作?
命令:tail  -f  /var/log/messages
參數:-f:顯示文件的實時更新
        tail  -f === tailf

6. 打印配置文件 nginx.conf 內容的行號及內容,該如何作?
命令:
方法1:cat  -n  nginx.conf
方法2:vi/vim  ---》  :set  nu  # 顯示行號
方法3:grep  -n  "."  nginx.conf
方法4:awk  '{print  NR, $0}'  nginx.conf
方法5:sed  '='  nginx.conf |xargs  -n2

7. 
相關文章
相關標籤/搜索