基本命令
pwd(print work directory)命令是查询所在目录的命令。
clear清屏命令。或者使用快捷键command+r。
ls (list files)列出来当前目录下所有的文件。
-
-a 罗列出所有的文件,包括隐藏文件。隐藏文件是以.开头的。隐藏文件的作用,是一些配置文件等等,平常不用的,怕在操作中误删除了。
-
-l 以长格式来显示文件的详细信息。
-
-i 加入ID号
-
-inum 通过ID来搜索
-
-h 显示大小单位k
-
-t 显示时按修改时间(最近优先)而不是按名字排序。若文件修改时间相同,则按字典顺序。
-
ls -a -l 可以联合使用的,注意中间有一个空格。也可以 ls -la
-
ls也可以在后面添加目录,直接扩列所添加目录中的文件等。
linux 文件颜色的含义
- 蓝色文件——目录
- 白色文件——一般性文件,如文本文件,配置文件等等
- 绿色文件——可执行文件
- 红色文件——压缩文件
cd(change directory)打开目录
- cd … 切换到上一层目录 例如cd …/… 回到上一层目录的上层目录
- cd / 切换到根目录
- cd 直接切换到宿主目录
- cd - 所在目录和上一个目录之间来回切换
- cd 后面输入目录名字时,如果唯一,按一次tab就可以自动补全。如果有好几个,按一次Tab没有任何反应。需要按两次Tab,会罗列出所有的目录,然后自己再选择。
单引号
- 文件名字中间有个空格,用单引号括起来,告诉我们这个是一个文件,以免误认。
方向键
-
上:取代上一个命令
-
下:取代下一个命令
通配符
-
*代表0个,或者多个字符。罗列特定格式的文件
罗列TXT文件,即 ls *.txt
罗列xls文件,即ls *.xls.
罗列以1开头的文件,即ls 1*
罗列以1开头的txt文件,即ls 1*.txt
-
?代表一个字符
罗列只有两个字符名称的txt.即ls ??.txt
注意区别:ls 1*4.txt ls 1?4.txt
-
[ ]代表其中的一个字符
如[123],1或者2或者3
[1234][1234]
.txt(一定要理解是啥意思)[1-4].txt 连续的数字
[ardf32]de.txt
相对路径和绝对路径
- 相对路径:根据现在所处的路径,来计算要找的文件。
- 绝对路径:以/开头,全部的路径.无论现在处于那个路径下,都可以找到目标文件。
touch 创建文件
- 可以一次创建多问文件,空格隔开即可。 touch a b c d
mkdir 创建目录
- -p 创建多级目录:mkdir -p file/file1/file2
$ mkdir file/file1/file2
mkdir: cannot create directory ‘file/file1/file2’: No such file or directory
(base) jjx 16:50:15 ~/wujian/presentation
$ mkdir -p file/file1/file2
(base) jjx 16:50:25 ~/wujian/presentation
rm 移除文件或者目录
- -d 删除空目录
- -r 删除有内容的目录
- -rf 强制删除含有内容的目录
mv (move)移动文件夹/更改名字
-
mv test.txt aa移动test.txt到aa目录
mv后面使用相对路径和绝对路径都可以。
也可以移动一个目录到另外一个目录
-
移动的时候可以顺便改个名字。例如。mv test.txt aa/1.txt
-
可以通过移动命令更改名字 move file1 file2 将文件或者文件夹file1改为fil2
cp (copy) 拷贝文件或者目录
- -r 拷贝目录:cp -r bb/kk . 复制bb文件夹下的kk文件夹到当前目录下.。
- 当前目录"test/"下的所有文件复制到新目录"newtest"下,输入如下命令:cp -r test/ newtest
control + c 终止命令的执行
find专业搜索命令,查找文件或者目录等
- -name /-iname可以忽略大小写
find /home/jjx -name "1.txt"
find /home/jjx -name "1*.txt" # *为通配符,代表一个或者多个。
- -size
- -mmin
- -mtime (modify time 修改时间,这个是以天为单位,-n n天以为的;+n n天以前的)
find /home/jjx -name "file*" -type d -mtime -1 查找目录
find /home/jjx -name "file*" -type d -mtime -1 |xargs rm -rf {} \; #|管道传输过来,{}代表前面搜索到的内容。\; 纯属格式要求。
- -type
find /home/jjx -name "file*" -type f 查找文件
find /home/jjx -name "file*" -type d 查找目录
- -a 两个条件都需要满足
- -o 只满足其中一个条件
find bin/ -name run.sh 查找 bin 目录下名字为 run.sh 的文件。
find ! -name tmp 该命令查找文件名不是 tmp 的所有文件。注意!
xargs 传参,给其他命令传递参数的一个过滤器
xargs 命令 是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。它擅长将标准输入数据转换成命令行参数,xargs 能够处理管道或者 stdin 并将其转换成特定命令的命令参数。xargs 也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。xargs 的默认命令是 echo,空格是默认定界符。这意味着通过管道传递给 xargs 的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。xargs 是构建单行命令的重要组件之一。
多行输入,单行输出
cat test.txt | xargs
- -n 多行输出
cat test.txt | xargs -n3
- -d 可以定义一个定界符
$ echo "nameXnameXnameXnameXnameXnameXnameXnameXname" | xargs -dX
name name name name name name name name name
$ echo "nameXnameXnameXnameXnameXnameXnameXnameXname" | xargs -dX -n3
name name name
name name name
name name name
-exec命令(目前只看懂一种,作为find 的一个选项)
(1)在当前目录下(包含子目录),查找所有txt文件并找出含有字符串"bin"的行
find ./ -name "*.txt" -exec grep "bin" {} \;
(2)在当前目录下(包含子目录),删除所有txt文件
find ./ -name "*.txt" -exec rm {} \;
locate搜索名字中包含有 的文件,或者目录
-
更新不及时,强制更新可以使用updatedb,这时候有可能会报错,因为需要超管权限。这时候使用sudo命令
即sudo updatedb
cat显示文本内容,适用于内容少的时候;合并文件。
- -n显示行号,不去除空行
- -b显示行号,去除空行
cat file1 file2 > file3 ##1和2合并成3
more显示文本内容,适用于内容多的时候,分页显示
-
空格键 向下滚动一屏
-
q 退出more
head查看前10行
- -n 显示的行数,例如查看前21行,即:
head -n 21 big
head -21 big
- -c 显示的字节数,例如查看前3个字节(一个汉字是两个字节,一个中文标点是3个字节),即:
head -c 3 big
tail查看最后10行
- 用法和参数同head一样
nl 用来计算文件中行号。默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能。
-
-b :指定行号指定的方式,主要有两种:
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
-b t :如果有空行,空的那一行不要列出行号(默认值);
-
-n :列出行号表示的方法,主要有三种:
-n ln :行号在萤幕的最左方显示;
-n rn :行号在自己栏位的最右方显示,且不加 0 ;
-n rz :行号在自己栏位的最右方显示,且加 0 ;
-
-w :行号栏位的占用的位数。
grep 抓取文件中特定的内容。只要包含的行,都会被打印出来。
-
-n 显示行号,这个里面是含有空行的。
-
-v 排除以后的。
grep nihao big #在big文件中查找含有nihao的行,并打印出来 grep -n nihao big #在big文件中查找含有nihao的行,并打印出来含有行号的行。 grep -v nihao big #在big文件中查找不含有nihao的行。
-
^X 以X开头的行
grep ^n big #在big文件中查找以n开头的行
-
X$以X结尾的行
grep t$ big #在big文件中查找以s结尾的行
-
-i不区分大小写
grep -v ^'#' /etc/services
注意一下两种的区别
$ cat -b small | grep "\-a"
12 -a 显示出来隐藏的文件,罗列出所有的文件。隐藏文件是以.开头的。隐藏文件的作用,是一些配置文件等等,平常不用的,怕在操作中误删除了。
16 ls -a -l 可以联合使用的,注意中间有一个空格。
(base) jjx 08:19:50 ~/wujian/presentation
$ grep -n "\-a" small
20: -a 显示出来隐藏的文件,罗列出所有的文件。隐藏文件是以.开头的。隐藏文件的作用,是一些配置文件等等,平常不用的,怕在操作中误删除了。
28: ls -a -l 可以联合使用的,注意中间有一个空格。
echo回显,将输入信息写入到文件中
echo nihao > 1.txt #覆盖原来的文件内容
ll > 1.txt #把ll罗列出来的信息覆盖到1.txt
ll >> 1.txt #把ll罗列出来的信息追加到1.txt
|管道 经常和more、grep等命令一致使用
ll | grep 1.txt #抓取罗列信息中,含有1.txt的行
ln 创建连接到当前目录下
-
ln aa/abc abc_softlink
-
后面用的时候,可以直接查看连接内容,例如 cat softlink
sed 可依照脚本的指令来处理、编辑文本文件;主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
参数
- -e 以选项中指定的script来处理输入的文本文件
- -n 仅显示script处理后的结果
- -i 写入
动作
- a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)
- i : 新增, ai的后面可以接字串,而这些字串会在新的一行出现(目前的上一行)
sed [-hnV][-e<script>][-f<script文件>][文本文件]
sed -e 4a\newline log2012.log #在第4行的下一行,第5行,插入newline,并print,原文件没有变
sed 4a\newline log2012.log #在第4行的下一行,第5行,插入newline,并print,原文件没有变
sed '4a newline' log2012.log #在第4行的下一行,第5行,插入newline,并print,原文件没有变
sed '4i newline' log2012.log #在第4行的上一行,第4行,插入newline,并print,原文件没有变
sed -i 4a\newline log2012.log #在第4行的下一行,第5行,插入newline.写入原文件中!
sed -n '5,10p' big #只查看文件的第5行到10行(若没有这个-n回重复显示)
sed -n '5,$p' big #查看文件的第5行到最后
sed -n '/nihao/p' big #只查看文件中含有nihao字符串的行
sed -e 's/nihao/hello/g' big 替换并打印结果
sed -i 's/nihao/dajiahao/g' big 替换并写入
- d 删除,多行时,用;隔开。
sed '1,3d' 1.txt #删除1-3行
sed '1,3d;6,$d' 1.txt #删除1-3,和6-最后。只保留4,5行
- p 重复
sed '1,$p' log2012.log #文件中的每一行都重复显示
awk 是一种处理文本文件的语言,是一个强大的文本分析工具。
awk '{print $1,$2}' log.txt 打印出第一列和第二列
sort 命令,对文档的内容加以排序ASCII码
sort testfile #顺序排列
sort -r testfile #逆序排列
uniq 检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用
- -c count
- -u unique
- -d repeated
uniq testfile #删除连续重复行,只留一行
uniq -c testfile #统计显示出现重复的次数,放在第一列
uniq -u testfile #只显示不重复行
uniq -d testfile #只显示重复行
wc 计算字数
-
-c字节数
-
-l行数
-
-w字数
wc -wlc testfile
split命令
- -<行数> : 指定每多少行切成一个小文件,在默认情况下将按照每1000行切割成一个小文件
- -b<字节> : 指定每多少字节/M/G切成一个小文件
split -11 testfile spli #spli为前缀,spliaa,spliab,spliac
split -b 100 testfile by #默认的是字节
cut 截取文件中每一行的某段文字 -c m-n
cut -c 1-4 testfile
tar 打包,就是原来文件加到一起.-zvf(czvf.xzvf)
List: tar -tf
Extract: tar -xf
Create: tar -cf [filenames…]
gzip 对文件进行压缩,原来的就没有了.gz
- -d 将压缩文件解压
- -l 对每个压缩文件,显示压缩文件的大小、未压缩时大小、压缩比及文件压缩前名字
- -num 可以设置压缩速度
gzip file1 file2 …分别压缩这几个
gzip -d file1.gz 解开压缩
zip 是个使用广泛的压缩程序,压缩后的文件后缀名为 .zip
zip OPTIONS ARCHIVE_NAME FILES
unzip为.zip压缩文件的解压缩程序
scp (secure copy)
-
从服务器复制文件到本地
scp wangyu@192.168.0.101:绝对路径 本地路径
-
从服务器复制文件夹到本地
scp -r wangyu@192.168.0.101:绝对路径 本地路径
-
从本地复制文件到服务器
scp 绝对路径 baopf@192.168.0.184:绝对路径
-
从本地复制文件夹到服务器
scp -r 绝对路径 baopf@192.168.0.184:绝对路径
awk
sed
vim /vi
系统管理
useradd 用来添加用户
- useradd jjx。如果权限不够,加sudo.
- passwd 设置新密码。后面不接其他用户名的话,更改当下密码。
su 切换用户
-
su root
-
su root切换到root用户
-
exit或control D 退出用户
-
su user1 切换到user1用户
-
su – user1 直接切换到user1的home目录下
-
userdel删除用户 userdel user1
-
userdel -r user1 -r同时删除他自己的家目录
-
userdel -f user1 -f强制删除用户,即使在登陆状态
-
groupadd 添加用户组
-
groupmod groupnew1 group1 给用户组改名字
-
groupdel 删除用户组
shell (还没有弄明白)
chmod 用来变更文件或目录的权限
u
符号代表当前用户。g
符号代表和当前用户在同一个组的用户,以下简称组用户。o
符号代表其他用户。a
符号代表所有用户。r
符号代表读权限以及八进制数4
。w
符号代表写权限以及八进制数2
。x
符号代表执行权限以及八进制数1
。+
符号代表添加目标用户相应的权限。-
符号代表删除目标用户相应的权限。=
符号代表添加目标用户相应的权限,删除未提到的权限。
# 添加组用户的写权限。
chmod g+w ./test.log
# 删除其他用户的所有权限。
chmod o= ./test.log
# 使得所有用户都没有写权限。
chmod a-w ./test.log
# 当前用户具有所有权限,组用户有读写权限,其他用户只有读权限。
chmod u=rwx, g=rw, o=r ./test.log
# 等价的八进制数表示:
chmod 754 ./test.log
chown 修改拥有者
top能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器
- q离开此命令
ps 显示用户的运行程序或系统程序
实际操作的一些命令
查看fa文件中有多少个样品?
awk 'BEGIN{FS="_"}{print $1}' valid.BIO-jiaojinzhen.jiaojinzhen.341F_806R.format.fasta|grep \>|uniq > total_number_samples
nl total_number_sample
sed -i 's/^>//' total_number_samples #去掉“行首”的这个>
sed -i 's/^>//' total_number_samples #去掉“行首”的这个>
sed -i 's/^@//' file #去掉“行首” 带“@”的首字母@
perl /home/jjx/wujian/meta/diver_pipe.pl -f /data/jjx/16s/Data/valid.BIO-jiaojinzhen.jiaojinzhen.341F_806R.format.fasta -spe 16s_bacteria -o /home/jjx/wujian/16s_113/Result -venn G-V -order /home/jjx/wujian/16s_113/Result/sample.order -map /home/jjx/wujian/16s_113/Result/group.txt -comp S-T -data T:/home/jjx/wujian/16s_113/Data/output/ -infor /home/jjx/wujian/16s_113/Result/information.txt