設置root用戶
sudo passwd root
輸入密碼,并確認密碼
su root
切換到root用戶
添加用戶
sudo adduser username
根據提示設置密碼,最后ls /home
查看一下,如果顯示你添加的用戶名,則代表用戶創建成功。
賦予用戶sudo權限
切換到root用戶
為sudoers文件添加寫權限:使用命令chmod u+w /etc/sudoers
輸入vi /etc/sudoers
找到root ALL=(ALL) ALL
在下面添加myname ALL=(ALL) ALL
撤銷文件的寫權限chmod u-w /etc/sudoers
開放文件夾的所有權限 chmod 777 -R dir
退出vi的方法
按i
或o
進入編輯模式,編輯結束,按esc
進入命令模式,然后輸入退出命令:
:wq 保存文件并退出vi
:q 不保存文件并退出vi
:q! 不保存修改強制退出vi
vi復制/剪切/粘貼
- 復制yank(拉起),常用命令如下:
yy
復制整行(nyy或者yny ,復制n行)
y^
復制當前到行頭的內容;
y$
復制當前到行尾的內容;
yw
復制一個word(nyw或者ynw,復制n個word) - 剪切delete,常用命令如下:
dd
剪切整行
d^
剪切至行首
d$
剪切至行尾
dw
剪切一個word - 粘貼put,常用命令如下:
p
小寫p代表貼至游標后(下),因為游標是在具體字符的位置上,所以實際是在該字符的后面
P
大寫P代表貼至游標前(上)
查看文件前/后幾行
head -n 10 nohup.out
tail -n 10 nohup.out
tail -n +1000 nohup.out #從第1000行開始顯示,顯示1000行以后的
cat nohup.txt | tail -n +1000 | head -n 500 #從第1000行開始顯示500行
lsb_release -a
查看linux系統版本
dpkg --print-architecture
查看系統架構
find path -name '關鍵字' -type d/f
查找目錄或文件
du -sh
查看當前目錄總共占的容量,而不單獨列出各子項占用的容量
du -sh *
查看文件的使用空間大小
df -hl
查看磁盤的使用情況
du -hl --max-depth=1
查看當前目錄下一級子文件和子目錄占用的磁盤容量
ls | wc -w
查看當前文件夾下有多少個子文件
ls -a
列出隱藏文件
ls -l dirname
查看文件夾權限
groups
查看當前用戶所屬的組
chown -R username:groupname dirname
更改文件或文件夾擁有者
ln -s [源文件] [目的文件]
為源文件創建軟鏈接
cp [options] source dest
復制文件
mv /tomcat/tomcat.zip /usr/local
剪切文件
du -sh .
查看當前文件夾占用空間大小
du -sh *
查看當前文件夾下各個文件占用大小
sudo chmod a+x user
訪問user(其他用戶)的文件夾
sudo du -h --max-depth=1
可顯示隱藏文件大小
對文件內容進行查找
- 沒有打開文件就用
cat 文件名 | grep 關鍵字
- 用vi打開文件后,直接在命令模式下輸入
/關鍵字
-
nG
跳到文件第n行 -
gg
跳到文件首行 -
wc [options] file
:-w
統計字數,-l
統計行數
source filepath
或 . filepath
使當前shell讀入路徑為filepath的shell文件并依次執行文件中的所有語句,通常用于重新執行剛修改的初始化文件,使之立即生效,而不必注銷并重新登錄。
例如,當我們修改了/etc/profile文件,并想讓它立刻生效,而不用重新登錄,就可以使用source命令,如source /etc/profile。
export train_cmd=run.pl
export可新增,修改或刪除環境變量,供后續執行的程序使用。export的效力僅及于該次登陸操作。
set -e
如果任何語句的執行結果不是0(表示沒有錯誤)則應該退出shell。一般你寫的每個腳本都應該在文件開頭加上set -e,防止錯誤像滾雪球般變大導致致命錯誤。
多行注釋
<<COMMENT
....
COMMENT
查找文件命令
-
which [可執行文件名稱]
在 PATH 變量指定的路徑中,搜索某個系統命令的位置。一般用于查找命令/可執行文件所在路徑。 -
whereis [-bmsu] [文件或者目錄名稱]
用于程序名的搜索,返回與名稱匹配的二進制文件,源文件,幫助文件。 -
locate [文件或者目錄名稱]
查找任意文件,是在數據庫里查找,數據庫大至每天更新一次,查之前可以執行updatedb
命令手動更新一下數據庫。 -
find [路徑] [條件]
find是在硬盤上遍歷查找,因此非常消耗硬盤的資源,而且效率也非常低,因此建議大家優先使用其他三個。
解壓/壓縮文件
解壓文件:
tar -xzvf test.tar.gz
壓縮文件:
touch a.c
tar -czvf test.tar.gz a.c
-c
打包 -x
解壓 -z
通過gzip指令處理 -v
顯示執行過程 -f
指定備份文件,要立即接文檔名,不要再加其他參數 -C
指定需要解壓到的目錄
使用wget下載
wget是一個從網絡上自動下載文件的自由工具。它支持HTTP,HTTPS和FTP協議,可以使用HTTP代理。所謂的自動下載是指,wget可以在用戶退出系統之后在后臺執行,并且支持斷點續傳(只需要使用-c參數)。
-O
指定下載后的文件名
-c
重新啟動下載中斷的文件
-b
后臺下載,可以使用tail -f wget-log
查看下載進度
-q
安靜模式(沒有輸出)
-t
--tries=NUMBER 設定最大嘗試鏈接次數(0 表示無限制)
-T
--timeout=SECONDS 設定響應超時的秒數
-i
--input-file=FILE 下載在FILE文件中出現的URLs
批量下載:
-
touch url.txt
新建一個文件 -
vi url.txt
在url.txt中寫入所有下載鏈接 -
wget -b -i url.txt
-b表示后臺wget,-i 表示從文本文件內讀取網址
執行python文件:
-
ls -l
查看是否有執行該.py文件的權限 -
chmod u+x prepare_data.py
如果沒有,添加上執行權限 -
python3 prepare_data.py --src $mydir --dst $mydir
運行.py腳本
查看程序是否還在運行
ps -ef|grep [程序名中的關鍵字]
輸出zd 15727 11590 99 11:00 pts/8 06:49:47 wav2letter/build/Train train
輸出格式含義:UID PID PPID C STIME TTY TIME
UID
擁有該進程的用戶ID
PID
進程ID
PPID
父進程ID
C
CPU調度情況(CPU用于執行優先級的因子)
STIME
進程啟動時間
TTY
啟動進程的終端名
TIME
使用掉的CPU時間
CMD
啟動進程的命令
jobs -l
只能查看當前終端中已啟動的作業
將程序放到后臺運行
-
方法1
nohup [command] &
這樣遠程終端關閉后,程序也能一直在后臺運行。
nohup
不掛斷地運行命令;&
在后臺運行。缺省情況下日志會輸出到當前運行目錄下nohup.out文件中,采用nohup command > my.out 2>&1 &
將日志重定向到指定文件[0-stdin, 1-stdout, 2-stderr]
。將前臺已經執行的命令放到后臺:
首先按Ctrl+z
暫停已經運行的進程,然后使用bg %1
命令將停止的作業放到后臺運行。# 運行一個程序 ./test.sh Ctrl+z掛起程序并顯示編號 #[1]+ Stopped ./test.sh # 程序轉到后臺 bg %1
-
方法2
- 安裝screen
sudo apt-get install screen
-
screen -S yolo
#創建一個名為yolo的窗口
當你執行完以上命令后,就會自動跳入名為yolo的窗口,在這個窗口里可以干你想干的事情。 - 當你不想呆在這個窗口時,你可以通過快捷鍵
Ctrl+a+d
斷開這個窗口的連接而回到連接會話界面。顯示如下
[detached from 28113.yolo]
說明從yolo這個窗口斷開回到了會話界面。但是這個斷開只是不顯示那個窗口,而窗口對應的任務還是在后臺運行的。 -
screen -ls
#可以查看已創建的所有窗口
There is a screen on: 14975.yolo (2019年01月04日 16時48分35秒)
- 如果想看其中一個窗口任務的執行狀態,可以通過如下指令:
screen -r yolo
#恢復yolo窗口,顯示其運行過程 - 如果想直接停止某個窗口任務的運行,可以直接通過殺死id的方式
kill 14975
#終止yolo窗口對應任務的運行,同時殺死該窗口 -
screen -wipe
#自動清除死去的窗口 -
exit
#關閉screen會話,會提示[screen is terminating]
screen可以實現代碼在后臺運行時的可視化,同時,能在開一個會話連接時創建多個窗口處理不同的任務。
- 安裝screen
ssh connect
sudo apt-get install openssh-server
sudo apt-get install vim
/etc/ssh
sudo chmod 777 sshd_config
PermitRootLogin yes
service sshd restart
跨服務器文件傳輸
- 從本地復制到遠程
scp -P remote_port -r local_folder remote_user@remote_ip:remote_folder
- 從遠程復制到本地
scp -P remote_port -r remote_user@remote_ip:remote_folder local_folder
參考:
wget用法,參數解釋的比較好的一個文章
vi/vim復制粘貼命令
程序在Linux下后臺運行,程序運行前后臺切換
跑深度學習代碼在linux服務器上的常用操作
screen命令用法詳解