Linux(Ubantu,Centos) 命令、系統使用、教程彙總[不定期更新]

一:find快速檢索文件內容

功能描述:從當前目錄裏面找到 youdutech相關信息
第一種實現方法:find + exec +grep
 find . -type f -exec  grep -Hn --color=auto "youdutech" {} \;
第二種實現方法 find+xargs +grep
find . -type f | xargs  grep -Hn --color=auto "CUDA_VERSION" 
提升搜索速度的常用方式 —加上文件名過濾
find . -type f -name "*.py" | xargs  grep -Hn --color=auto "CUDA_VERSION" 
參數解釋
find . “.” 表示當前目錄 
-type f 表示普通文件類型,因爲find還可以查找塊文件,套接字文件等類型。 
-name "*.py"過濾搜索的文件名字特徵。 
-exec [xx] {} \; 針對發現的內容執行XX命令。其中{}表示find的內容,注意 {} 和\之間有空格,\;表示分割不同的find內容。 
| xargs [xx] 把前一個命令的輸出當做是xx 命令的輸入。其中 ”|“表示通道。 
-Hn H表示顯示文件名稱, n表示顯示行號。 
--color=auto 表示高亮顯示輸出。
 

二:Linux解包、壓縮文件文件夾

.tar
  解包:tar xvf FileName.tar
  打包:tar cvf FileName.tar DirName
  (注:tar是打包,不是壓縮!)
  ———————————————
  .gz
  解壓1:gunzip FileName.gz
  解壓2:gzip -d FileName.gz
  壓縮:gzip FileName
  .tar.gz 和 .tgz
  解壓:tar zxvf FileName.tar.gz
  壓縮:tar zcvf FileName.tar.gz DirName
  ——————————————— 

三:Linux靜態IP配置

vim /etc/sysconfig/network-scripts/[網卡名]

TYPE=Ethernet
DEVICE=enp0s3               #綁定的網卡名稱
ONBOOT=yes                  #開機啓用(重要)
BOOTPROTO=static            #使用靜態IP
IPADDR=192.168.1.203        #IP地址
NETMASK=255.255.255.0       #子網掩碼
GATEWAY=192.168.1.1         #網關
DNS1=192.168.1.1            #DNS
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=enp0s3
UUID=8eeba138-67e9-4532-b5da-a25c596a4354
 

四:Android 系統編譯 增加效率命令

1 開始編譯[根目錄]

(1) 在 .bashrc文件末尾添加:export USE_CCACHE = 1

      echo export USE_CCACHE=1 >> ~/.bashrc

(2) 爲了提高編譯效率,設置編譯器高速緩存:

prebuilts/misc/linux-x86/ccache/ccache -M 50G

四:Python安裝&覆蓋老版本

1:可利用linux自帶下載工具wget下載 :

wget http://www.python.org/ftp/python/3.3.0/Python-3.3.0.tgz

2:下載完成後到下載目錄下,解壓

tar -xzvf Python-3.3.0.tgz

3、進入解壓縮後的文件夾

cd Python-3.3.0

在編譯前先在/usr/local建一個文件夾python3(作爲python的安裝路徑,以免覆蓋老的版本)

./configure --prefix=/usr/local/python3 (生成Makefile)

make && make install

6、此時沒有覆蓋老版本,再將原來/usr/bin/python鏈接改爲別的名字(筆者保留了兩個版本的,一個python,一個python3,所以第6步筆者略過,把第7步的鏈接後名字改爲python3,讀者可按正常步驟,實現的效果相同)

mv /usr/bin/python /usr/bin/python_old2

7、再建立新版本python的鏈接

ln -s /usr/local/python3/bin/python3  /usr/bin/python

8、這個時候輸入

python -V

 五:git 當前分支 master 沒有對應的上游分支

1: git init  後爲一個空的倉庫

2:git clone  url   path

3:克隆後 此時無分支,加入修改後 git add -> gitcommit ->   git push --set-upstream origin master (或者其他分支)

fatal: 當前分支 master 沒有對應的上游分支。
爲推送當前分支並建立與遠程上游的跟蹤,使用

    git push --set-upstream origin master

六:阿里雲ECS Linux解決SSH會話連接超時問題 

用SSH客戶端連接linux服務器時,經常會出現與服務器會話連接中斷現象,造成這個問題的原因便是SSH服務有自己獨特的會話連接機制。

解決方案:

1、設置服務器向SSH客戶端連接會話發送頻率和時間
#vi /etc/ssh/sshd_config,添加如下兩行
ClientAliveInterval 60
ClientAliveCountMax 86400

注:ClientAliveInterval選項定義了每隔多少秒給SSH客戶端發送一次信號;ClientAliveCountMax選項定義了超過多少秒後斷開與ssh客戶端連接

2、重新啓動系統SSH服務
#service sshd restart

 七:一鍵解壓當前目錄下所有的 tar.gz(或其他格式)

 在tar.gz文件所在的目錄下建立run.sh 內容爲:

#!/bin/bash
for wav in ./*.tar.gz; do
    echo "Extracting wav from $wav"
    tar -zxf $wav && rm $wav
done

添加執行權限

chmod +x run.sh
執行

./run.sh
1

這段代碼是從kaldi腳本里面抽出來的,所以不難解釋爲什麼用的是wav變量  

wav 表示 xxx.tar的

如果解壓的爲其他格式,則稍微修改代碼即可。

七:GIT錯誤:master -> master (branch is currently checked out) 

1.錯誤信息  

Could not chdir to home directory /var/services/homes/gaofei: No such file or directory
對象計數中: 3, 完成.
寫入對象中: 100% (3/3), 202 bytes | 0 bytes/s, 完成.
Total 3 (delta 0), reused 0 (delta 0)
remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: is denied, because it will make the index and work tree inconsistent
remote: with what you pushed, and will require 'git reset --hard' to match
remote: the work tree to HEAD.
remote: 
remote: You can set 'receive.denyCurrentBranch' configuration variable to
remote: 'ignore' or 'warn' in the remote repository to allow pushing into
remote: its current branch; however, this is not recommended unless you
remote: arranged to update its work tree to match what you pushed in some
remote: other way.
remote: 
remote: To squelch this message and still keep the default behaviour, set
remote: 'receive.denyCurrentBranch' configuration variable to 'refuse'.
To ssh://[email protected]//volume1/git_prj/ecc
 ! [remote rejected] master -> master (branch is currently checked out)
error: 無法推送一些引用到 'ssh://[email protected]//volume1/git_prj/ecc':錯誤

 2.錯誤原因

其實出錯信息中有提示“remote: ‘receive.denyCurrentBranch’ configuration variable to ‘refuse’.”,即使遠程git拒絕了push操作

3.解決辦法 

修改git服務端的.git/config文件,增加push的設置,添加如下代碼:

[receive]
 denyCurrentBranch = ignore

 

八:Linux合併文件

cat file1 file2 > file   

注: 一般合併的文件基本名稱都差不多  比如 xxx.tar.0   xxx.tar.1

此時 執行命令  cat xxx.tar.*  > (輸出的文件名.tar)

 九:Linux下 打包壓縮、解包解壓縮

打包壓縮:

tar -cvf   log.tar log2012.log    僅打包,不壓縮! 
tar -zcvf log.tar.gz log2012.log   打包後,以 gzip 壓縮 
tar -jcvf  log.tar.bz2 log2012.log  打包後,以 bzip2 壓縮 
在選項f之後的文件檔名是自己取的,我們習慣上都用 .tar 來作爲辨識。 
如果加z選項,則以.tar.gz或.tgz來代表gzip壓縮過的tar包;
如果加j選項,則以.tar.bz2來作爲tar包名。

  -j, --bzip2
  -z, --gzip, --gunzip --ungzip
  -v, --verbose
       verbosely list files processed
       詳細列出處理過的文件
  -f, --file ARCHIVE
       use archive file or device ARCHIVE
       使用存檔文件或設備存檔(指定存檔文件)
       切記,這個參數是最後一個參數,後面只能接檔案名。
       tar 命令 必須和-f命令連用
       在選項f之後的文件檔名是自己取的,我們習慣上都用 .tar 來作爲辨識。 如果加z選項,則以.tar.gz或.tgz來代表gzip壓縮過的tar包;如果加j選項,則以.tar.bz2來作爲tar包名。
 

解包解壓縮:

tar -xvf archive.tar -C /tmp 將壓縮包釋放到 /tmp目錄下 jz選項依據壓縮屬性需要加上 -C, --directory DIR change to directory DIR

tar -zxf    XXX.tar.gz   解壓tar.gz 

十:Linux中執行命令 老師 ls -l  後,顯示的各屬性含義圖解

 

十一: Ubuntu 修改或創建交換分區的大小

第一:查看當前空間大小:
#free -m
                 total       used       free     shared    buffers     cached
Mem:          1002        977         24          0         25        638
-/+ buffers/cache:        313        688
Swap:         991          0       991

創建交換分區:
第二:進入root用戶 輸入 sudo -i 然後輸入密碼,就可以了。
第三:用戶在根目錄下創建一個目錄
     
   mkdir /swap
第四:進入swap目錄;
      
  cd /swap
第五:輸入要創建交換分區命令然後回車;
   
    dd if=/dev/zero of=swapfile bs=1024 count=1029000
       可以看到如下內容:

       記錄了1029000+0 的讀入
       記錄了1029000+0 的寫出
       1053696000字節(1.1 GB)已複製,69.0168 秒,15.3 MB/秒

       可以用ls -lh 可以看到一個文件。
       -rw-r--r-- 1 root root 1005M 2010-01-02 14:35 swapfile

第六:輸入命令       mkswap swapfile 可以看到下面內容:
  
      mkswap: swapfile: warning: don't erase bootbits sectors
        on whole disk. Use -f to force.
        Setting up swapspace version 1, size = 1028996 KiB
        no label, UUID=82eda1f8-f20a-4ca0-ba21-a4bdce5b765a
第七:掛載交換分區:swapon swapfile
如 果想卸載的話輸入:swapoff swapfile
第八:再查看空間大小:free -m
             total       used       free     shared    buffers     cached
Mem:          1002        980         21          0         13        738
-/+ buffers/cache:        229        773
Swap:         1899          0       1899
 

十二 ImportError: No module named PIL

Ubuntu 執行:

~# sudo -H pip  install pillow

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