天天看點

linux/ubuntu 常用指令

//linux下常用配置及指令
查ip
在 fstab 中啟用開機自動挂載模式
#自己的.bashrc常用配置(同/etc/profile系統變量配置):
PYTHONPATH=/home/sunlibo/caffe/python:$PYTHONPATH
PATH=/home/sunlibo/anaconda2/bin:$PATH
export LD_LIBRARY_PATH="/home/sunlibo/anaconda2/lib:$LD_LIBRARY_PATH"
sudo gedit ~/.bashrc 編輯個人使用者的終端運作環境,設定一些使用者環境變量,用source ~/.bashrc更新環境變量
echo $PYTHONPATH可檢視是否導入成功
/etc/profile系統變量配置:須root!
#echo "export PATH=$PATH:/usr/git/bin" >> /etc/profile
# source /etc/profile


遠端操作:
SSH遠端登入Ubuntu或者Putty,port(預設為),操作完,用exit退出:ssh [email protected]填寫你的IP
本地檔案/檔案夾  》》》 遠端linux機:
scp -r /home/sunlibo/Downloads/file [email protected]填寫你的IP:/home/slb103//Downloads/
遠端檔案/檔案夾  》》》 本地linux機:
scp -r [email protected]填寫你的IP:/home/slb103/Downloads/file /home/sunlibo/Downloads/


常用操作:
ps aux | grep vnc或ps ef | grep vnc或ps -e|grep ssh檢視相關程序常與kill一塊用檢視相關程式的資訊
檢視使用者及磁盤使用情況:
sudo du -sh /home/* | sort
運作一個腳本
bash ./install_openpose_if_cuda8.sh
make all -j$(NUM_CORES)
利用個核根據makefile檔案做編譯:
make all -j12
另外:make all -j$(NUM_CORES)等價于make all -j${number_of_cpus}即利用所有核編譯
多用&和|做管道指令
Ctrl+C – 停止目前指令
Ctrl+Z – 停止目前指令,并使用 fg 恢複
Ctrl+D – 登出目前會話,與 exit 相似
Ctrl+W – 删除目前行中的字
Ctrl+U – 删除整行
!! - 重複上次的指令
exit – 登出目前會話

幾種效果等價的git clone寫法:
git clone http://github.com/CosmosHua/locate 
git clone http://github.com/CosmosHua/locate.git 
git clone git://github.com/CosmosHua/locate 
git clone git://github.com/CosmosHua/locate.git new  #new是對克隆下來的倉庫重命名


anaconda相關常用操作:
conda info --envs檢視已建成的環境
python35                 /home/slb103/anaconda2/envs/python35
tesorflow27              /home/slb103/anaconda2/envs/tesorflow27
tf_keras                 /home/slb103/anaconda2/envs/tf_keras
root                  *  /home/slb103/anaconda2
conda指令:
conda --version或conda -v
conda create -n TensorFlow python=建立環境
# 删除一個已有的環境
conda remove --name py35 --all
# 删除package
conda remove -n py35 numpy
conda install -c conda-forge opencv
conda install -n py35 numpy
source activate tensorflow 
source deactivate 退出tesorflow環境
conda list
conda update  更新軟體包


檔案操作:
gzip –d等價于gunzip指令
wget https://github.com/Itseez/opencv/archive/..zip 使用wget下載下傳,wget -c file – 斷點續傳
unzip opencv-..zip
tar –czf jpg.tar.gz *.jpg //将目錄裡所有jpg檔案打包并用gzip壓縮,生成一個gzip壓縮過的包,命名為jpg.tar.gz
tar –cjf jpg.tar.bz2 *.jpg //将目錄裡所有jpg檔案打包并用bzip2壓縮,生成一個bzip2壓縮過的包,命名為jpg.tar.bz2
tar zxvf parallel_studio*   #解壓下載下傳檔案,或者tar jxvf parallel_studio* 
解壓
tar –xvf file.tar //解壓 tar包
tar -xzvf file.tar.gz //解壓tar.gz
tar -xjvf file.tar.bz2   //解壓 tar.bz2
tar –xZvf file.tar.Z   //解壓tar.Z
unrar e file.rar //解壓rar
unzip file.zip //解壓zip
、*.tar 用 tar –xvf 解壓
、*.gz 用 gzip -d或者gunzip 解壓
、*.tar.gz和*.tgz 用 tar –xzf 解壓
、*.bz2 用 bzip2 -d或者用bunzip2 解壓
、*.tar.bz2用tar –xjf 解壓
、*.Z 用 uncompress 解壓
、*.tar.Z 用tar –xZf 解壓
、*.rar 用 unrar e解壓
、*.zip 用 unzip 解壓
sudo cp lib* /usr/local/cuda/lib64/    #複制動态連結庫,即可目錄也可檔案
sudo mv ippicv_linux_20151201.tgz /opencv-./rdparty/
./configure &&make&&make install從源代碼安裝:
dpkg -i pkg.deb – 安裝包 (Debian)
ln -s file link – 建立 file 的符号連接配接 link
cat > file – 将标準輸入添加到 file
sudo rm -r build//删除build檔案,-f為強制删除
grep -r pattern dir – 遞歸搜尋 dir 中比對 pattern 的内容
command | grep pattern – 搜尋 command 輸出中比對
pattern 的内容
bg – 列出已停止或背景的作業
fg n – 将作業 n 帶到前台
top – 顯示所有正在運作的程序
chmod  – 為所有使用者添加讀、寫、執行權限
chmod  – 為所有者添加 rwx 權限, 為組和其他使用者添加rx 權限
make all -j8 #用8個cpu核編譯檔案,或者make -j($nproc) 
chmod u+x qt-opensource-linux-x64-..run 增加運作權限


vncviewer相關:
vnc遠端複制:在linux中執行vncconfig -nowin& 或vncconfig &
在設定分辨率的時候,先netstat -tlup|grep vnc檢視自己賬戶下的幾個會話端口,如果用terminal設定好分辨率了,而沒用殺掉所有開的會話程序,則進入新的端口号的新設定vnc視窗的分辨無法正常顯示界面!是以正确的做法是:
.netstat -tlup|grep vnc      顯示自己賬戶下所開的界面會話端口
.vncserver –kill :端口号     殺掉所有會話程序
.vncserver -geometry x900 後面的x為小寫的英文字母“x”,即自己設定的分辨率大小才能生效
.打開vncviwer連接配接新生成的端口号即可正常使用
vnc相關常用的:
vim .vnc/xstartup
sudo chmod a+x /etc/X11/xinit/xintric
sudo vim /root/.vnc/xstartup
$HOME/.dbus/session
sudo service lightdm restart
rm -rf .Xaut*
sudo dpkg-reconfigure lightdm
sudo chown slb103:slb103 .Xauthority
sudo rm -rf /home/slb103/.vnc
ls -a 然後找.xsession-errors
sudo ln -f -s /usr/bin/mate-session /etc/alternative/x-session-manager





檢視指令:
date – 顯示目前日期和時間
cal – 顯示當月的月曆
uptime – 顯示系統從開機到現在所運作的時間
w – 顯示登入的使用者
whoami – 檢視你的目前使用者名
finger user – 顯示 user 的相關資訊
uname -a – 顯示核心資訊
cat /proc/cpuinfo – 檢視 cpu 資訊
cat /proc/meminfo – 檢視記憶體資訊
man command – 顯示 command 的說明手冊
df – 顯示磁盤占用情況
du – 顯示目錄空間占用情況
free – 顯示記憶體及交換區占用情況
ping host – ping host 并輸出結果
whois domain – 擷取 domain 的 whois 資訊
dig domain – 擷取 domain 的 DNS 資訊
dig -x host – 逆向查詢 host
pkg-config --modversion 來檢視指定庫的版本,比如檢視opencv版本pkg-config --modversion opencv












****************************************************************************************
老版本
****************************************************************************************

您在安裝 Ubuntu 系統時建立的使用者,預設具有“sudo”權限
/*******************包管理相關******************************/ 
    一些常用的apt指令參數(更具體的可參見相關的幫助文檔):
    sudo apt-get update 更新源
    sudo apt-get upgrade 更新已安裝的包
    sudo apt-get dist-upgrade 更新系統
    sudo apt-get install package 安裝包
    sudo apt-get install package - - reinstall 重新安裝包
    sudo apt-get -f install 修複安裝"-f = - -fix-missing"
    sudo apt-get clean && sudo apt-get autoclean 清理無用的包
    sudo apt-get autoremove 删除系統不再使用的孤立軟體:
    sudo apt-get check 檢查是否有損壞的依賴
    sudo apt-get remove package 删除包
    sudo apt-get remove package - - purge 删除包,包括删除配置檔案等
    apt-cache show package 擷取包的相關資訊,如說明、大小、版本等
    apt-cache depends package 了解使用依賴
    apt-cache rdepends package 是檢視該包被哪些包依賴
    sudo apt-get build-dep package 安裝相關的編譯環境
    apt-get source package 下載下傳該包的源代碼

    顯示系統安裝包的統計資訊:apt-cache stats
    顯示系統全部可用包的名稱:apt-cache pkgnames
    顯示包的資訊:apt-cache show k3b


/**********************************************************/

檢視目前所在目錄的絕對路經:pwd
檢視核心:uname -a
檢視Ubuntu版本:cat /etc/issue 或 lsb_release -a
檢視核心加載的子產品:lsmod
檢視PCI裝置:lspci
檢視USB裝置:lsusb -v
檢視網卡狀态:sudo ethtool eth0
檢視CPU資訊:cat /proc/cpuinfo
顯示目前硬體資訊:sudo lshw
顯示系統運作時間:uptime
檢視目前的記憶體使用情況:free
動态顯示程序執行情況:top
中止一個程序:kill 程序号 或 killall 程序名
強制中止一個程序:kill - 程序号 或 killall - 程序名
檢視目前有哪些程序:ps -A
檢視目前程序樹:pstree
列出目前目錄下的所有檔案:ls -a
檢視目前目錄的子目錄:ls -d */. 或 echo */.
一屏檢視檔案内容 :cat 檔案名
分頁檢視檔案内容:more 檔案名
可控分頁檢視檔案内容:less 檔案名
根據字元串比對來檢視檔案部分内容:grep 字元串 檔案名
顯示包含字元串的檔案名:grep -l -r 字元串 路徑
顯示不包含字元串的檔案名:grep -L -r 字元串 路徑


增加使用者:sudo adduser 使用者名
删除使用者:sudo deluser 使用者名
修改目前使用者的密碼:passwd
修改使用者密碼:sudo passwd 使用者名
修改使用者資料:sudo chfn userid
如何禁用某個帳戶:sudo usermod -L 使用者名 或 sudo passwd -l 使用者名
如何啟用某個帳戶:sudo usermod -U 使用者名 或 sudo passwd -u 使用者名
增加使用者到admin組:sudo usermod -G admin -a 使用者名
如何使用指令關閉顯示器 :xset dpms force off
設定CPU的頻率 :sudo apt-get install cpufrequtils;sudo cpufreq-info
指令關機:sudo halt
現在關機:sudo shutdown -h now
晚上點自動關機:sudo shutdown -h :
分鐘後關機:sudo shutdown -h +
指令重新開機電腦:sudo reboot
現在重新開機電腦:sudo shutdown -r now
關閉筆記本的觸摸闆 :synclient touchpadoff=
開啟筆記本的觸摸闆:synclient touchpadoff=
顯示月曆:cal
設定日期:date -s mm/dd/yy
設定時間:date -s HH:MM
将時間寫入CMOS :hwclock –systohc
檢視CMOS時間 :hwclock –show
讀取CMOS時間 :hwclock –hctosys
從伺服器上同步時間 :sudo ntpdate ntp.ubuntu.com
設定電腦的時區為上海:sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime



cd 指令。例如:
進入root目錄,輸入 "cd /"
進入到您自己的目錄(home目錄),輸入 "cd"
進入目前目錄的上一層目錄,輸入 "cd .." (譯者注:cd 與 .. 之間有空格)
進入前一個操作的目錄,輸入 "cd -"
一次進入多層目錄,輸入 "cd /var/www" 與“cd ./var/www”差別,将會直接切換到/var的子目錄/www中。另一個例子, "cd ~/Desktop" 将會進入到您的桌面目錄
移動路徑下的檔案并改名:mv 路徑/檔案 /新路徑/新檔案名
複制檔案或者目錄:cp -av 原檔案或原目錄 新檔案或新目錄
快速查找某個檔案:find 目錄 -name 檔案名
建立兩個空檔案:touch file1 file2
遞歸式建立一些嵌套目錄:mkdir –p /tmp/xxs/dsd/efd
遞歸式删除嵌套目錄:rm –fr /tmp/xxs
rm :這個指令用來移動或删除檔案。對于非空的目錄,用這個指令不能删除。
rmdir :指令rmdir 用來删除“空”目錄。要删除目錄和其中的所有内容,則需使用rm -r 。
mkdir :mkdir 指令用來建立目錄。例如:"mkdir music" 将會建立一個 music 目錄。


/************************網絡相關介紹*******************/
屏蔽IPV6 :echo ‘blacklist ipv6′ | sudo tee /etc/modprobe.d/blacklist-ipv6
察看目前網絡連接配接狀況以及程式 :sudo netstat -atnp
檢視ADSL的目前流量:sudo ethstatus -i ppp0
檢視域名的注冊備案情況:whois baidu.cn
檢視到某一個域名的路由情況:tracepath baidu.cn
重新從伺服器獲得IP位址 :sudo dhclient
下載下傳網站文檔:wget -r -p -np -k http://www.xxx.com
如何個線程下載下傳:axel -n  http://www.xxx.com/downloadfile.zip
添加一個服務:sudo update-rc.d 服務名 defaults 
删除一個服務 :sudo update-rc.d 服務名 remove
臨時重新開機一個服務:/etc/init.d/服務名 restart
臨時關閉一個服務:/etc/init.d/服務名 stop
臨時啟動一個服務:/etc/init.d/服務名 start
配置 ADSL :sudo pppoeconf
ADSL手工撥号:sudo pon dsl-provider
激活 ADSL:sudo /etc/ppp/pppoe_on_boot
斷開 ADSL :sudo poff
檢視撥号日志:sudo plog
如何設定動态域名:w3m -no-cookie -dump ‘http://usere:[email protected]/dyndns/update?system=dyndns&hostname=yourdns..org’
根據IP查網卡位址 :arping IP位址
根據IP查電腦名 :nmblookup -A IP位址
檢視目前IP位址 :ifconfig eth0 |awk ‘/inet/ {split($2,x,”:”);print x[]}’
檢視目前外網的IP位址 :w3m -no-cookie -dump www.cha.com|grep -o ‘[-]\{,\}\.[-]\{,\}\.[-]\{,\}\.[-]\{,\}’
檢視目前監聽端口的程式 :lsof -i :
檢視目前網卡的實體位址:arp -a | awk ‘{print $4}’
同一個網卡增加第二個IP位址 :sudo ifconfig eth0: . netmask .
立即讓網絡支援nat :echo  | sudo tee /proc/sys/net/ipv4/ip_forward; sudo iptables -t nat -I POSTROUTING -j MASQUERADE
檢視路由資訊:netstat -rn 或 sudo route -n
手工增加一條路由 :sudo route add -net . netmask . gw .
手工删除一條路由:sudo route del -net . netmask . gw .
修改網卡MAC位址的方法 :sudo ifconfig eth0 hw ether :AA:BB:CC:DD:EE
統計目前IP連接配接的個數 :netstat -na|grep ESTABLISHED|awk ‘{print $5}’|awk -F: ‘{print $1}’|sort|uniq -c|sort -r -n








/************************系統目錄介紹*******************/



為了輸入友善,您可以用 '~' 符号來代替您的home目錄。
如果在用mv指令的時候前面加上了sudo,那麼“~“這個符号将可以正常使用,終端會把他替換成你自己(普通使用者)的home目錄。而如果你用 ”sudo -i“或者”sudo -s“打開了一個root使用者的終端,那麼這時”~“将指代root使用者的home目錄,而非你自己的。

不要修改根目錄(“/”)或/usr目錄下的任何内容,除非真的清楚要做什麼。這些目錄最好和LINUX釋出時保持一緻。
·大多數工具和應用程式安裝在目錄:/bin,/usr/sbin, /sbin, /usr/x11/bin,/usr/local/bin。



/var目錄包含在正常操作中被改變的檔案:假脫機檔案、記錄檔案、加鎖檔案、臨時檔案和頁格式化檔案等
/home目錄包含使用者的檔案:參數設定檔案、個性化檔案、文檔、資料、EMAIL、緩存資料等。這個目錄在系統省級時應該保留。
/proc:此目錄的資料都在記憶體中,如系統核心,外部裝置,網絡狀态,由于資料都存放于記憶體中,是以不占用磁盤空間,比較重要的目錄有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/*等
    /proc目錄的内容:
    /proc/cpuinfo關于處理器的資訊,如類型、廠家、型号和性能等。
    /proc/devices目前運作核心所配置的所有裝置清單。
    /proc/dma目前正在使用的DMA通道。/proc/filesystems目前運作核心所配置的檔案系統。
    /proc/interrupts正在使用的中斷,和曾經有多少個中斷。
    /proc/ioports目前正在使用的I/O端口。
    舉例,使用下面的指令能讀出系統的CPU資訊。
    cat/proc/cpuinfo

/sbin:/usr/sbin:/usr/local/sbin:放置系統管理者使用的可執行指令,如fdisk、shutdown、mount等。與/bin不同的是,這幾個目錄是給系統管理者root使用的指令,一般使用者隻能"檢視"而不能設定和使用。

/tmp:一般使用者或正在執行的程式臨時存放檔案的目錄,任何人都可以通路,重要資料不可放置在此目錄下
    X11R6 ---  該目錄用于儲存運作X-Window所需的所有檔案。該目錄中還包含用于運作GUI要的配置檔案和二 進制檔案。
    X386 --- 功能同X11R6,X11 發行版 的系統檔案
    boot --- 引導加載器所需檔案,系統所需圖檔儲存于此
    lib --- 根檔案系統目錄下程式和核心子產品的公共庫
    modules --- 可加載子產品,系統崩潰後重新開機所需子產品
    dev --- 裝置檔案目錄
    etc --- 配置檔案
    skel --- home目錄建立,該目錄初始化
    sysconfig --- 網絡,時間,鍵盤等配置目錄


/srv:網絡服務啟動之後需要通路的資料目錄,如www服務需要通路的網頁資料存放在/srv/www内

/usr:應用程式存放目錄,/usr/bin存放應用程式,/usr/share存放共享資料,/usr/lib存放不能直接運作的,卻是許多程式運作所必需的一些函數庫檔案。/usr/local:存放軟體更新包。/usr目錄包含所有的指令、程式庫、文檔和其它檔案。這些檔案在正常操作中不會被改變的。這個目錄也包含你的Linux發行版本的主要的應用程式,譬如,Netscape。
/usr/X11R6X-WINDOWS系統(version11, release )
/usr/X11 同/usr/X11R6(/usr/X11R6的符号連接配接)
/usr/X11R6/bin大量的小X-WINDOWS應用程式(也可能是一些在其它子目錄下大執行檔案的符号連接配接)。 
/usr/docLINUX的文檔資料(在更新的系統中,這個目錄移到/usr/share/doc)。
/usr/share獨立與你計算機結構的資料,譬如,字典中的詞。
/usr/bin和/usr/sbin類似與“/”根目錄下對應的目錄(/bin和/sbin),但不用于基本的啟動(譬如,在緊急維護中)。大多數指令在這個目錄下。
/usr/local本地管理者安裝的應用程式(也可能每個應用程式有單獨的子目錄)。在“main”安裝後,這個目錄可能是空的。這個目錄下的内容在重安裝或更新作業系統後應該存在。


/var:放置系統執行過程中經常變化的檔案,如随時更改的日志檔案/var/log,/var/log/message:所有的登入檔案存放目錄,/var/spool/mail:郵件存放的目錄,/var/run:程式或服務啟動後,其PID存放在該目錄下。建議單獨分區,設定較大的磁盤空間lib --- 該目錄下的檔案在系統運作時,會改變;local --- 安裝在/usr/local的程式資料,變化的;lock --- 檔案使用特定外設或檔案,為其上鎖,其他檔案暫時不能通路;run --- 系統運作合法資訊
spool --- 列印機、郵件、代理伺服器等假脫機目錄。

/opt:給主機額外安裝軟體所擺放的目錄。如:FC4使用的Fedora 社群開發軟體,如果想要自行安裝新的KDE 桌面軟體,可以将該軟體安裝在該目錄下。以前的 Linux 系統中,習慣放置在 /usr/local 目錄下

/lib:/usr/lib:/usr/local/lib:系統使用的函數庫的目錄,程式在執行過程中,需要調用一些額外的參數時需要函數庫的協助,比較重要的目錄為/lib/modules,放着核心子產品。

/bin:/usr/bin:可執行二進制檔案的目錄,如常用的指令ls、tar、mv、cat等。

/etc:系統配置檔案存放的目錄,不建議在此目錄下存放可執行檔案,重要的配置檔案有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d修改配置檔案之前記得備份。