Linux | 01文件系统和基本命令

文件系统和基本命令

一、文件系统

1.Linux目录树

根目录:/
当前目录(路径):.(通常可省略)
父目录:..
绝对目录(路径):以/开头
相对目录(路径):不以/开头


目录树
2.重要的路径

/bin:可执行文件,即通常所说的“命令”所在的路径
/sbin:可执行文件,与系统相关的命令
/etc:系统配置文件
/etc/skel:普通用户模板文件(如果手残弄坏了配置文件可从此处拷贝初始文件)
/home:普通用户的家目录
/usr/*:一般存放用户安装的文件
/var/log:日志文件

#文件和目录操作
tree -L 1/ #-L level限制目录或显示层级

二.基本命令

1.什么是shell?

Shell is an interface between user and kernel.
Shell interprets your input as commands and pass them to kernel.

2.不同shell的语法、变量和函数

参考 Unix Shells: Bash, Fish, Ksh, Tcsh, Zsh - Hyperpolyglot
真正能够控制计算机硬件(CPU、内存、显式器等)的只有操作系统内核,图形界面和命令行只是架设在用户和内核之间的⼀座桥梁。Shell 是⼀个应用程序,它连接了用户和Linux 内核,让用户能够更加高效、安全、低成本地使用Linux 内核,这就是Shell 的本质。Shell 本身并不是内核的⼀部分,它只是站在内核的基础上编写的⼀个应⽤程序,它和QQ、Office、Firefox 等其它软件没有什么区别。然用Shell 也有着它的特殊性,就是开机用马启动,并呈现在用户⾯前;用户通过Shell 来使用Linux,不启动Shell 的话,用户就没办法使用Linux。

echo $SHELL
#/bin/bash
cat /etc/shells
#/bin/sh
#/bin/bash
#/usr/bin/sh
#/usr/bin/bash
#/bin/tcsh
#/bin/csh
#/usr/bin/tmux
#/bin/zsh
3.Linux命令

一个命令可能是一个命令别名、环境变量中的函数或可执行文件
当输入一个命令,Linux系统搜索顺序为:

  • aliases (e.g. ll)
  • exported functions
  • built-in shell commands (e.g. export)
  • scripts and binaries in your PATH (可执行文件)
  • 如果搜索完毕均找不到,则报错(command not found)
#列出所有可用的命令
compgen -c

如何学习基本命令?

  • 查看简单的帮助文档:cmd -help/-h
  • 查看详细的手册文档:man cmd
  • 显示工具手册,比man更详细:info cmd
  • 如果该cmd是一个shell内建命令(type cmd查看),可以用通过help cmd查看帮助
4.目录管理

关于路径:

  • 绝对路径
    ①一定由根目录/ 写起,例如: /usr/share/doc
    ②准确性高,建议写程序(shell scripts) 管理系统时,务必使用绝对路径的写法
  • 相对路径
    ① 相对於目前工作目录的路径,以.或..写起,.可以省略
    ② 方便

对于一个目录(文件夹),我们一般需要以下操作:

  • 打印当前目录(pwd)
pwd
goto=`pwd`
echo $goto
  • 显示内容(ls)
主要选项:
 -a, --all 列出所有
 -l  长格式
 -h 人类可阅读
 --sort=WORD 默认是按名字排序,可自定义
 -r, --reverse 逆序
#ls后面可为文件,若加通配符,则显示匹配关键词的所有文件
ls -l /bin/*sh
ls -l /usr/bin/*sh
ls -l /usr/bin/*sh*
  • 进入目录(cd)
cd ..
cd ~
cd -
cd $HOME
cd -
cd ~stu20230101
  • 创建新目录(mkdir)
#parent 依次创建目录,即使存在也不会报错 
mkdir -p foo1/foo2/foo3
#创建目录
touch foo/hello
  • 删除目录(rm)
#依次删除目录
mkdir -p foo1/foo2/foo3
#删除非空目录
rm -r foo/
5.文件管理
  • 查看文件(cat/more/less/head/tail)
# cat 查看/连接文件
# 主要选项
# -n 所有行前标上行号
# -b 所有非空行前标上行号
# 合并文件-文件名合并
cat hg19.chrom.sizes hg38.chrom.sizes
# 合并文件-使用通配符
cat hg??.chrom.sizes
# more 查看文件
# 主要选项:
# +num 从第n行开始显示
# -num 每屏显示的行数
# less 查看文件
# 主要选项:
# -N 显示行号
# -i 忽略搜索时的大小写
-# f 强制打开特殊文件,如设备代号、目录和二进制文件
less -f /home/
more /home/
less -f /bin/bash
more  /bin/bash
# ******** /bin/bash: Not a text file ********
# head 查看文件前面部分
# 主要选项:
# -n 设置显示行数[K:显示头K行;-K:除了后K行之外]
head -n 3 catn.hg38.chrom.sizes #简写为-3
head -n -3 catn.hg38.chrom.sizes
# tail 查看文件后面部分
# 主要选项:
# -n 设置显示行数[K:显示尾K行; +K:从第K行开始]
# -f 持续地读取文件
tail catn.hg38.chrom.sizes #查看最后10行
tail -n 3 catn.hg38.chrom.sizes #简写为-3 查看最后3行
tail -n +3 catn.hg38.chrom.sizes #从第3行开始显示
# 管道连接
#显示行号并输出倒数20行的前10行
cat -n hg38.chrom.full.sizes | tail -20 | head -10
  • 创建新文件(touch)
touch:更改文件的时间标记,如果文件不存在,则创建文件
  • 删除文件(rm)
rm 删除文件/目录
主要选项:
-i 交谈模式,询问是否删除
-r 递归处理,可删除目录
-f 强制删除
  • 重命名(mv)
  • 移动文件(mv)
# 第二个路径为已存在的目录,表现为移动
mv ../time.log ~/lab1/
# 第二个路径为不存在的文件,表现为重命名
mv time.log lastrun.log
  • 复制文件(cp)
 cp 复制文件/目录
主要选项:
-i 交谈模式,询问是否覆盖
-p 保留源文件的属性
-r 递归处理,可复制目录
-f 强制复制
  • 建立链接(ln)
主要选项:
-i 交谈模式,询问是否覆盖
-s 符号链接,不复制文件
-f 强制覆盖
若不指定destination,则默认为链接到当前目录的同名文件
  • 压缩&解压缩
gz命令(*.gz) 单文件
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName

tar命令(*.tar)单文件
解包:tar -xvf FileName.tar
打包:tar -cvf FileName.tar FileName

tar+gz命令(*.tar.gz / *.tgz)多文件或目录
解压:tar -zxvf FileName.tar.gz
压缩:tar -zcvf FileName.tar.gz FileName
压缩多个文件:tar -zcvf FileName.tar.gz FileName1 FileName2 FileName3 ...

zip命令(*.zip)多文件或目录
解压:unzip FileName.zip
压缩:zip FileName.zip FileName
  • 小练习
# INSTALL文件第51-68行文件内容是什么?[cat -n; |; head; tail]
cat -n INSTALL | head -68 | tail -18
6.权限管理
 chmod文件权限
 用法:chmod [who] operator [permission] filename
 who:u 属主;g 属组;o 其他用户;a 所有用户
 operator:+增加权限;- 取消权限;=设定权限
 permission: r=可读(4);w=可写(2);x=可执行(1)
 示例:
 chmod u+x file #rwxrw-r-- 赋予文件属主执行权限
 chmod a=rwx file,chmod 777 file #rwxrwxrwx赋予所有用户所有权限
 chown改变属主(一般是root用户操作)
 chown user[:group] file
 chown –R user[:group] file
chgrp改变属组(一般是root用户操作)
chown group file
ls -l dir
detail
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342

推荐阅读更多精彩内容