那些年咱們踩過的linux坑(1)

1、解決虛擬機的centos Linux無網絡html

 

這一步爲設置物理主機,保證虛擬網關的IP爲自動貨期,同時本地連接也設置爲自動獲取。node

創建Windows批處理文件xxx.txt更名爲xxx.batpython

xxx.bat內容net start 「VMware DHCP Service」linux

net start 「VMware NAT Service」c++

用管理員權限執行xxx.batgit

進入centos命令行shell

cd /etc/sysconfig/network-scrips/windows

ls 查看文件ifcfge-eno+數字centos

vi ifcfg-eno32bash

修改ONBOOT=yes

Esc 切換到命令模式 輸入:wq保存並退出

Centos 默認不開啓網卡,開啓網卡

 

重啓網絡

Service NetworkManager stop

Service network restart

Service NetworkManager start

 Ping www.baidu.com

 

如圖爲Ping通

2、yum update 出現-bash: /usr/bin/yum: /usr/bin/python: bad interpreter錯誤

-bash: /usr/bin/yum: /usr/bin/python: bad interpreter: Too many levels of symbolic links

或-bash: /usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory

或which python返回/usr/bin/which: no python in

或which python2返回/usr/bin/which: no python2 in

Linux預裝的是Python解釋器爲2.7版本

符號連接問題。檢查是不是連接指向性錯誤位置

ls -al  /usr/bin/python

解決方法:殺出該連接而後從新建立連接

ln -s /usr/bin/python2.7 /usr/bin/python

rm /usr/bin/python

二三四類屬於連接沒有指向python2.7

ln -s /usr/bin/python2.7 /usr/bin/python

ln -s /usr/bin/python2.7 /usr/bin/python2

其餘自編shell 命令出現此錯誤-bash: /usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory可能爲

 sh 腳本在windows 系統下記事本文件編寫的

修改:修改.sh文件格式

vi test.sh

:set ff  查看到fileformat=dos 或 fileformat=unix

:wq #存盤退出

其實,在windows下經過git bash能夠直接編寫unix格式.sh

3、yum的卸載與從新安裝

查看系統版本uname -r

將現有yum源卸載

rpm -qa yum

rpm -qa | grep yum | xargs rpm -e –nodeps #這一步必定要執行,並且要將全部的組件卸載掉,若是卸載不乾淨,後面安裝會有問題

rpm -qa yum

[root@linux-node3 ~]# wget http://mirror.centos.org/centos/7/os/x86_64/Packages/yum-3.4.3-150.el7.centos.noarch.rpm

[root@linux-node3 ~]# wget http://mirror.centos.org/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm

[root@linux-node3 ~]# wget http://mirror.centos.org/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-40.el7.noarch.rpm

centos 官網上下載和yum有關的rpm包

wget http://mirror.centos.org…………………….

安裝

ls

文件顯示

 

rpm -ivh yum-*

rpm -qa yum  #查看是否已經安裝上

 

一、不一樣的操做系統版本,要從官網上下載不一樣的rpm包,官網地址」http://mirror.centos.org/centos/「,而後根據本身操做系統的版本選擇便可。

二、若是出現安裝好之後,yum仍是不能用的狀況,那肯是是原有的yum沒有刪除乾淨,再次執行如下命令,從新安裝yum便可。

 

rpm -qa|grep yum|xargs rpm -e --nodeps

1

三、若是有須要導入證書的狀況,請從官網上找到連接,導入便可

 

rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7

 

Linux查看日誌經常使用命令

1.查看日誌經常使用命令

    tail:  

       -n  是顯示行號;至關於nl命令;例子以下:

            tail -100f test.log      實時監控100行日誌

            tail  -n  10  test.log   查詢日誌尾部最後10行的日誌;

            tail -n +10 test.log    查詢10行以後的全部日誌;

    head:  

        跟tail是相反的,tail是看後多少行日誌;例子以下:

            head -n 10  test.log   查詢日誌文件中的頭10行日誌;

            head -n -10  test.log   查詢日誌文件除了最後10行的其餘全部日誌;

    cat: 

        tac是倒序查看,是cat單詞反寫;例子以下:

            cat -n test.log |grep "debug"   查詢關鍵字的日誌

 

2. 應用場景一:按行號查看---過濾出關鍵字附近的日誌

     1)cat -n test.log |grep "debug"  獲得關鍵日誌的行號

     2)cat -n test.log |tail -n +92|head -n 20  選擇關鍵字所在的中間一行. 而後查看這個關鍵字前10行和後10行的日誌:

            tail -n +92表示查詢92行以後的日誌

            head -n 20 則表示在前面的查詢結果裏再查前20條記錄

 

3. 應用場景二:根據日期查詢日誌

      sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p'  test.log

      特別說明:上面的兩個日期必須是日誌中打印出來的日誌,不然無效;

                      先 grep '2014-12-17 16:17:20' test.log 來肯定日誌中是否有該 時間點

 

4.應用場景三:日誌內容特別多,打印在屏幕上不方便查看

    (1)使用more和less命令,

           如: cat -n test.log |grep "debug" |more     這樣就分頁打印了,經過點擊空格鍵翻頁

    (2)使用 >xxx.txt 將其保存到文件中,到時能夠拉下這個文件分析

            如:cat -n test.log |grep "debug"  >debug.txt

 

新增命令 cd 和 rm

rm [options] name...

參數:

 

-i 刪除前逐一詢問確認。

-f 即便原檔案屬性設爲惟讀,亦直接刪除,無需逐一確認。

-r 將目錄及如下之檔案亦逐一刪除。

實例

刪除文件能夠直接使用rm命令,若刪除目錄則必須配合選項"-r",例如:

 

# rm  test.txt

rm:是否刪除 通常文件 "test.txt"? y 

# rm  homework 

rm: 沒法刪除目錄"homework": 是一個目錄 

# rm  -r  homework 

rm:是否刪除 目錄 "homework"? y

刪除當前目錄下的全部文件及目錄,命令行爲:

 

rm  -r  *

文件一旦經過rm命令刪除,則沒法恢復,因此必須格外當心地使用該命令。

進入系統根目錄cd / 上一級目錄cd ..

cd 或 cd ~ 進入主目錄

跳轉目錄 cd /test/test

 

未解決更新python3.7

解決 未安裝gcc-c++

Yum install gcc-c++

附帶說明gcc與g++/gcc-c++的異同:

gcc爲GNU Compiler Collection的縮寫,能夠編譯C和C++源代碼等,它是GNU開發的C和C++以及其餘不少種語言的編譯器(最先的時候只能編譯C,後來很快進化成一個編譯多種語言的集合,如Fortran、Pascal、Objective-C、Java、Ada、 Go等。)

gcc在編譯C++源代碼的階段,只能編譯C++源文件,而不能自動和C++程序使用的庫連接(編譯過程分爲編譯、連接兩個階段,源程序文件被編譯成目標文件,多個目標文件連同庫被連接成一個最終的可執行文件,可執行文件被加載到內存中運行)。所以,一般使用g++命令來完成C++程序的編譯和鏈接,該程序會自動調用 gcc 實現編譯。

g++也能編譯C源代碼,只不過把會把它當成C++源代碼。後綴爲.c的源文件,gcc把它看成是C程序,而g++把它看成是c++程序;後綴爲.cpp的,二者都會認爲是c++程序。注意,雖然c++是c的超集,可是二者對語法的要求是有區別的。

相關文章
相關標籤/搜索