「历史文章」写文章的那天是生信星球陪你的第49天
你想找辆共享单车,发现满街都是别家车,没有一辆你能骑。
你想学点生信,搜了“初学者教程”,满眼尽是高大上,没有一句能看懂。
终于你跨越茫茫宇宙,来到生信星球,发现了初学者的新大陆!
系统学习一项内容,透过现象看本质,可以让你更快地掌握碎片化知识
--不是啥名言,就是一点学习感悟
Linux 文件系统:
根文件系统 rootfs
ls /
查看
/boot:系统启动相关文件,如内核,initrd,以及grub(BootLoader)
/dev:设备文件 —
体现了LInux的“一切皆文件”思想
块设备:随机访问,数据块(如:硬盘)
字符设备:线性访问,字符为单位(有次序,例如键盘/鼠标/显示器)
设备文件没有大小,只有设备号,分为主和次设备号
/etc :配置文件。大多数为纯文本文件
/home:用户的家目录
/root:管理员的家目录
/lib:公共库文件(不能单独执行, 只能被调用)
/lib/modeles:内核模块文件。
静态库:后缀.a,程序中包含库,直接移植程序就可以~静态编译
动态/共享库:后缀.dso,要移植程序的话,必须连同.so一起~共享节约资源/media:挂载点目录,挂载移动设备(如U盘)
/mnt: 挂载额外的临时文件(如第二块硬盘)
/opt:可选目录(现在基本没用)
/proc:伪文件系统,内核映射文件,系统启动后才出现文件, 关机就空
/sys:伪文件系统,跟硬件设备相关的属性映射文件,关机就空
/tmp:临时文件,/var/tmp是另一个临时文件目录
【所有用户都可以操作,但只能删自己的,不能删别人的】/var:可变化的文件
/bin:(binary) 可执行文件,用户命令
/sbin:管理命令
/bin、/sbin都是可执行程序,运行时依赖的库都放在/lib下,配置文件放在/etc
/usr:(universal shared readonly,只读文件)
/usr下也有/bin,/sbin,/lib,与系统提供基本功能相关;
根目录下的/bin,/sbin,/lib与系统启动相关,必需的;
/usr/local:/bin,/sbin,/lib,第三方软件存放路径,非必需
目录命名规则:
严格区分大小写
不能使用
/
当文件名长度不能超过255个字符
目录管理:
ls 、cd 、 pwd、mkdir(在mnt/test/文件夹下创建x和y文件夹,x文件夹下创建m文件:mkdir -pv mnt/test/{x/m,y}
)tree 查看目录树rmdir 删除空目录
文件管理:
touch:通过改时间戳来创建新的空文件,可连续创建
stat:用于显示文件的属性/状态信息。能看到那三个时间戳 [访问、更改、改变]。
cp:复制一个文件到一个文件 cp SRC(source) DEST(destination)
;
或多个文件到一个目录cp {file1, 2,3} /dir/
--> 花括号展开机制
-r/R:递归复制整个目录
-p:保留源文件或目录的属性;
-d:当复制链接文件时,把指向的文件一并复制。简而言之,保持链接
-a:(= -dpR) 保留所有原始属性,比-p保留的更多,常用于备份目录或文件;
rm: -f 强行删除;-i 删除前提示;-r 递归删除mv: -t 可以先写目标地址DEST,再写源SRC;
-b:当文件存在时,覆盖前,为其创建一个备份;
install 只能复制文件,不能复制目录(复制时比cp功能少)
-d: 创建目录【与mkdir -p类似】
-t: 与mv命令一样,可以先写目标目录,后写文件
-m,--mode=模式:自行设定权限模式 (像chmod),而不是rwxr-xr-
参考:chmod
-g,--group=组:自行设定所属组,而不是进程目前的所属组
任何具有竞争力的行业,大部分优秀的工程师的成长道路都是这三种境界:
“昨夜西风凋碧色,独上高楼,望尽天涯路” -- 站在一定角度,看别人,定目标;
“衣带渐宽终不悔,为伊消得人憔悴”-- 为第一重境界的目标努力
【大概需要一到两年,这个领域内胜过很多人,此前不是很明白的东西也可以游刃有余地操作。但是会遇到一个天花板,再想往上走很困难
~ 称为“业余专家”】“众里寻她千百度,蓦然回首,那人却在,灯火阑珊处”
【坚持五年以上成为“权威”;十年如一日,“Expert”】
文本查看:【只用于文本!不要用来打开二进制文件😯】
cat、tac、more、less、head、tail
cat -n(number):显示行号;
-E : 显示每行的结尾【对于Linux,文本文件的行结束符是$
; Windows是$和Enter
。因此从Linux复制文本文件到Windows,统统显示为一行。就是缺少了回车或者换行符】
tac 反向显示cat
more/less : 分屏显示
head /tail:默认显示十行,-n 自定义行数;
tail -f:查看文件尾部,不退出,等待显示后续追加至此文件的新内容
【用途:监控web服务器中哪个用户正在访问哪个网页】
文本处理:
先讲下数据库的格式:
信息很多,有意义的数据在于我们怎么抽取
比如,我们要描述一个人,有时只需要他的身高体重,有时只需抽取年龄性别常见的表格,又称二维表,关系型数据库的一种:一个表可以没有行,但不能没有列
cut 用来分割字段
-d (delimiter)指定分隔符, 默认tab。【不需要空格,直接加分隔符即可】
-f 显示第几个字段
-f 1,3 显示第1和第3个
-f 1-3 显示第1-3个例如 cut -d: -f1 /etc/passwd 就抽取了这个文件的第一列
sort 默认根据ASCII表中的顺序升序排序
-n : 按照数值大小排序
-r :(reverse) 降序排序
-t : 指定字段分隔符 【等同于cut的-d】
-k:指定字段【等同于cut -f】
-u: 不管是否相邻,只要重复,行就显示一次
-f:排序时忽略字符大小写
uniq
【与sort不同。在它看来,只有相邻的重复行才算做重复行。所以常与sort连用】
-c: 每列旁边显示该行重复出现的次数
-d: 仅显示重复出现的行列 (一个代表) -D: 显示所有的重复行列 (全部)
wc word count 文本统计
结果依次显示为:行数、单词数、字节数
-l:只显示行数
-w:只显示单词数
-c:显示字节
-L:最长的一行包含了多少个字符
tr 字符转换或删除 translate or delete characters
例如:tr 'ab' 'AB' 引号中的叫做字符集
这样就把包含字符集a、b的文件对应替换为A、B
但是tr不能直接加文件,如果想对一个文件中字符进行替换
使用输入重定向<
:tr 'ab' 'AB' < /etc/passwd
将所有小写都换成大写:tr 'a-z' 'A-Z'
-d : 删除出现在字符集中的所有字符 如:tr -d 'ab'
初学生信,很荣幸带你迈出第一步。
我们是生信星球,一个不拽术语、通俗易懂的生信知识平台。由于是2018年新号,竟然没有留言功能。需要帮助或提出意见请后台留言、联系微信或发送邮件到jieandze1314@gmail.com,每一条都会看到的哦~