• 【Linux操作系统】基础概念和常用指令(一)


    PS:我下面的操作都是基于Linux云服务器和Xshell远程连接来操作的(这里直接跳过安装)

    目录

    1.操作系统概述(OS)?

    2.为什么企业都选择Linux?

    3.Linux版本分类

     4.Linux登入root用户和新建普通用户

     5.常见快捷键

    6.常见指令

    6-1 显示工作目录的绝对路径:pwd

    6-2 显示目录内容列表 ls

    指令ll:

    6-3 更新已存在文件的时间信息和新建普通文件 touch 

     变式:创建一个空目录 mkdir

    6-4 Linux下的hello world  编译运行test.c

     6-5  选项 -l -a -d

    6-6 切换工作目录至dir  cd

    6-7 Linux下的文件:

    6-8: 改变工作目录 cd

     6-9 确定当前登入的用户 whoami

    6-10 删除命令 rm

    6- 10 查询某条命令的使用  man

    6-11 拷贝 cp


    1.操作系统概述(OS)?

    常见的操作系统:Windows,Mac,Linux,安卓,IOS 操作系统

    操作系统的作用:(取决于看的角度)

    用户的角度:为用户提供良好的运行环境(图形界面式还是命令行式来操控硬件)

    对开发者:管理各种软硬件资源

    windows是多用户的界面化操作系统;

    linux是多用户的命令行式操作系统,是支持共享使用的。

    为什么已经有了图形界面化的Linux操作系统,而我们还要费力的学习命令行式的Linux操作系统?

    1. 企业使用的是命令行式Linux操作系统(当出现一些问题时需要使用到指令)
    2. 指令的学习,更接近底层
    3. 指令略微快一点

    另外:要用指令就得先要有键盘,要用图形界面就得要有鼠标,在发展上,我们是先有键盘再发明鼠标的,所以这就意味着先有的命令行式才有的图形界面化式。

    2.为什么企业都选择Linux?

    因为Linux开发出来后,就对外公开了Linux内核,也就是说Linux是开源的,开源就意味着更安全,稳定,便宜,综合以上大家都选择了Linux作为公司企业开发的操作系统。

    实际上,Linux是在1991年由芬兰大学生林纳斯·托瓦兹开发出来的,比windows等操作系统晚了好久

    但是由于Linux的优秀,现在Linux还是广为开发人员认可.

    3.Linux版本分类

    1. 内核版本(技术层):3.6,3.8等各种各样的内核版本
    2. 发行版本(应用层):Ubuntu,kali,红旗,红帽,centos

    (1)Linux内核概念:实际就是托瓦兹写的操作系统代码,是真正意义上的操作系统代码

    (2)各种发行版本的差异(特点):

    Ubuntu:比较适合个人研究性质使用,入门学习

    kali:比较适合网络渗透和攻防使用

    红旗:国内的发行版本

    红帽:商业使用的收费版本

    centos:商业化的免费的操作系统

     4.Linux登入root用户和新建普通用户

    root用户的权限比较高,所以我们在日常学习一般是新创建普通用户来玩Linux。

    第一步:让我们登入root用户,注意:在购买云服务器时记得重置root用户密码为较为复杂且自己记得住的密码,复杂一点是防止恶意扫描,用来挖矿等不良活动。

    (1)填写云服务器提供的公网IP

     

    (2)填写公网IP下的root用户名

     

    但是前面的(1)(2)都可以用命令行来一步代替:

    ssh root@43.139.36.50

    (3)填写公网IP下root用户的密码

     

    (4)登入成功

     第二步:在root用户下创建一个普通用户

    1. //创建名为 name 的普通用户
    2. [root@vm-8-5-centos ~]# adduser name
    3. //为 用户名为 name 的账号设置密码
    4. [root@vm-8-5-centos ~]#passwd name
    5. //删除名为 li 的普通用户
    6. [root@vm-8-5-centos ~]# userdel -r name

     5.常见快捷键

    ctrl+Insert:复制

    shift+Insert:粘贴

    alt+enter:全屏

    ctrl+d:退出当前账号

    6.常见指令

    6-1 显示工作目录的绝对路径:pwd

    pwd [-LP]

     说明:

    全称:Print Working Directory(打印工作目录)

    作用:显示当前用户所在目录-- 工作目录 的绝对路径

    使用:

    1. //显示用户当前所在的目录
    2. [song@VM-8-5-centos ~]$ pwd
    3. /home/song

    6-2 显示目录内容列表 ls

    ls (选项) (参数)

    说明:

    全称:list

    作用:显示目录内容列表

    不同颜色代表的文件类型: 

    PS:这里的配色方案和Xshell和Linux有关系,我们不能强相关,但是可以参考一下

    举例: 

    PS: 

    指令ll:

    说明:

    全称:list -l

    作用:显示指定目录里面的内容和属性

    通过which 可以查看指令

     这也解释了ll命令的作用,其实就是ls -l的组合键/别名

    6-3 更新已存在文件的时间信息和新建普通文件 touch 

    touch (选项) (参数)

    说明:

    作用:

    1. 将已经存在的文件的时间标签更新为当前系统时间
    2. 新建一个空的普通文件

    那能不能看到文件被修改的历史时间信息呐?

    stat filename

    自我查找资料找出Access,Modify和Change 的区别.

     变式:创建一个空目录 mkdir

    本质就是在Linux目录上中创建新节点/路径

    mkdir dirname

     有时候我们想当前路径下创建一串路径:(带指定的-p选项创建一条路径)

    1. //创建一条路径
    2. mkdir -p p1/p2/p3

    6-4 Linux下的hello world  编译运行test.c

     如果我创建了一个test.c文件,我想在Linux下编译运行,我该怎么做呐?

    首先使用nano命令,打开Linux自带的文本编辑器:

    nano test.c
    

     6-5  选项 -l -a -d

    说明:

    -l : 显示文件内容列表及其更详细的文件属性

    -a:显示隐藏文件(Linux下以 开头的文件是隐藏文件)

    选项是绝大部分都是可以合并的

    PS:在每一个目录都存在一个名为 . 和名为 .. 的文件

     对比windows:

    -d:显示指定目录的信息,而非指定目录里面内容的信息

    ls默认情况下会显示目录里面的内容的信息,ls -d会显示目录的信息

     

    6-6 切换工作目录至dir  cd

    cd [-L|[-P [-e]]] [dir]

    6-7 Linux下的文件:

    linux下一切皆是文件

    文件=文件内容+文件属性(属性也是数据)

    因为空文件是有创建时间等属性的,所以空文件也是占磁盘空间的

    根目录: /

    Linux下通过cd ..一直回退,直到回退到根目录/则不能再回退

    windows下则是按<-一直回退到盘符结束.

    目录树:

    大部分的操作系统,组织文件的结构都是一颗多叉树,

    非叶子节点一定是目录文件

    叶子节点可能是目录文件也可能是普通文件.

    问题:为什么采用路径的方式可以唯一定位一个文件?

    答案:定位一个文件,无非就是回答两个问题:我在哪里?我是谁?通过这个Linux目录树的方式,每一个子节点都只有一个父节点,所以从根目录到目标文件都只有唯一的路径,这也就是绝对路径;

     

     绝对路径和相对路径:

    绝对路径:绝对指定的是绝对于根目录,起始位置已指定,比较官方,通常使用于配置文件

    相对路径:相对指的是相对于我当前所处的路径,起始位置没有指定,比较方便,日常使用.

    举例 执行a.out时通过绝对路径和相对路径的两种方式:

    安装tree指令:

    在root用户下执行这行指令即可安装tree指令:

    [root@VM-8-5-centos ~]# yum install -y tree

     tree指令:

    1. tree (选项) (参数)
    2. 1.作用:显示指定目录下所有的的文件,包括子目录下的所有文件

     

    6-8: 改变工作目录 cd

    说明: 

    全称:Change Directory

    作用:改变当前工作目录

    1. 1.切换工作目录至dir,dir可以是绝对路径也可以是相对路径
    2. 2.cd ..返回上级目录
    3. 3.cd ~ 和cd 都代表回到家目录
    4. 4.cd / 代表回到根目录
    5. 5.cd ../..代表回到上级的上级目录
    6. 6.cd /home/song/dir 使用的是绝对路径,而cd ..使用的是相对路径
    7. 7.cd -用来记录最近从哪里来的路径

    这里给大家举例一下cd -

     6-9 确定当前登入的用户 whoami

    1. [root@VM-8-5-centos ~]# whoami
    2. root

    普通用户和root用户:

    根目录: /

    家目录;

    1. 普通用户: /home/name
    2. root用户: /root

    6-10 删除命令 rm

    说明:

    Linux下没有类似Windows下的回收站,所以删掉了就是删掉了

    rm -rf 

    rm是一个强大的删除命令,系统不会给你任何的提示信息,直接删除目标文件或者目录,它会永久性的删除文件系统中的文件或目录 .

    选项:

    1. -r (recursion)递归删除,只要用于文件夹,删除指定目录下的所有文件或目录,包括子目录里的所有资源
    2. -f (force)强制删除,系统不给提示信息,使用得谨慎
    3. -i 系统给提示信息,询问下删除,使用-i可以有效防止误删除

    1. //通常删除的是空目录(不删非空目录)
    2. rmdir dirname
    3. //删除普通文件
    4. rm filename
    5. //递归删除
    6. rm -r dirname
    7. //强制删除
    8. rm -f dirname
    9. //递归并强制删除
    10. rm -rf dir

    下面给大家看一下-i选项的魅力:(如果你有特殊的需求,不嫌弃它麻烦的话)
     

    1. [song@VM-8-5-centos ~]$ rm -r -i dir
    2. rm: descend into directory ‘dir’? Y
    3. rm: remove regular empty file ‘dir/test.c’? Y
    4. rm: remove regular empty file ‘dir/dir’? Y
    5. rm: remove directory ‘dir’? Y

    你知道啥叫从删库到跑路吗?这就是指的我们Linux程序员的rm -rf /   删除根目录的骚操作。(这个别在root用户下上手使用哦) 因为Linux是一个企业后端服务器,上面会部署很多重要的服务。

    6- 10 查询某条命令的使用  man

    当我们有某条命令不知道怎么使用的时候,我们可以通过指令来查询man手册(问一下这个男人),但是我们第一步得直到如何安装man手册:

    说明:

    作用:man是一个查看命令,是一个查看系统调用和C接口的手册,man手册是有编号的

    说到这里你肯定还是不清楚man命令的具体使用:

    不如我们问这个man,让它告诉我们man指令的相关信息吧:

     man man

    然后我们看到了man的更详细的信息:

    我们现在只需关注man手册的前三条:

    1. shell 命令
    2. 系统调用
    3. C语言库函数调用

     

     

    man默认是从1号手册开始查找,找到就停止

    man命令可以根据指定手册查找 man  1/2/3 命令/接口/C

     当我们想关闭man手册,回到LInux命令行界面只需输入Q或q即可

    6-11 拷贝 cp

    cp (选项) src dest

    说明:

    全称:copy

    作用:#1拷贝普通文件夹  #拷贝目录

    1. //普通文件的拷贝
    2. cp test.c name.c
    3. //目录的拷贝:递归拷贝目录
    4. cp -r olddir newdir
    5. //src和dest都可以带上路径
    6. 1.dest不带上文件名也是可以的,但是该目录下名和src相同: cp test.c ../
    7. 2.dest也可以带上文件名: cp test.c ../name.c
    8. 3.如果有一些文件时不属于你的,可-f强制拷贝: cp -rf test.c name.c

    好吧,今天就学到这里吧😁😁

  • 相关阅读:
    Python使用yield协程实现生产者消费者问题
    Spring Cloud Alibaba【创建支付服务生产者、创建服务消费者 、Dubbo和OpenFeign区别 、微服务接入OpenFeign】(二)
    ubuntu 显卡驱动、Cuda、Cudnn、Pytorch安装教程
    “.NET视频总结:认识框架的结构和组件,掌握开发工具的奥妙“
    如何学习创建和使用 Java 归档(JAR)文件
    macOS使用官方安装包安装python
    2022安洵杯babybf
    指静脉处理综合代码(orz)
    Python爬虫框架Scrapy:实现高效数据抓取
    【笔记】开发项目验收审核总结
  • 原文地址:https://blog.csdn.net/qq_64428099/article/details/126910680