当前位置: 首页 > news >正文

【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用户下创建一个普通用户

//创建名为 name 的普通用户
[root@vm-8-5-centos ~]# adduser name

//为 用户名为 name 的账号设置密码
[root@vm-8-5-centos ~]#passwd name

//删除名为 li 的普通用户
[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(打印工作目录)

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

使用:

//显示用户当前所在的目录

[song@VM-8-5-centos ~]$ pwd
/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选项创建一条路径)

//创建一条路径
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指令:

tree (选项) (参数)

1.作用:显示指定目录下所有的的文件,包括子目录下的所有文件

 

6-8: 改变工作目录 cd

说明: 

全称:Change Directory

作用:改变当前工作目录

1.切换工作目录至dir,dir可以是绝对路径也可以是相对路径

2.cd ..返回上级目录

3.cd ~ 和cd 都代表回到家目录

4.cd / 代表回到根目录

5.cd ../..代表回到上级的上级目录

6.cd /home/song/dir 使用的是绝对路径,而cd ..使用的是相对路径

7.cd -用来记录最近从哪里来的路径

这里给大家举例一下cd -

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

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

普通用户和root用户:

根目录: /

家目录;

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

6-10 删除命令 rm

说明:

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

rm -rf 

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

选项:

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

//通常删除的是空目录(不删空目录)
rmdir dirname

//删除普通文件
rm filename

//递归删除
rm -r dirname

//强制删除
rm -f dirname

//递归并强制删除
rm -rf dir

下面给大家看一下-i选项的魅力:
 

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

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

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

//安装man手册
yum install -y man-pages

更多man命令的信息请跳转这里

6-11 拷贝 cp

cp (选项) src dest

说明:

全称:copy

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

//普通文件的拷贝

cp test.c name.c

//目录的拷贝:递归拷贝目录
cp -r  olddir newdir

//src和dest都可以带上路径

1.dest不带上文件名也是可以的,但是该目录下名和src相同: cp test.c ../

2.dest也可以带上文件名: cp test.c ../name.c

3.如果有一些文件时不属于你的,可-f强制拷贝: cp -rf test.c name.c

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

相关文章:

  • 类和对象·默认成员函数
  • Elastic Stack(elk+filebeat)
  • PyTorchの可视化工具
  • LeetCode279:完全平方数,动态规划解法超过46%,作弊解法却超过97%
  • docker安装以及运行nacos、rabbitmq、MySQL容器小记
  • S7-200SMART PLC进行MODBUS通信轮询时掉站处理和错误信息提取的具体方法演示
  • Transformer - Attention Is All You Need - 跟李沐学AI
  • c语言qsort函数使用教程
  • Android修行手册 - TabLayout全解析(下)-监听和示例
  • Java面试高频面试题总结
  • 手把手教你电机FOC控制【一】
  • 【Java面向对象】封装的认识与实现
  • 分布式限流不会用?一个注解简单搞定
  • Linux系统运维排故思路参考手册
  • 华为OD机考:0030-0031-n*n数组中二进制的最大数、整数的连续自然数之和
  • Apache Spark Streaming 使用实例
  • gitlab-ci配置详解(一)
  • Java读取Properties文件的六种方法
  • Java-详解HashMap
  • KMP算法及优化
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • Spark学习笔记之相关记录
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 记一次和乔布斯合作最难忘的经历
  • 七牛云假注销小指南
  • 人脸识别最新开发经验demo
  • 一份游戏开发学习路线
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​1:1公有云能力整体输出,腾讯云“七剑”下云端
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​Python 3 新特性:类型注解
  • # include “ “ 和 # include < >两者的区别
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • %@ page import=%的用法
  • (1)(1.11) SiK Radio v2(一)
  • (C++17) optional的使用
  • (Git) gitignore基础使用
  • (七)理解angular中的module和injector,即依赖注入
  • (十八)SpringBoot之发送QQ邮件
  • (十二)Flink Table API
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (学习总结16)C++模版2
  • (一)Neo4j下载安装以及初次使用
  • (译)2019年前端性能优化清单 — 下篇
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .NET COER+CONSUL微服务项目在CENTOS环境下的部署实践
  • .net core webapi 大文件上传到wwwroot文件夹
  • .NET Core中的时区转换问题
  • .NET MAUI Sqlite数据库操作(二)异步初始化方法
  • .NET构架之我见
  • .php结尾的域名,【php】php正则截取url中域名后的内容