Linux常见符号和常见报错
在使用Linux中,刚开始觉得符号很难理解和难记忆,用心体会,发现符号起很大的作用,提高效率。
做为初学者,学习Linux黑白命令行,很枯燥,加上遇到报错,不知道怎么去解决,有时候心里会凉半截,但有尝试独立解决报错,有成就感,整个人感觉复活过来。
多敲代码,错与解决错,不花money。
Linux常见符号及其含义
主要常见符号、通配符、正则表达式
常见符号及其含义_生信技能树Nickier老师课件图把以上符号细讲:
#
注释符号:这个最常被使用在脚本当中,视为说明,在后的数据均不执行
\
:有转移符和续行符两种作用。(1)转义符:将【特殊字符或通配符】还原成 一般字符(在正则表达式里,有些符号不会被识别,需要加\
去转义);(2)续行符:在一句命令多行最后为续行符(这个续行的作用在以后讲到,一行命令写不完,不像R语言换行就可以,在Linux里,一句命令有很多行时,需要添加这个符号,\
后面不能再有其它符号,包括空格也不行。)
|
管道符(pipe):分隔两个或是多个命令之间的符号(可能正则表达式里用到,但是大部分用于管道符)。
.
..
分别表示当前目录和上一层目录,.
在正则表达式指匹配任意的单个字符(除换行符之外)。
~
用户的家目录(目前只用到这个作用,在awk里,~有其它作用,老师没讲是因为不常用)。
$
两个作用:使用变量前导符(后期会讲);正则表达式中的行末、最后。
!
逻辑运算意义上的【非】not的意思。
/
目录符号:路径分隔的符号(位置在中间或是最后,路径层级分隔符);根目录(位置在最前面);其它用法(在sed命令里,s ///
的规则,awk命令里//
去匹配关键词)。
>
>>
:分别表示重定向输出、追加(在cat命令里常用)。
<:重定向输入(有输入输出就有输入,输入平时很少用,不讲,感兴趣自行搜索)。
''
""
: 单引号,变量不解释;双引号,变量解释。 sed 和 awk 的 script 常用单引号(在特殊情况下会用到双引号)。
``
:反引号,中间的命令优先级高,先执行,作用 和 $() 一样(反引号在键盘上与波浪线是同一个按键)。
在Linux里有很多种类型的括号(一定是英文格式输入状态下,小括号()
,中括号[]
,花括号{}
),自行搜索在什么情况下使用什么样的括号。
常见报错
主要的报错有三种:
-
找不到对象、找不到文件、文件不存在:No such file or directory
-
没有权限 :Permission denied
-
命令不存在 :command not found
(1)找不到文件、文件不存在:No such file or directory(与R语言里找不到对象是一个意思)
原因1:路劲不按tab键补全,如果tab键补全不出来,说明不存在该目录下,在该目录下不能操作,没法补全有可能是路径错,字母或是字符打错了,所以一定多用tab键,可以避免很多报错。
字母打错的报错原因2:括号,引号不成对,符号,字母大小写的问题。
符号报错演示(2) 没有权限 :Permission denied
不在自己的家目录下操作。不是管理员,没有权限操作根目录的文件
没有权限的操作报错不是管理员,普通用户不能在根目录下或是别的用户下操作。
(3)命令不存在:command not found
比如pwd,打成pwk。
命令不存在的报错
之后会细讲什么时候存在能用,什么时候不能用
解决报错的方法:
(1)认真观察报错信息:Linux严格区分英文字母大小写,还有中英符号。
(2)常用ls 和pwd查看。
(3)搜索解决报错注意 :
- 如果答案提到用 root 用户(命令行提示符是 # ),或者提到的解决方法用到了 apt/yum/sudo ,表明部分操作是 管理员命令,需要注意自己是否有管理员权限
- 认清楚命令的结构:
命令 + 参数 + 文件
(输出文件会给一个参数一个-o或是-O参数,然后指定一个文件或是一个文件夹)
(4) 输入文件 和 输出文件 的路径:
处理一个文件时候,给定一个路径就可以了,也不需要用cd,给出正确的路径。
ls -lh Data/example.gtf
(5)练成用tab键补全的习惯
初学者(非服务器管理者)要多敲代码和多观察,在Linux制造错误和解决报错除了时间成本外,不需要付出其它代价,所以多敲命令。
报错不可怕,解决报错的过程就是你进步的过程(来自小郭老师)
说明
以上内容是听生信技能树小郭老师授课内容以及参考课件图片(涉及的图片标明出处)。