草庐IT

Linux 基础(一)——Linux简介、目录管理、文件管理

我是大学渣 2023-05-27 原文

Linux 基础

✨ 原 创 不 易 , 还 希 望 各 位 大 佬 支 持 一 下
👍 点 赞 , 你 的 认 可 是 我 创 作 的 动 力 !
⭐️ 收 藏 , 你 的 青 睐 是 我 努 力 的 方 向 !
✏️ 评 论 , 你 的 意 见 是 我 进 步 的 财 富 !

Linux简介、目录管理、文件管理

前言

为什么要学习Linux

  1. 对于绝大多数的企业来说,服务器一般安装在linux上
  2. 现在主流的云计算包括大数据,等等都是默认支持linux系统
  3. 面试岗位需求

Linux 学习方法

  1. C语言可以当做是一门技能,大量的练习,但是Linux绝大部分的内容是需要理解,一般练习也就是 基础命令的练习
  2. 学习方法:理解记忆+看书 (上课理解,下课巩固+扩展),这样子可能学习效率更高

1.Linux介绍

  • linux(类unix系统):多用户多任务的操作系统
  • unix系统:贝尔实验室1969年开发,unix7系统时候,发现unix的商业价值,就开始收回授权,最终在1982年发布了第一个完全商业版本unix system 3 芬兰的一个教授因为unix的版权原因,就准备开发一个类unix的操作系统,Minix(微型unix系统), 主要是用来教学和教育机构。
  • linus(林纳斯·托瓦兹),学习Minix源代码,半年后,开发一个linux内核(最初的版本)。
  • GNU,革奴计划:理查德斯托曼,致力于开发一个完全免费,自由,开源的并且兼容unix系统的操作系 统GNU,
    但是这个计划发展了10来年,唯独缺少一个内核,当然这个计划有内核,叫hurd(只不过,一直在开发 中)

刚好GNU缺少内核,Linux缺少配套工具,刚好合在一起就是一个完整的操作系统 所以有人认为linux应该叫做GNU/Linux

  • GPL协议:理查德斯托曼在89年和一群律师一起起草了 一份协议,这个协议规定linux 的派生版本必须也免费

2. Linux简介

  • 1.linux和window系统有什么区别?

Linux系统开源,Window不开源 Linux主要应用于服务器上,Window主要应用于个人电脑
Linux主要用命令行操作,Window主要用图形化操作界面 linux免费,window免费

linux是多用户系统,Window是单用户系统

  • 2.Linux的内核版本和发行版本

Linux内核版本:www.kernel.org

2.1 查看自己的内核版本号


5.代表主版本号,13是次版本号,0代表修订版本号,35代表修订版本的第几次微调(一般数字越大,内核越新)

2.2 linux的发行版本

  • 1.红帽子公司 全球最大的开源技术厂商,提供非常广泛的linux套件,提供全球技术支持(收费)。 有企业版(RHEL),有社区版本(centos),还有一个桌面版本(Fedora)
  • 2.debian公司 企业版本(debian) 社区版本(ubuntu) ubuntu系统一款基于debian派生出来的一个产品,对最新的软件兼容性很好,大多数认为ubuntu和fedora系统都是非常好的linux系统

优点:

  • ubuntu系统广泛应用于电脑,服务器,物联网,云… 既适合家庭使用环境,也适合商业环境, ubuntu系统拥有良好的安装及操作系统ubuntu系统承诺免费(没有技术支持)

2.3 桌面介绍

2.3.1开关机(尽可能通过这里)

2.3.2 终端的打开

  1. 在桌面上通过鼠标右边可以打开这个终端
  2. ctrl+alt+t

  • stu:用户名;
  • stu-virtual-machine:主机名
  • ~/Desktop 当前所在目录的路径
  • $ 代表普通用户 #超级管理员

2.3.3 怎么控制终端的大小

  • 扩大:ctrl shift ‘+’
  • 缩小:ctrl ‘-’
  • 进入管理员权限:sudo su
  • 退出管理员权限:exit

3. Linux目录结构

  • window:将存储空间分为多个盘符:C,D,E,F。。。。
  • linux:只有一个根目录,倒立的属性结构,所有文件都是从根目录开始向下存储

3.1 linux的文件目录结构图

3.2常用目录介绍:

  • /bin 存放常用的命令(二进制可执行程序)(重点
  • /boot 存放系统内核及启动相关的文件,类似于window里面的C盘,很重要,一般不会让别的人 去挤压它的存储空间(重点)
  • /dev 存放我们的设备文件(重点)
  • /etc 存放系统配置文件(重点)
  • /home 家目录(所有普通用户的家目录)
  • /lib 存放库文件
  • /proc 存放虚拟文件系统目录,保存进程在内存中的信息(重点)
  • /usr 存放系统应用文档和程序 例如QQ微信(重点)
  • /var 存放系统运行中经常修改的文件,例如系统日志
  • /root 存放管理员的家目录
  • /mnt 临时挂载点
  • /tmp 存放临时文件,所有用户都可以访问

3.3相对路径和绝对路径

绝对路径:在linux系统中是从系统根目录开始向下遍历到指定位置的路径,中途用我们的‘/’隔开

  • 例如:stu的桌面的绝对路径:/home/stu/Desktop
  • teacher的用户的桌面的一个叫做main.c:/home/teacher/Desktop/main.c

相对路径:从当前路径开始向下遍历到指定位置的路径

  • “.”:代表当前位置
  • “…”:代表上一层的位置
  • “-”: 代表上一次的位置
  • 假设,我们现在用绝对路径描述main.c这个普通文件:/home/stu/Desktop/main.c
  • 假设,我们现在就在stu的桌面上,那么此时用相对路径描述main.c这个普通文件:./main.c

相对路径和绝对路径的选择,具体情况具体分析,那个方便用那个。

4. Linux系统文件类型和文件权限

4.1 文件类型

Linux系统认为一切皆文件
所以Linux将所有的东西都看做文件,所以将其分了这些类:

  • 普通文件 “-”
  • 目录文件 “d” (directory)
  • 管道文件 “p” (piping)
  • 链接文件 “l” (link)
  • 设备文件(块设备“b”(block), 字符设备“c”(char))
  • 套接字文件 “s” (socket)

分别解释下什么意思:

  • 管道文件:进程间通讯的一种手段
  • 链接文件:软链接(字符链接)和硬链接,软链接可以认为是windows下的快捷方式
  • 设备文件:块设备:可以从任意位置读取一定长度的设备:例如磁盘,U盘,TF卡等等
  • 设备文件:字符设备:只能一字节一字节的读取,不能随机读取,例如鼠标,键盘等等
  • 套接字文件:网络通讯的一种方式

linux系统不以后缀名去区分文件类型,后缀名的作用就是帮助我们确定用哪个软件打开它。


4.2 文件权限

  • r 读权限 值:4
  • w 写权限 值:2
  • x 执行权限 值:1 (对于普通文件代表执行权限,对于目录文件,代表可进入权限)
  • 无权限 值:0
  • u:user 属主的访问权限(拥有者)
  • g:group 属组的访问权限(和拥有者同小组的人)
  • o:other 其他人的访问权限

4.3 如果修改文件权限

这里有两个修改方法:

  • 文字设定法
  • 数字设定法

4.3.1 文字设定法

chmod 修改权限的命令
u:user 属主的访问权限(拥有者)
g:group 属组的访问权限(和拥有者同小组的人)
o:other 其他人的访问权限
a:all 所有人
+:添加权限
— :去掉权限
=:表示直接赋值权限
注意:如果想同时给属主,属组,其他人修改权限,用逗号隔开即可

例如:当前文件权限如下:

此时我如果想给main2这个可执行文件进行权限修改,去除掉属主的执行权限,命令如下:

然后,又想给属主减一个r权限,对属组减去一个w权限,对其他人添加一个w权限,命令如下

然后,又想让属主,属组 ,其他人权限都没有,命令如下:

最后,我想让main2恢复到开始的权限(rwxrwxr-x),命令如下:

4.3.2 数字设定法

  • r:read 值4(100)
  • w:write 值2 (010)
  • x:execute 值1 (001)
  • chmod XXX filename (0<=x<=7)
  • 0 :没有权限
  • 1:–x(001)
  • 2:-w- (010)
  • 3:-wx(011)
  • 4:r–(100)
  • 5:r-x(101)
  • 6:rw-(110)
  • 7:rwx(111)

touch filename 创建普通文件
mkdir dirname 创建目录文件

5. 总结

Linux应该理解记忆,加上练习使用,把它当作需要使用的一个软件一样,切记不可死记硬背,那样就本末倒置了,可能会忘得很快,需要我们经常看书,经常复习,这样我们就会掌握好Linux。

有关Linux 基础(一)——Linux简介、目录管理、文件管理的更多相关文章

  1. ruby - 使用 RubyZip 生成 ZIP 文件时设置压缩级别 - 2

    我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看ruby​​zip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d

  2. ruby - 其他文件中的 Rake 任务 - 2

    我试图在一个项目中使用rake,如果我把所有东西都放到Rakefile中,它会很大并且很难读取/找到东西,所以我试着将每个命名空间放在lib/rake中它自己的文件中,我添加了这个到我的rake文件的顶部:Dir['#{File.dirname(__FILE__)}/lib/rake/*.rake'].map{|f|requiref}它加载文件没问题,但没有任务。我现在只有一个.rake文件作为测试,名为“servers.rake”,它看起来像这样:namespace:serverdotask:testdoputs"test"endend所以当我运行rakeserver:testid时

  3. ruby-on-rails - 在 Rails 中将文件大小字符串转换为等效千字节 - 2

    我的目标是转换表单输入,例如“100兆字节”或“1GB”,并将其转换为我可以存储在数据库中的文件大小(以千字节为单位)。目前,我有这个:defquota_convert@regex=/([0-9]+)(.*)s/@sizes=%w{kilobytemegabytegigabyte}m=self.quota.match(@regex)if@sizes.include?m[2]eval("self.quota=#{m[1]}.#{m[2]}")endend这有效,但前提是输入是倍数(“gigabytes”,而不是“gigabyte”)并且由于使用了eval看起来疯狂不安全。所以,功能正常,

  4. ruby - i18n Assets 管理/翻译 UI - 2

    我正在使用i18n从头开始​​构建一个多语言网络应用程序,虽然我自己可以处理一大堆yml文件,但我说的语言(非常)有限,最终我想寻求外部帮助帮助。我想知道这里是否有人在使用UI插件/gem(与django上的django-rosetta不同)来处理多个翻译器,其中一些翻译器不愿意或无法处理存储库中的100多个文件,处理语言数据。谢谢&问候,安德拉斯(如果您已经在ruby​​onrails-talk上遇到了这个问题,我们深表歉意) 最佳答案 有一个rails3branchofthetolkgem在github上。您可以通过在Gemfi

  5. ruby-on-rails - Rails 3 中的多个路由文件 - 2

    Rails2.3可以选择随时使用RouteSet#add_configuration_file添加更多路由。是否可以在Rails3项目中做同样的事情? 最佳答案 在config/application.rb中:config.paths.config.routes在Rails3.2(也可能是Rails3.1)中,使用:config.paths["config/routes"] 关于ruby-on-rails-Rails3中的多个路由文件,我们在StackOverflow上找到一个类似的问题

  6. ruby - 将差异补丁应用于字符串/文件 - 2

    对于具有离线功能的智能手机应用程序,我正在为Xml文件创建单向文本同步。我希望我的服务器将增量/差异(例如GNU差异补丁)发送到目标设备。这是计划:Time=0Server:hasversion_1ofXmlfile(~800kiB)Client:hasversion_1ofXmlfile(~800kiB)Time=1Server:hasversion_1andversion_2ofXmlfile(each~800kiB)computesdeltaoftheseversions(=patch)(~10kiB)sendspatchtoClient(~10kiBtransferred)Cl

  7. ruby - 如何将脚本文件的末尾读取为数据文件(Perl 或任何其他语言) - 2

    我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚

  8. ruby - 使用 Vim Rails,您可以创建一个新的迁移文件并一次性打开它吗? - 2

    使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta

  9. Ruby 写入和读取对象到文件 - 2

    好的,所以我的目标是轻松地将一些数据保存到磁盘以备后用。您如何简单地写入然后读取一个对象?所以如果我有一个简单的类classCattr_accessor:a,:bdefinitialize(a,b)@a,@b=a,bendend所以如果我从中非常快地制作一个objobj=C.new("foo","bar")#justgaveitsomerandomvalues然后我可以把它变成一个kindaidstring=obj.to_s#whichreturns""我终于可以将此字符串打印到文件或其他内容中。我的问题是,我该如何再次将这个id变回一个对象?我知道我可以自己挑选信息并制作一个接受该信

  10. ruby - 如何使用 Ruby aws/s3 Gem 生成安全 URL 以从 s3 下载文件 - 2

    我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A

随机推荐