1.qsub命令
-
参数
-e 路径名
定义要用于批处理作业的标准错误流的路径。-
-N file_name
定义批处理作业的名称。
qsub-n选项应接受名称选项参数的值,该参数是portabl字符集中最多15个字母数字字符的字符串
-o path_name
定义批处理作业的标准输出的路径。-
-V
指定将流程的所有环境变量导出到批处理作业的上下文中。
-
-l (小写L)
指定作业所需要的资源,设定对可消耗资源的限制。如果不设置,则无限制。
h_cpu = 720:00:00
2. java命令
描述
- Java命令启动Java应用程序。它通过启动Java运行时环境(JRE)、加载指定的类和调用该类的man()方法来实现这一点。该方法必须声明为公共的和静态的,它不能返回任何值,并且它必须接受字符串数组作为参数
main(String)[ARGs]
用法
java [options] -jar filename [args]
java [options] classname [args]
参数
options
选项;由空格所分开的命令行选项,也可以是简写classname
类型名;要被启动的程序的名字filename
文件名;将要使用的JAR文件的文件名,仅在-jar选项后使用-
args
参数;传递给main()方法的参数,用空格分隔
3. 命令替换
- shell脚本中最有用的特性之一就是可以从命令输出中提取信息,并将其赋给变量。把输出赋给变量之后,就可以随意在脚本中使用了。这个特性在处理脚本数据时尤为方便。
- 有两种方法可以将命令输出赋给变量:
- 反引号字符( ` )
- $()格式
testing=`date`
testing=$(date)
命令替换允许你将shell命令的输出赋给变量。尽管这看起来并不那么重要,但它却是脚本编程中的一个主要组成部分。要么用一对反引号把整个命令行命令围起来:
下面这个例子很常见,它在脚本中通过命令替换获得当前日期并用它来生成唯一文件名。
#! /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 命令的输出。这是提取日期信息来生成日志文件名常用的一种技术。+%y%m%d 格式告诉 date 命令将日期显示为两位数的年月日的组合。运行该脚本之后,应该能在目录中看到一个新文件。
-rw-r--r-- 1 user user 769 Jan 31 10:15 log.140131
目录中出现的日志文件采用 $today 变量的值作为文件名的一部分。日志文件的内容是/usr/bin目录内容的列表输出。如果脚本在明天运行,日志文件名会是log.140201,就这样为新的一天创建一个新文件。
4. tee
Linux 命令大全Linux tee命令用于读取标准输入的数据,并将其内容输出成文件。
tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。
语法
$ tee [-ai][--help][--version][文件...]
参数:
- -a或--append 附加到既有文件的后面,而非覆盖它.
- -i或--ignore-interrupts 忽略中断信号。
- --help 在线帮助。
- --version 显示版本信息。
实例
使用指令"tee"将用户输入的数据同时保存到文件"file1"和"file2"中,输入如下命令:
$ tee file1 file2 #在两个文件中复制内容
以上命令执行后,将提示用户输入需要保存到文件的数据,如下所示:
My Linux #提示用户输入数据
My Linux #输出数据,进行输出反馈
此时,可以分别打开文件"file1"和"file2",查看其内容是否均是"My Linux"即可判断指令"tee"是否执行成功。
Linux 命令大全5.退出状态码
(status code,sc),Linux提供了一个专门的变量 ? 变量。它的值会变成由shell所执行的最后一条命令
的退出状态码。
$ date
Sat Jan 15 10:01:30 EDT 2014
$ echo $?
0
按照惯例,一个成功结束的命令的退出状态码是 0 。如果一个命令结束时有错误,退出状态码就是一个正数值。
$ asdfg
-bash: asdfg: command not found
$ echo $?
127
无效命令会返回一个退出状态码 127 。Linux错误退出状态码没有什么标准可循,但有一些可
用的参考,如表11-2所示。
退出状态码 126 表明用户没有执行命令的正确权限。
$ ./myprog.c
-bash: ./myprog.c: Permission denied
$ echo $?
126
另一个会碰到的常见错误是给某个命令提供了无效参数。
$ date %t
date: invalid date '%t'
$ echo $?
1
这会产生一般性的退出状态码 1 ,表明在命令中发生了未知错误。
6. find
find path -option [ -print ] [ -exec -ok command ] {} ;
find命令的参数;
pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } ;,注意{ }和\;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
#-print 将查找到的文件输出到标准输出
#-exec command {} ; —–将查到的文件执行command操作,{} 和 ;之间有空格
#-ok 和-exec相同,只不过在操作前要询用户
例:find . -name .svn | xargs rm -rf
-name filename #查找名为filename的文件
-perm #按执行权限来查找
-user username #按文件属主来查找
-group groupname #按组来查找
-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime -n +n #按文件访问时间来查GIN: 0px">
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
数据同步写入磁盘: sync
7. 递归复制
递归复制:
cp -r sourcefolder targetfolder
8. &&
一行内运行多个指令,指令之间用&&
分隔开
9. 复制粘贴
复制:ctrl + shfit + c
粘贴:ctrl + shfit + v
10. 滚动终端
一次滚动一行:ctrl + Pg Up/Pg Dn
一次滚动一页:shfit + Pg Up/Pg Dn
滚动到顶部/底部:ctrl + shfit + Pg Up/Pg Dn
11. Linux文件系统
12. 删除文件夹:
# rm不能直接删除文件夹,使用-r参数即可,-r表示递归删除
rm -r targetfolder
若想要指定删除文件,就不能使用递归删除了
#删除目录下所有的R脚本
rm targetfolder/*.R
#删除指定文件夹
rmdir targetfolder/test*
强制删除目录下所有文件和文件夹:rm -rf
rmdir命令只能删除空目录,因此需要先删除目录下的所有文件及目录,使用
rmdir targetfolder/*`
再使用rmdir targetfolder
就行了
13. 阅读文件
1. cat
读取文件所有内容
-n:显示行号
-b:给有文本存在的行加行号
-T:不显示制表符
不用手动退出
2. more
cat的缺点是如果文件内容比较多,信息会一闪而过
more会首先显示一页,然后用户可以通过空格键和回车键分别阅读下一页和下一行,q退出
3.head
显示前n行数据,n默认为10
$ head -n file_name
4.tail
显示后n行数据,n默认为10
$ tail -n file_name
14.排序数据
sort:按字符排序
sort -n:按数字大小排序
搜索数据
grep
-v:反向搜索,输出不匹配模式的行
-n:显示匹配行所在的行号
-c:统计匹配行的个数
-e:支持多个匹配模式
-
grep -e t -e f file
two
three
four
five
15. 创建环境变量
#创建值为env_value的环境变量env_name
$ echo $env_name
$ env_name=env_value
#$环境变量名即可引用环境变量
$ echo $env_name
env_value
#如果变量值含有空格,则赋值的时候要在值的前后加引号
注意 所有的系统环境变量名均为大写,这是惯例。自己创建的应用小写,以免与系统环境变量混淆
赋值等号的前后没有空格,shell编程慎用空格,因为总是容易把空格后的内容当做前面命令的参数或者另外的命令而产生报错。
要想把创建的局部变量保存到全局变量需要把局部变量导入:
export env_name
修改子进程的全局变量并不会影响到父shell中的该变量的值,即使在子shell中使用export
也无济于事。
16. 删除环境变量
unset env_name
17. 添加PATH环境变量
环境变量PATH:PATH是shell查找命令的目录列表,由冒号分隔命令一般存放于bin目录下。
内建命令:
- 内建于bash shell,不需要外部程序文件来运行,如cd命令。因为因为既不需要通过衍生出子进程来执行,也不需要打开程序文件,内建命令的执行速度要更快,效率也更高。
- 要注意,有些命令有多种实现。例如 echo 和 pwd 既有内建命令也有外部命令。两种实现略有不同。要查看命令的不同实现,使用 type 命令的 -a 选项。
外部命令:
- 存在于bas shell之外的程序
当使用某个命令的时候,PATH下必须有该命令的路径,若使用某个分析软件,必须将PATH制定到软件的bin目录下,所以要添加PATH环境变量
1 临时添加:命令行
#添加系统环境变量
$ PATH=$PATH:软件路径1/bin
$ PATH=$PATH:软件路径2/bin
#保存系统环境变量
$ export PATH
2 永久添加:修改.bashrc文件
#打开.bashrc;若当前目录不是家目录要回到家目录,或者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:...
#在系统默认添加环境变量的那一行下继续添加系统环境变量
#有的软件命令好像也不一定非在bin目录下,要视情况而定
PATH=$PATH:软件路径1/bin
PATH=$PATH:软件路径2/bin
#不需要再输入export PATH,因为会发现下面已经存在了
#写完后按Esc,输入:wq保存并退出
:wq
#激活文件修改,不激活的话要重新登录才发挥作用
$ source .bashrc
#之后就可以使用你所添加的软件的命令啦,会发现Tab可以自动补全命令了,说明添加成功~~~
18. 永久修改或添加命令别称
#打开.bashrc;若当前目录不是家目录要回到家目录,或者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下面输入你要定义的命令别称
#因为我经常用到Rscipt命令,所以我将之替换为r
alias r='Rscript'
#导入命令别称
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 定义函数
在.bashrc.文件中定义函数,就可以永久使用这个函数了。
# 定义一个相当于回收站的函数re,re就是recycle的意思
function re {
mv $1 ~/.recycle_bin
}
# 定义一个能列出当前目录下的文件和文件夹的个数的函数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命令的不可恢复的删除功能
# 可以利用cron时间表来定期运行回收站清理脚本,不过服务器好像不清理也不会有啥事,嘎嘎~
类似这样可以自定义许多有意思的函数~