在今天之前自学了一点生信相关的内容,杂乱无章的,在此立个Flag,从笔记做起,早日实现小目标--自行分析之前没分析的课题相关数据!
第一次用简书来进行记录,最开始也是从生信技能树的Jimmy老师那里学习了“markdown”这个记笔记的利器,也从他的视频中学习到幕布等记录笔记的方法。本来是想着去做学徒学习的,各种现实问题不得不考虑,而且自觉跟大神的差距太大,体验了学徒班的课程后发现自己欠缺的知识还太多,有些不太能跟得上进度;还是一步一步慢慢学习吧,他说重点不是把知识都背下来,更重要的是要在学习的过程中不断的消化练习,学会搜索,做到先记下来,再理解然后掌握各种技能!
在此感谢生信技能树公众号,感谢生信星球,让我有机会能有勇气在31岁的时候重新开始学习一个新技能,未来路很长,希望能坚持下去!
在周末班的体验学习过程中学到了Linux系统的初级知识,在此先记录一下。一来完成第一天的任务,二来也是对自己的学习进行监督,争取每天进步一点点!
文件目录管理命令——touch、mkdir、cp、mv、rm、dd、file...
在Linux系统的日常运维工作中,需要掌握对文件的创建、修改、复制、剪切、更名与删除等操作
-1.touch命令
touch命令用于创建空白文件或设置文件的时间,格式为“touch [选项] [文件]”。
在创建空白的文本文件方面,这个touch命令相当简捷。比如,touch linuxprobe命令可以创建出一个名为linuxprobe的空白文本文件。对touch命令来讲,有难度的操作主要是体现在设置文件内容的修改时间(mtime)、文件权限或属性的更改时间(ctime)与文件的读取时间(atime)上面。touch命令的参数及其作用如表所示。
touch命令的参数及其作用
使用ls命令查看一个文件的修改时间,然后修改这个文件,最后再通过touch命令把修改后的文件时间设置成修改之前的时间:
chengdeMacBook-Pro:生信分析学习资料 chelsea$ mkdir linux-t
chengdeMacBook-Pro:生信分析学习资料 chelsea$ cd linux-tchengdeMacBook-Pro:linux-t chelsea$ touch learn
chengdeMacBook-Pro:linux-t chelsea$ ls -l
total 0-rw-r--r-- 1 chelsea staff 0 8 26 09:56 learn
chengdeMacBook-Pro:linux-t chelsea$ echo "Visit the LinuxProbe.com to learn linux skills" >> learn
chengdeMacBook-Pro:linux-t chelsea$ ls -l
total 8-rw-r--r-- 1 chelsea staff 47 8 26 09:58 learn
chengdeMacBook-Pro:linux-t chelsea$ echo
chengdeMacBook-Pro:linux-t chelsea$ cat learn
Visit the LinuxProbe.com to learn linux skills
chengdeMacBook-Pro:linux-t chelsea$ ls-l-bash: ls-l: command not foundchengdeMacBook-Pro:linux-t chelsea$ ls -s
total 8
8 learn
chengdeMacBook-Pro:linux-t chelsea$ ls -l
total 8-rw-r--r-- 1 chelsea staff 47 8 26 10:05 learn
2.mkdir命令
mkdir命令用于创建空白的目录,格式为“mkdir [选项] 目录”。
在Linux系统中,文件夹是最常见的文件类型之一。除了能创建单个空白目录外,mkdir命令还可以结合-p参数来递归创建出具有嵌套叠层关系的文件目录。
chengdeMacBook-Pro:遗传咨询远程培训教材 chelsea$ cd /Users/chelsea/生信分析学习资料
chengdeMacBook-Pro:生信分析学习资料 chelsea$ mkdir linux test
mkdir: linux: File exists mkdir: test: File exists
chengdeMacBook-Pro:生信分析学习资料 chelsea$ mkdir linux-t
chengdeMacBook-Pro:生信分析学习资料 chelsea$ cd linux-t
chengdeMacBook-Pro:linux-t chelsea$ touch learn
chengdeMacBook-Pro:linux-t chelsea$ ls -l
total 0-rw-r--r-- 1 chelsea staff 0 8 26 09:56 learn
3.cp命令(*只是复制*)
cp命令用于复制文件或目录,格式为“cp [选项] 源文件目标文件”。
大家对文件复制操作应该不陌生,在Linux系统中,复制操作具体分为3种情况:
Ø 如果目标文件是目录,则会把源文件复制到该目录中;
Ø 如果目标文件也是普通文件,则会询问是否要覆盖它;
Ø 如果目标文件不存在,则执行正常的复制操作。
chengdeMacBook-Pro:linux-t chelsea$ touch install.log
chengdeMacBook-Pro:linux-t chelsea$ cp install.log x.log
chengdeMacBook-Pro:linux-t chelsea$ ls
install.log learn x.log
4.mv命令(*直接替换*)
mv命令用于剪切文件或将文件重命名,格式为“mv [选项] 源文件 [目标路径|目标文件名]”。
剪切操作不同于复制操作,因为它会默认把源文件删除掉,只保留剪切后的文件。如果在同一个目录中对一个文件进行剪切操作,其实也就是对其进行重命名:
chengdeMacBook-Pro:linux-t chelsea$ mv x.log linux.log
chengdeMacBook-Pro:linux-t chelsea$ ls
install.log learn linux.log
5.rm命令
rm命令用于删除文件或目录,格式为“rm [选项] 文件”。
在Linux系统中删除文件时,系统会默认向您询问是否要执行删除操作(本电脑无此提示,可能是之前设置了什么,其实也不用太在意,这个电脑就是rm 和rm -f,两条指令是一样的执行结果了),如果不想总是看到这种反复的确认信息,可在rm命令后跟上-f参数来强制删除。另外,想要删除一个目录,需要在rm命令后面一个-r参数才可以,否则删除不掉。我们来尝试删除前面创建的install.log和linux.log文件:
chengdeMacBook-Pro:linux-t chelsea$ rm install.log
chengdeMacBook-Pro:linux-t chelsea$ ls
learn linux.log
chengdeMacBook-Pro:linux-t chelsea$ rm -f linux.log
chengdeMacBook-Pro:linux-t chelsea$ ls
learn
6.file命令
file命令用于查看文件的类型,格式为“file 文件名”。
在Linux系统中,由于文本、目录、设备等所有这些一切都统称为文件,而我们又不能单凭后缀就知道具体的文件类型,这时就需要使用file命令来查看文件类型了。
chengdeMacBook-Pro:linux-t chelsea$ file learn
learn: ASCII text
7.grep命令
grep命令用于在文本中执行关键词搜索,并显示匹配的结果,格式为“grep [选项] [文件]”。
grep命令是用途最广泛的文本搜索匹配工具,虽然有很多参数,但是大多数基本上都用不到。两个最最常用的参数:-n参数用来显示搜索到信息的行号;-v参数用于反选信息(即没有包含关键词的所有信息行)。这两个参数几乎能完成您日后80%的工作需要,至于其他上百个参数,即使以后在工作期间遇到了,再使用man grep命令查询也来得及。
在Linux系统中,/etc/passwd文件是保存着所有的用户信息,而一旦用户的登录终端被设置成/sbin/nologin,则不再允许登录系统,因此可以使用grep命令来查找出当前系统中不允许登录系统的所有用户信息:
[root@linuxprobe ~]# grep /sbin/nologin /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
………………省略部分输出过程信息………………
8.find命令
find命令用于按照指定条件来查找文件,格式为“find [查找路径] 寻找条件操作”。
本书中曾经多次提到“Linux系统中的一切都是文件”,接下来就要见证这句话的分量了。在Linux系统中,搜索工作一般都是通过find命令来完成的,它可以使用不同的文件特性作为寻找条件(如文件名、大小、修改时间、权限等信息),一旦匹配成功则默认将信息显示到屏幕上。find命令的参数以及作用如表所示。
find命令中的参数以及作用
这里需要重点讲解一下-exec参数重要的作用。这个参数用于把find命令搜索到的结果交由紧随其后的命令作进一步处理,它十分类似于管道符技术,并且由于find命令对参数的特殊要求,因此虽然exec是长格式形式,但依然只需要一个减号(-)。
根据文件系统层次标准(Filesystem Hierarchy Standard)协议,Linux系统中的配置文件会保存到/etc目录中,如果要想获取到该目录中所有以host开头的文件列表,可以执行如下命令:
[root@linuxprobe ~]# find /etc -name "host*" -print
/etc/avahi/hosts
/etc/host.conf
/etc/hosts
/etc/hosts.allow
/etc/hosts.deny
/etc/selinux/targeted/modules/active/modules/hostname.pp
/etc/hostname
如果要在整个系统中搜索权限中包括SUID权限的所有文件,只需使用-4000即可:
[root@linuxprobe ~]# find / -perm -4000 -print
/usr/bin/fusermount
/usr/bin/su
/usr/bin/umount
/usr/bin/passwd
/usr/sbin/userhelper
/usr/sbin/usernetctl
………………省略部分输出信息………………
搜索命令whereis与which
whereis 命令名
#搜索命令所在路径及帮助文档所在位置
选项:
-b :只查找可执行文件位置
-m:只查找帮助文件
[root@localhost ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
[root@localhost ~]# whereis -b ls
ls: /usr/bin/ls
[root@localhost ~]# whereis -m ls
ls: /usr/share/man/man1/ls.1.gz
我们可以查到ls命令的位置以及帮助文档的位置
which 文件名
搜索命令所在路径及别名
[root@localhost ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
命令:
zcat [fileName]|grep --binary-files=text ['target string']
如下图,2016-12-01这天产生了N多日志,并且已经归档压缩。如果需要查找日志中的某段错误,可用以上命令:
zcat app-12-01-*|grep --binary-files=text 'NullPointerException' -C 2|grep '1612010
zcat命令查看一个gzip格式的压缩文件。
--binary-files=text让二进制文件等价于文本文件
日志太多不方便看,所以作者做了两次grep。
以上指令的学习资料部分来源于网络。