Linux基础_01_linux文件和目录操作

一、认识Linux

 

Linux简介:

   UNIX 诞生于 20 世纪 60 年代末,Windows 诞生于 20 世纪 80 年代中期,Linux 诞生于 20 世纪 90 年代初,可以说 UNIX 是操作系统中的"老大哥",后来的 Windows 和 Linux 都参考了 UNIX,只不过Windows现在朝着“图形界面”方向发展,渐渐从Windows中看不到UNIX的踪迹
  UNIX 操作系统由肯•汤普森(Ken Thompson)和丹尼斯•里奇(Dennis Ritchie)于1969年发明实现,1970年正式更名UNIX
  Linux 内核最初是由李纳斯•托瓦兹(Linus Torvalds)在赫尔辛基大学读书时出于个人爱好而编写的,后来开源被无数人完善
  Linux几乎相当于Unix的后代,Linux几乎继承了Unix全部功能和大部分语法基础,两者有很多共通之处,更重要的是Linux代码开源!

 

Linux系统结构: 

  内核层:内核层是 UNIX/Linux 系统的核心和基础,它直接附着在硬件平台之上,控制和管理系统内各种资源(硬件资源和软件资源)。(内核于硬件之间会有一个驱动层,这里不提)
  Shell层:Shell 层是与用户直接交互的界面,shell层负责解释用户层输入的shell命令,因此shell层也称为命令解释器
  应用层:应用层架构应用程序,直接面向用户

 

Linux系统的优点:    

  1、大量的可用软件及免费软件
  2、良好的可移植性及灵活性
  3、优良的稳定性和安全性
  4、持几乎所有的网络协议及开发语言

 

Linux版本:

  Linux 的发行版本可以大体分为两类:
    1、商业公司维护的发行版本,以Red Hat 为代表;
        ⑴ RHEL          (Red Hat Enterprise Linux,收费版本,卖的服务)
        ⑵ CentOS       (RHEL 的社区克隆版本,和RHEL 相同内核,免费版本)
        ⑶ Fedora Core(由 Red Hat 桌面版发展而来,免费版本)
    2、社区组织维护的发行版本,以 Debian  为代表。
        ⑴ Ubuntu        (最适合做桌面系统的 Linux 发行版本,免费版本)
        ⑵ Debian
    3、SuSE Linux  (对于终端用户和管理员来说使用友好)
    4、Gentoo Linux  (对于有经验者拥有高度的自定制性(基于源代码的发行版))

 

 

二、Linux基本操作

 

命令解析器

  本质: 根据输入命令名, 调用对应的可执行程序
    shell -- unix操作系统终端命令
    bash -- Linux操作系统终端命令(由shell改写而成)

 

Linux 快捷键

​   1>. 命令和路径补齐
      ​ 清理界面:        clear
​        编辑编译同步:     gedit 1.c &
​        获得root权限:     sudo passwd rooot
​        切换路径:            cd
​        补全命令和路径:  Tab

  ​ 2>. 主键盘快捷键:
​        1). 历史命令切换:
​            历史命令:          history
            清除历史命令:          history -c
​            向上遍历:          Ctrl+P
​            向下遍历:          Ctrl+N
       ​ 2). 光标移动:
​            向左:               Ctrl+B
​            向右:               Ctrl+F
​            移动到头部:          Ctrl+A
​            移动到尾部:          Ctrl+E
​        3). 删除字符:
           ​ 删除光标后边的字符:    Ctrl+D
​            删除光标前边的字符:    Ctrl+H
​            删除光标前的所有内容: Ctrl+U

 

Linux系统目录结构:

  Linux没有磁盘盘符概念!是一种树结构(根节点、子节点)相互挂载不是嵌套

    bin     dev      home     lib       lib64       media    opt      root      sbin      srv      tmp      var
    boot   etc       init         lib32   libx32     mnt        proc     run      snap     sys      usr

01>. /       根目录                           
02>. /bin      系统常用命令(二进制可执行程序)(shell命令)      主要命令
03>. /boot       Linux启动核心、镜像文件、开机启动项                      系统资源
04>. /dev        外设(Device)文件                     硬件资源
05>. /etc         系统管理配置文件和子文件                  系统资源
06>. /lib          系统基本动态链接共享库,类似于window内DLL文件 系统资源
07>. /home     主(家)目录                           家
08>. /mnt        临时挂载其他文件系统,便于查看该文件系统内容      软件资源
09>. /media    自动识别新设备(U盘、光驱)、挂载设备            硬件资源
10>. /usr         系统内部资源共享目录,软件一般安装在此                 软件资源
11>. /opt          软件安装扩展目录                         软件资源
12>. /root        系统管理员,超级权限主用户           
13>. /sbin        系统管理员用户命令程序
14>. /srv          服务器启动后需要提取的数据目录
15>. /tmp         存放一些临时文件                        软件资源
16>. /var          经常修改的目录文件,比如日志文件                   软件资源
17>. /init           一个由内核启动的用户级进程程序
18>. /lib32
19>. /libx32
20>. /lib64
21>. /snap
22>. /proc     虚拟文件系统,存于内存而非硬盘,展示内核 系统资源
23>. /run          Linux内核对象文件映射 系统资源
24>. /sys
26>. /lost + found   一般为空,设备非法关机时存储配置文件


用户目录:

  ​ 1>. 绝对路径: 从根目录开始写 /home/username/aa
​   2>. 相对路径: bb 相对于当前的工作目录而言
​     .   -> 当前目录
​     ..     -> 当前的上一级目录
​         -> 在临近的两个目录直接切换 cd -    (出现过的/目录和~目录相互切换)
​    3>. username@ubuntu:~$
​        username: 当前登录用户
       ​ @: at 在
​        ubuntu: 主机名
​        ~: 用户的家目录(宿主目录)
       ​ $: 当前用户为普通用户
​        #: 超级用户 -- root

 

文件和目录操作

touch  创建文件
mkdir  创建目录
rm       删除文件(不能删除目录)
rmdir   删除目录(不能删除文件)

cp 2.txt 3.txt                       将2.txt的内容拷贝到3.txt里面  (有则拷贝,无则创建拷贝)   文件可创建文件
cp newdir/ nodedirs -r        将newdir文件夹下文件逐级依次拷贝到新建目录nodedirs        目录可创建目录

​   1>. 查看我的资产(目录)
     ​ 1). tree -- 必须安装该软件
​      2). ls  -a         显示全部文件
      3). ls  -l(a)      完整显示全部文件和文件属性  (a)可加可不加,放置l前或后均可
  ​ 2>. 在情人和前妻之间徘徊:
        ​ cd 情人目录
​         cd
​        回家安抚老婆孩子: (三种回家方式)
​          cd /home/aaa
​          cd ~
​          cd
​        查看我当前是在老婆, 前妻, 还是情人的床上:
        ​ pwd
​   3>. 给情人买房子(创建目录)
​        一间小屋: mkdir dirName
​        一套别墅: mkdir dir/dir1/dir2 -p
​   4>. 趁前妻不在的时候卖掉前妻的一间房子: 删除空目录
​   5>. 给妻子买一个和田玉的手镯:
  ​ 6>. 没收情人的所有财产:
         ​ 别墅:
​          首饰:
​   7>. 给妻子置办一份财产, 跟情人的一模一样
  ​ 8>. 妻子查看清单中的内容(5种方式):
  ​ 9>. 妻子使用了黑科技, 不管在哪儿都能迅速来到我身边(快捷方式):
​   10>. 妻子将我的财产做了备份

 

文件或目录属性:

​   1>. wc  查看文件的    行数(5) 字数(5) 字节数(35) 文件名(1.c)
​   2>. od  查看二进制文件信息
  ​ 3>. du  查看某个目录文件的大小
  ​ 4>. df    查看磁盘是使用情况

 

  白色:普通文件  蓝色:目录文件  绿色:可执行文件                             
  红色:压缩文件  青色:链接文件  黄色:设备文件  灰色:其他文件

 

文件权限, 用户, 用户组

​   1>. 查看当前登录用户:    whoami
       切换到超级用户:  sudo su
        退出超级用户:     exit
​   2>. 修改文件权限:
​      1). 文字设定法: chmod [who] [+|-|=] [mode]
      ​ who: 操作对象
           ​ 文件所有者: u
​            文件所属组: g
​            其他人: o
​            所有的人: a
       +-=:操作符
​             +: 添加权限:
​              -: 减少权限
​               =: 覆盖原来的权限
​        mode:执行权限
​            r: 读
​            w: 写
​            x: 执行
​      2). 数字设定法:

         - :  0 没有权限
            r : 4读权限
         w: 2写权限
         x : 1执行权限
         765
          7 -- rwx -- 文件所有者
          6 -- rw -- 文件所属组
          5 -- rx -- 其他人
  3>. 改变文件或目录的所有者或所属组:chown
  4>. 改变文件或目录所属的组:chgrp

 

软件的安装和卸载

​   1>. 在线安装:
​   2>. deb包安装:
  ​ 3>. 源码安装:
​     案例: 安装 svn
      ​ a. ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
​       b. make
​       c. sudo make install

 

 U盘的挂载和卸载

历史命令向上滚动: ctrl+p
下: ctrl +n

删除光标后边的字符: 光标覆盖的字符 ctrl+d
前..: ctrl+h backspace
行首: ctrl+a
行尾: ctrl+e


tab: 自动补齐

根目录: /

ls aa
tree

ls -la

cd .
cd ..
cd /home/itcast
cd ~
cd

cd -

mkdir aa
mkdir aa/bb/cc -p
rmdir -- del kong
rm -r dir

touch a.txt
rm a.txt

cp a.txt b.txt
cp dir1 dir2 -r

cat
more
less
head
tail

 

软链接的创建(创建一个快捷方式): ln -s 1.c 1.csd              

以上方法创建的快捷方式不可更改路径,否则失效             软链接生成的快捷方式占用内存为路径字节长度(本身内容不再创建空间)
  解决:给文件添加一个绝对路径  ln -s /mnt/d/VsCode/2.c 2.rsd

 

硬链接的创建(创建一个备份文件、拷贝):ln 1.c 1.csd     (去掉-s)

  硬链接会占用和源文件相同的内存空间,但严格意义上不算是拷贝文件,而是文件内存映射问题,硬链接不需要指定绝对路径

 

文件的查找和检索 

  按照属性查找:
      文件名   find + 查找的目录 + -name + “文件名字”        eg:find ./214 -name 1.c
      文件大小       find + 查找的目录 + -size +  +10k    (大于+、小于- )      eg:   find ./ -size -10k
      文件类型    find + 查找的目录 + -type + f  (文件类型)
            普通文件       f                     管道文件       p
            目录文件    d             字符设备       c
            链接符号       i              socket文件    s                    块设备     b

 

posted @ 2021-12-29 09:20  尘落曦枫  阅读(130)  评论(0)    收藏  举报