今天分享的笔记内容是Linux基础操作必备知识点,参考资料是清华大学鲁志老师的课件,主要是常用指令和功能操作。
特别注意: 在Linux中空格有着专门的意义,所以要特别关注命令行中的空格符,不可以省略空格,否则命令会无法正确执行。
linux一切皆文件,所以路径很关键
可以在linux系统中进行实际操作,对接下来介绍的所有命令不理解时,均可使用 --help 来查询,如比如:
ls --help
接下来的每步操作后,都可以跑一遍 pwd, ls 和 tree,加深对路径和命令的理解,这个有点像windows系统下的资源管理器。
touch old_file
mkdir old_folder
用法:cp SOURCE DEST
cp old_file old_file2 # 复制文件
cp -r old_folder old_folder2 # 复制文件夹,需要加上 -r
注意:当 DEST 为文件夹且已存在时,会把 SOURCE 整个(包括其自身)复制到 DEST 中。
mkdir cp_folder
cp old_file cp_folder
cp -r old_folder cp_folder
mv old_file new_file #文件重命名。如果new_file存在,将覆盖new_file。
mv old_folder new_folder #文件夹重命名。如果new_folder已经存在,把old_folder移动到new_folder中
mv new_file new_folder #将文件移动到新目录
rmdir old_folder2 # 只能是空文件夹
rm 删除文件(夹)
rm old_file2 # 删除文件
rm -r new_folder # 删除文件夹(可以非空)
rm -rf xxx # 强制删除文件,慎用!!!!!
cat file_name
wc -l file_name #查看文件行
wc -c file_name #查看文件字数
head file_name #查看文件前 10 行(思考:为什么只显示 8 行)
head -n 6 file_name #查看文件前 6 行
tail file_name #查看文件后 10 行
tail -n 4 file_name #查看文件后 4 行
more file_name # 按 d 向下翻页,翻完后(或按 q)退出 (由于文件过小,需要把终端调窄才有效果)
less file_name # 按 d 向下翻页,u 向上翻页,q 退出
cut -f 4 file_name #取出第 4 列
cut -d ";" -f 2 file_name # 以分号作为输入字段的分隔符(默认为制表符),取出第 2 列
sed 's/a/A/g' file_name #将文件中所有的 a 替换为 A
sed -n '3,6 p' file_name #打印第3到6行
sed '2 q' file_name #打印前2行
grep 'CDS' file_name #显示匹配上 'CDS' 的所有行
grep -v 'CDS' file_name #显示没有匹配上'CDS'的所有行
grep -w 'gene' file_name # 必须与整个字匹配 (思考第 8 行中的 gene_id 包含 gene,为什么没有显示这一行)
sort -k 4 file_name # 按照第 4 列排序
sort -k 5 file_name # 按照第 5 列排序 (ASCII码顺序)
sort -k 5 -n file_name # 按照第 5 列排序 (ASCII数值顺序)
uniq -c file_name # 去重复并且计算重复频率(仅能处理串联重复)
gzip file_name
gunzip file_name.gz
tar -zcv -f cp_folder.tar.gz cp_folder #打包压缩文件夹(gzip格式)
tar -ztv -f cp_folder.tar.gz #查看压缩文件夹中的文件名(gzip格式)
tar -zxv -f cp_folder.tar.gz #打开包并解压缩(gzip格式)
>
将终端结果输出给文件,会创建新文件或者覆盖原文件
cat file_name > new_file # 将文件的内容输出到一个新文件
cat new_file
>>
将终端结果输出给文件,内容会加在原文件尾部
sed -n '8 p' file_name >> new_file # 将文件的第 8 行附加到新文件的尾部
cat new_file
|
管道,将左边命令的标准输出(standard output)作为右边命令接受的标准输入(standard input)
head -n 6 file_name | tail -n 3
输出文件的前 6 行,通过管道转发给 tail 取出后 3 行,也就是原始文件的 4-6 行。
cut -f 4 file_name | sort | uniq -c
输出文件的第 4 列,通过管道转发 sort 进行排序,通过管道转发到 uniq 去重复并且计算重复频率。
使用ls -hl
查看文件对应的权限信息,对比操作前后文件权限的变化。
文件所有者 u(user),用户组 g(group),其他人 o(other),所有人 a(all)
chmod 修改文件的访问权限,分为数字模式和符号模式。
chmod 755 file_name
chmod -R 755 cp_folder
# -R 修改该目录中所有文件的权限
三位数分别表示文件所有者,用户组,其他人。具体规则如下:
用数字表示:
可读 r=4,可写 w=2,可执行 x=1
例如:
777 表示所有用户对文件具有读、写、执行权限
755 表示文件所有者对文件具有可读、可写、可执行权限,其他用户只具有可读、可执行权限。
chmod u+x,go=rx file_name
#使文件的所有者加上可执行权限,将用户组和其他人权限设置为可读和可执行
chmod o-x file_name
#使其他人对文件除去可执行权限
chmod a+x cp_folder
#使所有人对文件夹加上可执行权限
规则如下:
+ 加入
- 除去
= 设置
top 监视计算机使用情况
date 显示系统的时间和日期
which 寻找可执行文件路径
ctrl-c 终止当前进程
ctrl-z 暂停当前进程
rm new_file #删除文件
rm -r cp_folder #删除文件夹
rm cp_folder.tar.gz #删除压缩包
参考资料: https://book.ncrnalab.org/teaching/part-i.-basic-skills/2.linux/2.1.linux-basic-command
本文由 mdnice 多平台发布