一: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