1.qsub命令
-
參數(shù)
-e 路徑名
定義要用于批處理作業(yè)的標(biāo)準(zhǔn)錯(cuò)誤流的路徑治力。-
-N file_name
定義批處理作業(yè)的名稱。
qsub-n選項(xiàng)應(yīng)接受名稱選項(xiàng)參數(shù)的值滤否,該參數(shù)是portabl字符集中最多15個(gè)字母數(shù)字字符的字符串
-o path_name
定義批處理作業(yè)的標(biāo)準(zhǔn)輸出的路徑侣夷。-
-V
指定將流程的所有環(huán)境變量導(dǎo)出到批處理作業(yè)的上下文中。
-
-l (小寫L)
指定作業(yè)所需要的資源梦重,設(shè)定對(duì)可消耗資源的限制兑燥。如果不設(shè)置,則無(wú)限制琴拧。
h_cpu = 720:00:00
2. java命令
描述
- Java命令啟動(dòng)Java應(yīng)用程序贪嫂。它通過(guò)啟動(dòng)Java運(yùn)行時(shí)環(huán)境(JRE)、加載指定的類和調(diào)用該類的man()方法來(lái)實(shí)現(xiàn)這一點(diǎn)艾蓝。該方法必須聲明為公共的和靜態(tài)的,它不能返回任何值斗塘,并且它必須接受字符串?dāng)?shù)組作為參數(shù)
main(String)[ARGs]
用法
java [options] -jar filename [args]
java [options] classname [args]
參數(shù)
options
選項(xiàng)赢织;由空格所分開的命令行選項(xiàng),也可以是簡(jiǎn)寫classname
類型名馍盟;要被啟動(dòng)的程序的名字filename
文件名于置;將要使用的JAR文件的文件名,僅在-jar選項(xiàng)后使用-
args
參數(shù)贞岭;傳遞給main()方法的參數(shù)八毯,用空格分隔
3. 命令替換
- shell腳本中最有用的特性之一就是可以從命令輸出中提取信息,并將其賦給變量瞄桨。把輸出賦給變量之后话速,就可以隨意在腳本中使用了。這個(gè)特性在處理腳本數(shù)據(jù)時(shí)尤為方便芯侥。
- 有兩種方法可以將命令輸出賦給變量:
- 反引號(hào)字符( ` )
- $()格式
testing=`date`
testing=$(date)
命令替換允許你將shell命令的輸出賦給變量泊交。盡管這看起來(lái)并不那么重要乳讥,但它卻是腳本編程中的一個(gè)主要組成部分。要么用一對(duì)反引號(hào)把整個(gè)命令行命令圍起來(lái):
下面這個(gè)例子很常見廓俭,它在腳本中通過(guò)命令替換獲得當(dāng)前日期并用它來(lái)生成唯一文件名云石。
#! /bin/bash
#copy the /usr/bin directory listing to a log file
today=$(date +%y%m%d)
ls /usr/bin -al > log.$today
- today 變量是被賦予格式化后的 date 命令的輸出。這是提取日期信息來(lái)生成日志文件名常用的一種技術(shù)研乒。+%y%m%d 格式告訴 date 命令將日期顯示為兩位數(shù)的年月日的組合汹忠。運(yùn)行該腳本之后,應(yīng)該能在目錄中看到一個(gè)新文件雹熬。
-rw-r--r-- 1 user user 769 Jan 31 10:15 log.140131
?目錄中出現(xiàn)的日志文件采用 $today 變量的值作為文件名的一部分宽菜。日志文件的內(nèi)容是/usr/bin目錄內(nèi)容的列表輸出。如果腳本在明天運(yùn)行橄唬,日志文件名會(huì)是log.140201赋焕,就這樣為新的一天創(chuàng)建一個(gè)新文件。
4. tee
Linux 命令大全Linux tee命令用于讀取標(biāo)準(zhǔn)輸入的數(shù)據(jù)仰楚,并將其內(nèi)容輸出成文件隆判。
tee指令會(huì)從標(biāo)準(zhǔn)輸入設(shè)備讀取數(shù)據(jù),將其內(nèi)容輸出到標(biāo)準(zhǔn)輸出設(shè)備僧界,同時(shí)保存成文件侨嘀。
語(yǔ)法
$ tee [-ai][--help][--version][文件...]
參數(shù):
- -a或--append 附加到既有文件的后面,而非覆蓋它.
- -i或--ignore-interrupts 忽略中斷信號(hào)捂襟。
- --help 在線幫助咬腕。
- --version 顯示版本信息。
實(shí)例
使用指令"tee"將用戶輸入的數(shù)據(jù)同時(shí)保存到文件"file1"和"file2"中葬荷,輸入如下命令:
$ tee file1 file2 #在兩個(gè)文件中復(fù)制內(nèi)容
以上命令執(zhí)行后涨共,將提示用戶輸入需要保存到文件的數(shù)據(jù),如下所示:
My Linux #提示用戶輸入數(shù)據(jù)
My Linux #輸出數(shù)據(jù)宠漩,進(jìn)行輸出反饋
此時(shí)举反,可以分別打開文件"file1"和"file2",查看其內(nèi)容是否均是"My Linux"即可判斷指令"tee"是否執(zhí)行成功扒吁。
Linux 命令大全5.退出狀態(tài)碼
(status code,sc)火鼻,Linux提供了一個(gè)專門的變量 ? 變量魁索。它的值會(huì)變成由shell所執(zhí)行的最后一條命令
的退出狀態(tài)碼。
$ date
Sat Jan 15 10:01:30 EDT 2014
$ echo $?
0
按照慣例盼铁,一個(gè)成功結(jié)束的命令的退出狀態(tài)碼是 0 粗蔚。如果一個(gè)命令結(jié)束時(shí)有錯(cuò)誤,退出狀態(tài)碼就是一個(gè)正數(shù)值饶火。
$ asdfg
-bash: asdfg: command not found
$ echo $?
127
無(wú)效命令會(huì)返回一個(gè)退出狀態(tài)碼 127 支鸡。Linux錯(cuò)誤退出狀態(tài)碼沒(méi)有什么標(biāo)準(zhǔn)可循冬念,但有一些可
用的參考,如表11-2所示牧挣。
退出狀態(tài)碼 126 表明用戶沒(méi)有執(zhí)行命令的正確權(quán)限知押。
$ ./myprog.c
-bash: ./myprog.c: Permission denied
$ echo $?
126
另一個(gè)會(huì)碰到的常見錯(cuò)誤是給某個(gè)命令提供了無(wú)效參數(shù)草姻。
$ date %t
date: invalid date '%t'
$ echo $?
1
這會(huì)產(chǎn)生一般性的退出狀態(tài)碼 1 饶碘,表明在命令中發(fā)生了未知錯(cuò)誤些举。
6. find
find path -option [ -print ] [ -exec -ok command ] {} ;
find命令的參數(shù);
pathname: find命令所查找的目錄路徑寺晌。例如用.來(lái)表示當(dāng)前目錄世吨,用/來(lái)表示系統(tǒng)根目錄。
-print: find命令將匹配的文件輸出到標(biāo)準(zhǔn)輸出呻征。
-exec: find命令對(duì)匹配的文件執(zhí)行該參數(shù)所給出的shell命令耘婚。相應(yīng)命令的形式為'command' { } ;,注意{ }和\陆赋;之間的空格沐祷。
-ok: 和-exec的作用相同,只不過(guò)以一種更為安全的模式來(lái)執(zhí)行該參數(shù)所給出的shell命令攒岛,在執(zhí)行每一個(gè)命令之前赖临,都會(huì)給出提示,讓用戶來(lái)確定是否執(zhí)行灾锯。
#-print 將查找到的文件輸出到標(biāo)準(zhǔn)輸出
#-exec command {} ; —–將查到的文件執(zhí)行command操作,{} 和 ;之間有空格
#-ok 和-exec相同兢榨,只不過(guò)在操作前要詢用戶
例:find . -name .svn | xargs rm -rf
-name filename #查找名為filename的文件
-perm #按執(zhí)行權(quán)限來(lái)查找
-user username #按文件屬主來(lái)查找
-group groupname #按組來(lái)查找
-mtime -n +n #按文件更改時(shí)間來(lái)查找文件,-n指n天以內(nèi)顺饮,+n指n天以前
-atime -n +n #按文件訪問(wèn)時(shí)間來(lái)查GIN: 0px">
-ctime -n +n #按文件創(chuàng)建時(shí)間來(lái)查找文件吵聪,-n指n天以內(nèi),+n指n天以前
數(shù)據(jù)同步寫入磁盤: sync
7. 遞歸復(fù)制
遞歸復(fù)制:
cp -r sourcefolder targetfolder
8. &&
一行內(nèi)運(yùn)行多個(gè)指令兼雄,指令之間用&&
分隔開
9. 復(fù)制粘貼
復(fù)制:ctrl + shfit + c
粘貼:ctrl + shfit + v
10. 滾動(dòng)終端
一次滾動(dòng)一行:ctrl + Pg Up/Pg Dn
一次滾動(dòng)一頁(yè):shfit + Pg Up/Pg Dn
滾動(dòng)到頂部/底部:ctrl + shfit + Pg Up/Pg Dn
11. Linux文件系統(tǒng)
12. 刪除文件夾:
# rm不能直接刪除文件夾吟逝,使用-r參數(shù)即可,-r表示遞歸刪除
rm -r targetfolder
若想要指定刪除文件君旦,就不能使用遞歸刪除了
#刪除目錄下所有的R腳本
rm targetfolder/*.R
#刪除指定文件夾
rmdir targetfolder/test*
強(qiáng)制刪除目錄下所有文件和文件夾:rm -rf
rmdir命令只能刪除空目錄,因此需要先刪除目錄下的所有文件及目錄嘲碱,使用
rmdir targetfolder/*`
再使用rmdir targetfolder
就行了
13. 閱讀文件
1. cat
讀取文件所有內(nèi)容
-n:顯示行號(hào)
-b:給有文本存在的行加行號(hào)
-T:不顯示制表符
不用手動(dòng)退出
2. more
cat的缺點(diǎn)是如果文件內(nèi)容比較多金砍,信息會(huì)一閃而過(guò)
more會(huì)首先顯示一頁(yè),然后用戶可以通過(guò)空格鍵和回車鍵分別閱讀下一頁(yè)和下一行麦锯,q退出
3.head
顯示前n行數(shù)據(jù)恕稠,n默認(rèn)為10
$ head -n file_name
4.tail
顯示后n行數(shù)據(jù),n默認(rèn)為10
$ tail -n file_name
14.排序數(shù)據(jù)
sort:按字符排序
sort -n:按數(shù)字大小排序
搜索數(shù)據(jù)
grep
-v:反向搜索扶欣,輸出不匹配模式的行
-n:顯示匹配行所在的行號(hào)
-c:統(tǒng)計(jì)匹配行的個(gè)數(shù)
-e:支持多個(gè)匹配模式
-
grep -e t -e f file
two
three
four
five
15. 創(chuàng)建環(huán)境變量
#創(chuàng)建值為env_value的環(huán)境變量env_name
$ echo $env_name
$ env_name=env_value
#$環(huán)境變量名即可引用環(huán)境變量
$ echo $env_name
env_value
#如果變量值含有空格鹅巍,則賦值的時(shí)候要在值的前后加引號(hào)
注意 所有的系統(tǒng)環(huán)境變量名均為大寫千扶,這是慣例。自己創(chuàng)建的應(yīng)用小寫骆捧,以免與系統(tǒng)環(huán)境變量混淆
? 賦值等號(hào)的前后沒(méi)有空格澎羞,shell編程慎用空格,因?yàn)榭偸侨菀装芽崭窈蟮膬?nèi)容當(dāng)做前面命令的參數(shù)或者另外的命令而產(chǎn)生報(bào)錯(cuò)敛苇。
要想把創(chuàng)建的局部變量保存到全局變量需要把局部變量導(dǎo)入:
export env_name
修改子進(jìn)程的全局變量并不會(huì)影響到父shell中的該變量的值妆绞,即使在子shell中使用export
也無(wú)濟(jì)于事。
16. 刪除環(huán)境變量
unset env_name
17. 添加PATH環(huán)境變量
環(huán)境變量PATH:PATH是shell查找命令的目錄列表枫攀,由冒號(hào)分隔命令一般存放于bin目錄下括饶。
內(nèi)建命令:
- 內(nèi)建于bash shell,不需要外部程序文件來(lái)運(yùn)行来涨,如cd命令图焰。因?yàn)橐驗(yàn)榧炔恍枰ㄟ^(guò)衍生出子進(jìn)程來(lái)執(zhí)行,也不需要打開程序文件蹦掐,內(nèi)建命令的執(zhí)行速度要更快技羔,效率也更高。
- 要注意笤闯,有些命令有多種實(shí)現(xiàn)堕阔。例如 echo 和 pwd 既有內(nèi)建命令也有外部命令。兩種實(shí)現(xiàn)略有不同颗味。要查看命令的不同實(shí)現(xiàn)超陆,使用 type 命令的 -a 選項(xiàng)。
外部命令:
- 存在于bas shell之外的程序
當(dāng)使用某個(gè)命令的時(shí)候浦马,PATH下必須有該命令的路徑时呀,若使用某個(gè)分析軟件,必須將PATH制定到軟件的bin目錄下晶默,所以要添加PATH環(huán)境變量
1 臨時(shí)添加:命令行
#添加系統(tǒng)環(huán)境變量
$ PATH=$PATH:軟件路徑1/bin
$ PATH=$PATH:軟件路徑2/bin
#保存系統(tǒng)環(huán)境變量
$ export PATH
2 永久添加:修改.bashrc文件
#打開.bashrc谨娜;若當(dāng)前目錄不是家目錄要回到家目錄,或者vi ~/.bashrc
$ vi .bashrc
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=
# User specific aliases and functions
PATH=$PATH:...
#在系統(tǒng)默認(rèn)添加環(huán)境變量的那一行下繼續(xù)添加系統(tǒng)環(huán)境變量
#有的軟件命令好像也不一定非在bin目錄下磺陡,要視情況而定
PATH=$PATH:軟件路徑1/bin
PATH=$PATH:軟件路徑2/bin
#不需要再輸入export PATH趴梢,因?yàn)闀?huì)發(fā)現(xiàn)下面已經(jīng)存在了
#寫完后按Esc,輸入:wq保存并退出
:wq
#激活文件修改币他,不激活的話要重新登錄才發(fā)揮作用
$ source .bashrc
#之后就可以使用你所添加的軟件的命令啦坞靶,會(huì)發(fā)現(xiàn)Tab可以自動(dòng)補(bǔ)全命令了,說(shuō)明添加成功~~~
18. 永久修改或添加命令別稱
#打開.bashrc蝴悉;若當(dāng)前目錄不是家目錄要回到家目錄彰阴,或者vi ~/.bashrc
$ vi .bashrc
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=
# User specific aliases and functions
PATH=$PATH:...
#在export PATH下面輸入你要定義的命令別稱
#因?yàn)槲医?jīng)常用到Rscipt命令,所以我將之替換為r
alias r='Rscript'
#導(dǎo)入命令別稱
export r
#保存并退出
#直接輸入你所定義的命令別稱拍冠,看是否顯示幫助文檔
$ r
Usage: /path/to/Rscript [--options] [-e expr [-e expr2 ...] | file] [args]
--options accepted are
--help Print usage and exit
--version Print version and exit
--verbose Print information on progress
--default-packages=list
Where 'list' is a comma-separated set
of package names, or 'NULL'
or options to R, in addition to --slave --no-restore, such as
--save Do save workspace at the end of the session
--no-environ Don't read the site and user environment files
--no-site-file Don't read the site-wide Rprofile
--no-init-file Don't read the user R profile
--restore Do restore previously saved objects at startup
--vanilla Combine --no-save, --no-restore, --no-site-file
--no-init-file and --no-environ
'file' may contain spaces but not shell metacharacters
Expressions (one or more '-e <expr>') may be used *instead* of 'file'
See also ?Rscript from within R
#Looks nice!~~~
19 定義函數(shù)
在.bashrc.文件中定義函數(shù)尿这,就可以永久使用這個(gè)函數(shù)了簇抵。
# 定義一個(gè)相當(dāng)于回收站的函數(shù)re,re就是recycle的意思
function re {
mv $1 ~/.recycle_bin
}
# 定義一個(gè)能列出當(dāng)前目錄下的文件和文件夾的個(gè)數(shù)的函數(shù)la
function la {
printf total---\>\>$((ll | sed '1d') | wc -l)\\t
printf files---\>\>$((ll | sed '1d') | grep '^-' | wc -l)\\t
printf folders---\>\>$((ll | sed '1d') | grep '^d' | wc -l)\\n
ll --color=always | grep --colour=never '^-'
ll --color=always | grep --colour=never '^d'
}
使用示例:
[wangjiahao@submit3 ~]$ la
total--->>10 files--->>1 folders--->>9
-rw-r--r--+ 1 wangjiahao bioinformatics 145 Nov 3 21:53 test1
drwxr-xr-x+ 1 wangjiahao bioinformatics 4096 Oct 29 09:14 code
drwxr-xr-x+ 1 wangjiahao bioinformatics 4096 Oct 25 20:28 EpigeneticDrivers
drwxr-xr-x+ 1 wangjiahao bioinformatics 4096 Oct 25 20:13 iGenome
drwxr-xr-x+ 1 wangjiahao bioinformatics 4096 Nov 2 23:09 LungDx
drwxr-xr-x+ 1 wangjiahao bioinformatics 4096 Oct 29 09:38 Raw_data
drwxr-xr-x+ 1 wangjiahao bioinformatics 4096 Nov 2 22:36 rDNA_Meth
drwxr-xr-x+ 1 wangjiahao bioinformatics 4096 Oct 26 18:06 software
drwxr-xr-x+ 1 wangjiahao bioinformatics 4096 Oct 31 15:35 sstudy
drwxr-xr-x+ 1 wangjiahao bioinformatics 4096 Oct 22 18:14 WPS
[wangjiahao@submit3 ~]$ cd .recycle_bin/
[wangjiahao@submit3 .recycle_bin]$ ls
[wangjiahao@submit3 .recycle_bin]$ re ~/test1
[wangjiahao@submit3 .recycle_bin]$ ls
test1
# 可以看到文件test1就被移到回收站了射众,這樣就可以代替rm命令的不可恢復(fù)的刪除功能
# 可以利用cron時(shí)間表來(lái)定期運(yùn)行回收站清理腳本碟摆,不過(guò)服務(wù)器好像不清理也不會(huì)有啥事,嘎嘎~
類似這樣可以自定義許多有意思的函數(shù)~