获取可用命令行参数
前面使用的命令,有几个用到了参数如ls -l
, head -n 6
等,需要注意的是命令跟参数之间要有空格。
终端运行man ls
可以查看ls
所有可用的参数,上下箭头翻页,按q
退出查看。(man: manual,手册)
ct@ehbio:~/data$ man ls
NAME
ls -list directory contents
SYNOPSIS
ls[OPTION]... [FILE]...
DESCRIPTION
ListinformationabouttheFILEs(the current directory bydefault).
Sortentries alphabetically if none of -cftuvSUX nor --sort is specified.
Mandatory arguments to long options aremandatory for short options too.
-a,--all
donot ignore entries starting with .
-A,--almost-all
donot list implied . and ..
--author
with -l, print the author of each file
-b,--escape
print C-style escapes for nongraphic characters
....
文件上下翻转和左右翻转
两个有意思的命令,tac
:文件翻转,第一行变为最后一行,第二行变为倒数第二行;rev
每列反转,第一个字符变为最后一个字符,第二个字符变为倒数第二个字符。
ct@ehbio:~/data$ cat <
> first
> second
> third
> END
third
second
first
ct@ehbio:~/data$ cat <
> abcde
> xyz
> END
edcba
zyx
其它新建文件的方式
nano
类似于Windows下记事本的功能,nano filename
就可以新建一个文件,并在里面写内容;ctrl+x
退出,根据提示按Y
保存。vim
功能更强大的文本编辑器。vim
filename
就可以新建一个文件,敲击键盘字母i
,进入写作模式。写完后,敲击键盘Esc
,退出写作模式,然后输入:w
(会显示在屏幕左下角),回车保存。vim
的常用方法,以后会单写一个,这里点到为止。
Linux下文件操作
常用的文件操作有移动文件到另一个文件夹、复制文件到另一个文件夹、文件重命名等。cp
(copy):拷贝文件或文件夹(cp -r
拷贝文件夹时的参数,递归拷贝)
#列出当前目录下有的文件和文件夹
ct@ehbio:~$ ls
data
#新建一个文件夹
ct@ehbio:~$ mkdir ehbio_project
#列出当前目录下有的文件和文件夹,及其子文件夹的内容
# data目录下有一个文件,ehbio_project目录下无文件
ct@ehbio:~$ ls *
data:
test.fa
ehbio_project:
#拷贝data目录下的文件test.fa到ehbio_project目录下
ct@ehbio:~$ cp data/test.fa ehbio_project/
#列出当前目录下有的文件和文件夹,及其子文件夹的内容
# data目录下有一个文件,ehbio_project目录下无文件
ct@ehbio:~$ ls *
data:
test.fa
ehbio_project:
test.fa
mv
(move):移动文件或文件夹
#重命名data目录下的文件test.fa为first.fa
# mv除了可以移动文件,也可以做单个文件的重命名
ct@ehbio:~$ mv data/test.fa data/first.fa
#列出当前目录下有的文件和文件夹,及其子文件夹的内容
ct@ehbio:~$ ls *
data:
first.fa
ehbio_project:
test.fa
rename
:文件重命名(常用于批量重命名,不同的系统可能用法略有不同,使用前先man rename
查看使用方法)
#进入另一个目录
ct@ehbio:~$ cd ehbio_project/
ct@ehbio:~/ehbio_project$ ls
test.fa
#给文件做一份拷贝
ct@ehbio:~/ehbio_project$ cp test.fasecond.fa
ct@ehbio:~/ehbio_project$ ls
second.fatest.fa
#给文件多拷贝几次,无聊的操作,就是为了给rename提供发挥作用的机会
ct@ehbio:~/ehbio_project$ cp test.fatest2.fa
ct@ehbio:~/ehbio_project$ cp test.fatest3.fa
ct@ehbio:~/ehbio_project$ cp test.fatest4.fa
# cp后面需要2个参数,被拷贝的文件和要被拷贝到的目录或文件
#出现下面的错误,表示缺少目标路径或文件
ct@ehbio:~/ehbio_project$ cp ehbio.fa
cp:在"ehbio.fa"后缺少了要操作的目标文件
Try 'cp --help' for more information.
ct@ehbio:~/ehbio_project$ ls
second.fatest2.fatest3.fatest4.fatest.fa
#用rename进行文件批量重命名
ct@ehbio:~/ehbio_project$ rename 'test''ehbio' test*.fa
ct@ehbio:~/ehbio_project$ ls
ehbio2.faehbio3.faehbio4.faehbio.fasecond.fa
ln
(link):给文件建立快捷方式(ln -s source_file target
创建软连接)。
在建立软连接时,原文件要使用全路径。全路径指以/
开头的路径。
建立软连接,是为了在不增加硬盘存储的情况下,简化文件访问方式的一个办法。把其它文件夹下的文件链接到当前目录,使用时只需要写文件的名字就可以了,不需要再写长串的目录了。../
:表示上一层目录;../../
:表示上面两层目录pwd
(print current/working directory):输出当前所在的目录\``为键盘
Esc下第一个按键(与家目录
~`符号同一个键),写在反引号内的命令会被运行,运行结果会放置在反引号所在的位置
#建立软连接,把当前目录下的ehbio2.fa,链接到上一层目录的data下面
#这是一个无效的软连接,
ct@ehbio:~/ehbio_project$ ln -s ehbio2.fa../data
#在使用ls查看时,无效的软连接的文件名下面是黑色的背景。
ct@ehbio:~/ehbio_project$ ls -l ../data/
总用量4
lrwxrwxrwx 1 ct ct9 6月9 17:55 ehbio2.fa -> ehbio2.fa
-rw-rw-r-- 1 ct ct 284 6月8 14:48 first.fa
#输出当前所在的目录
ct@ehbio:~/ehbio_project$ pwd
/home/ct/ehbio_project
#建立软连接时,原始文件一定使用全路径。全路径指以/开头的路径。
ct@ehbio:~/ehbio_project$ ln -s/home/ct/ehbio_project/ehbio2.fa ../data
ln:无法创建符号链接"
../data/ehbio2.fa" :文件已存在
#上面的错误信息时,已经存在这么一个链接了(虽然是无效的),但再建新的链接时还会提示
#使用`-f` (force)强制覆盖已有的链接
ct@ehbio:~/ehbio_project$ ln -fs`pwd`/ehbio2.fa ../data
#再次查看时,就正常了。文件名下面没有了背景色,并且有个右箭头指向原始文件
# `lrwxrwxrwx`中的`l`表示软连接。
ct@ehbio:~/ehbio_project$ ls -l ../data/
总用量4
lrwxrwxrwx 1 ct ct32 6月9 17:56 ehbio2.fa ->/home/ct/ehbio_project/ehbio2.fa
-rw-rw-r-- 1 ct ct 284 6月8 14:48 first.fa
#通常为了简化写法,使用`pwd`代替全路径
# `为键盘Esc下面的按键,写在反引号内的命令会被运行,运行结果会放置在反引号所在的位置
ct@ehbio:~/ehbio_project$ ln -s`pwd`/ehbio2.fa ../data
ln:无法创建符号链接"
../data/ehbio2.fa" :文件已存在
ct@ehbio:~/ehbio_project$ ln -fs`pwd`/ehbio2.fa ../data
ct@ehbio:~/ehbio_project$ ls -l ../data/
总用量4
lrwxrwxrwx 1 ct ct32 6月9 17:56 ehbio2.fa ->/home/ct/ehbio_project/ehbio2.fa
-rw-rw-r-- 1 ct ct 284 6月8 14:48 first.fa
网友评论