【Linux/Ubuntu操作系统学习笔记】01-内核态,目录结构,常用终端命令

1. 内核态(内核版本)与用户态(发行版本)

  • 内核态(内核版本)是Linux的基础,本质上是一种软件,用来控制计算机的硬件自愿,并提供上层应用程序运行的环境,可以访问所有的内存和外围设备(如硬盘,网卡等)
  • 用户态(发行版本)是上层应用的活动空间,仅能受限地访问内存,并且不允许访问外围设备。
  • 用户态/发行版本可以有很多(Redhat,Ubuntu,CentOS等),但是内核态/内核版本始终只有一个(即Linux的内核)

2. Linux的目录结构

Windows上会对硬盘进行虚拟分区,分成C盘,D盘,E盘,F盘…,每个虚拟分区都为一个根节点,与其下面的子目录形成一棵树。Windows的前身是单用户系统,即每台计算机同时只能有一个用户使用,一个用户独占所有的硬件和软件资源。

Linux的初衷就是多用户系统,多个用户共享硬件和软件资源。因此,Linux下是没有盘符概念的,只有一个总的根目录,里面分别有\bin, \etc, \var, \home等子目录。而\home下又有各个用户的子目录,假设我们有三个用户分别叫cyoushika,zha,ub,那么\home下面就会有三个子目录分别对应这三个用户。而每个用户目录下面,又有\Documents, \Downloads, \Desktop等子目录。因此,Linux的子目录结构是一棵完整的树,而各个用户是这里面\home下的子树。

3. Linux常用命令

3-1 格式:

command [-options] [-parameter], "[]"表示可选,可以有,也可以没有。

3-2 辅助:

如果忘记了某个命令的使用方法,我们可以通过command --help 或者 man command的方式查阅命令的帮助信息。

3-3 相对路径和绝对路径的知识:

  • 相对路径:开头不是/或者~,表示相对当前目录所在的目录位置
  • 绝对路径:开头是/或者~,表示从根目录或家目录开始的具体目录位置

3-4 基础命令:

  • ls:查看当前文件夹下的内容(选项操作见下文)
    • ls -a :Linux中可以再文件或目录名字开头加一个".",来隐藏这个文件或者目录。而直接ls是看不到隐藏文件和隐藏目录的,因此想要查看文件,包括隐藏文件和目录时,需要用ls -a:
    • ls -l :以列表的形式显示文件的详细信息
    • ls -h :配合-l以人性化的方式显示文件大小
    • ls+通配符:
    • *代表任意个数个字符,可以是0个:
      • ls 1*表示:显示名字以1开头的所有文件和目录
        • ls *1表示:显示名字以1结尾的所有文件和目录(但需要注意,文件需要加上文件的扩展名(比如.txt)才能正确显示,否则会报错)
        • ls *1*表示:显示名字中包含1的文件和目录
      • ?表示任意1个字符,且必须是1个
      • [] 可以陪陪的字符组中的任意一个:比如[abc]就是a,b,c中的任意一个,[abc]23的结果就是显示名字叫a23, b23, c23的文件或目录(如果存在的话),[a-f]表示a到f之间的字符中的任意一个,数字也可以用[1-3]表示1~3之间的任意一个数字。
  • pwd:查看当前所在文件夹路径
  • cd 目录名:切换到指定目录下(选项操作见下文)
    • cd:切换到当前用户的主目录(/home/用户目录)
    • cd ~: 和cd相同
    • cd . : 保持在当前目录不变
    • cd .. : 切换到上级目录
    • cd - : 可以在最近两次工作目录之间来回切换
  • touch 文件名:如果文件不存在,新建文件(如果已存在,则会更新文件的末次修改日期)
  • mkdir 目录名:创建目录,不允许存在重复名
    • -p:可以递归创建目录,比如mkdir -p a/b/c/d,就会创建a目录,在a中创建b,在b中创建c,在c中创建d)
  • rm 文件名:删除指定文件,且不能恢复
    • -f表示强制删除,忽略不存在的文件,无提示;
    • -r表示递归地删除目录下的内容,删除文件夹时必须使用此参数),和ls一样支持通配符
  • clear:清屏(清空终端显示的内容)
  • tree 目录名:以树状图列出文件目录结果(-d 表示只显示目录)
  • cp 源文件 目标文件:复制文件或目录,如果目标文件已经存在,则会直接覆盖
    • -i 表示 如果目标文件已经存在,覆盖前显示提示;
    • -r 表示递归地复制目录下的内容,复制文件夹时必须使用此参数)
  • mv 源文件 目标文件:移动文件或目录,或者实现 文件或者目录的重命名,如果已经存在目标文件,则会直接覆盖(-i 表示 覆盖文件前显示提示)
  • cat 文件名:查看文件内容(完整显示),创建文件,文件合并,追加文件内容等功能(适合查看内容不太多的文本文件)
    • -b:输出内容时添加行号(忽略空行)
    • -n:输出内容时添加行号(包括空行)
  • more 文件名:查看文件内容(分屏显示,适合查看内容较多的文本文件)
  • grep [选项] 指定文本 目标文件:在目标文件中搜索指定文本(相当于ctrl+F的搜索),注意,如果指定文本中包含空格,应该将文本用“”框起来
    • -n:查找文本的同时,显示匹配行和行号
    • -v:显示不包含匹配文本的所有行(相当于取反)
    • -i:忽略大小写
    • 同时grep还支持模式查找:
      • ^a: 行首模式,搜索以“a”开头的行(可以将a替换成任何文字)
      • ke$:行尾模式,搜索以“ke”结尾的行(可以将ke替换成任何文字)
      • 支持正则表达式
  • echo 文字内容:在终端中显示文字内容,通常和重定向配合使用
  • 重定向>和>>:将本应显示在终端的内容输出/追加到指定文件中
    • > : 表示输出,会覆盖文件原有的内容
    • >>:表示追加,会将内容添加到已有文件的末尾
  • 管道 | :Linux允许将一个命令的输出 可以通过管道 作为另一个命令的输入(可以理解为现实生活中的管子,从管子的一头塞进东西,从另一头取出来。|左右分为两端,左端塞东西(写),右端取东西(读),常与more,grep配合
    • 比如:ls -lh | more,就可以把ls -lh的结果分屏显示
    • 再比如:ls -lh | grep *K,就可以把ls -lh的结果中包含以K结尾的文本的行输出出来

你可能感兴趣的:(Linux,linux,ubuntu,运维)