Linux基础(vim、常用指令介绍)

news2024/12/23 13:29:01

Linux基础

  • 1、目录结构
  • 2、vi和vim
  • 3、常用指令
    • 运行级别
    • 找回密码
    • 帮助指令
    • 时间日期指令
    • 搜索查找
    • 文件目录操作
    • 磁盘管理指令
    • 压缩和解压缩
  • 4、组管理和组权限
    • 用户操作指令
    • 权限

1、目录结构

Linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。
在Linux世界里面,一切皆为文件。Linux将计算机硬件做成文件进行管理。
此处介绍部分常用目录,了解即可:

  • /bin 是Binary的缩写,此目录存放常用命令
  • /sbin s为Super User的意思,存放系统管理员使用的系统管理程序
  • /home 存放普通用户的主目录,在系统中,每个用户都会有属于自己的目录
  • /root 系统管理员目录,也称做超级权限者的用户主目录
  • /lib 系统开机所需最基本的动态连接共享库
  • /etc 所有系统管理所需配置文件和子目录
  • /user 用户的众多应用程序和文件放于此目录
  • /boot 存放启动Linux时使用的核心文件,包括一些连接文件以及镜像文件

2、vi和vim

vi是Linux中内置的文本编辑器,而vim则是从vi中发展出来的,其本质同样为文本编辑器。
vim具有程序编辑的能力,可以看做是V的增强版本,可以主动的以字体颜色辨别语法的正确性方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
vi和vim总共有三种模式:

  • 正常模式:用vim打开文件则直接进入该模式,该模式为默认模式。在此模式之中,可以使用键盘按键操控光标。
  • 插入模式:按下i 、I、o、O、a、A、r、R等任意字母后进入编辑模式。
  • 命令行模式:输入esc再输入**:**,在此模式中可以使用指令完成读取、存盘、替换、离开vim、显示行号等操作。

常用文件操作命令
创建或打开文件的指令为:

vim 文件名

读取指定文件:

cat 文件名

删除指定文件:

rm 文件名

命令模式中常用指令

  • :wq(保存并退出)
  • :q (仅退出)
  • :q! (强制退出)
  • :w (仅保存)
  • :set nu (显示行号)
  • :set paste(设置粘贴模式)

3、常用指令

运行级别

运行级别就是操作系统当前正在运行的功能级别,级别是从 0 到 6,另外加上S、s级别。
多数的桌面的 Linux 系统缺省的 runlevel 是 5,用户登陆时是图形界面,而多数的服务器版本的 Linux 系统缺省的 runlevel 是 3,用户登陆时是字符界面。

  • 运行级别0:关机,系统默认运行级别不能设为0,否则不能正常启动
  • 运行级别1:单用户工作状态,root权限,用于系统维护【找回丢失密码】
  • 运行级别2:多用户状态没有网络服务
  • 运行级别3:多用户状态有网络服务
  • 运行级别4:系统未使用,保留给用户
  • 运行级别5:图形界面
  • 运行级别6:系统重启,系统默认运行级别不能设为6,否则不能正常启动
  • S、s Single user mode

Single user mode(单用户模式):是在类似在Linux系统上工作时的一种拥有超级用户权限的模式。通常在开机选单给予1或S参数能进入这个模式。这个模式只在面对主机实体时才有机会透过开机选单进入,也因此确保超级权限授予的对象是能接触到主机的超级用户。此操作通常用于维护硬盘分区或更改超级用户密码等需在磁碟挂载前操作的维护。
关于单用户模式的简介和使用可以参考这篇文章,本文的定义也从此处引用:参考链接

涉及基本指令
切换运行级别

init 数字

查看当前运行级别

systemctl get-default

设置默认运行级别,系统内置默认3、5

systemctl set-default TARGET.target

找回密码

开机选择系统界面按下e,进入后找到对应位置,输入勾起的语句。
在这里插入图片描述
输入后按下ctrl+x,进入单用户模式。接着,在光标闪烁的位置中输入:mount -o remount, rw/(注意:各个单词间有空格),完成后按键盘的回车键(Enter)。
接着,在鼠标闪烁的位置中(最后一行中)输入:touch /.autorelabel(注意:touch与/后面有一个空格),完成后按键盘的回车键(Enter)
继续在光标闪烁的位置中,输入:exec /sbin/init(注意:exec与/后面有一个空格),完成后按键盘的回车键(Enter),等待系统自动修改密码。
完成后,系统会自动重启,新的密码生效了。

帮助指令

获得帮助信息

man 命令或配置文件

获得shell内置命令的帮助信息

help 命令

时间日期指令

date指令——显示当前日期
显示当前时间

date

显示当前年份

date + %Y

显示当前月份

date + %m

显示当前是哪一天

date + %d

显示显示显示当前年月日时分秒

date “+ %Y-%m-%d%H:%M:%S”

搜索查找

使用find指令进行搜索查找操作
按照指定的文件名查找模式查找该文件

find -name<查询方式>
find /home -name hello.txt  (查找home目录下的hello.txt文件)

查找属于指定用户名所有文件

find -user<用户名>
find/ -user nobody  (查找用户名为nobody的文件)

按照指定文件大小查找文件

find -size<文件大小>
find/ -size+200   (查找整个LInux系统下大于200M的文件,内容为+n则查找内容大于n、-n小于n、n等于n,单位有k、M、G)

locate快速定位文件路径

locate 搜索文件
locate hello.txt

文件目录操作

  • pwd (查看当前所在目录

  • cd (切换工作目录

  • mkdir (创建工作目录

  • mkdir -p 新目录的路径(创建多层

  • touch 文件名 (创建文件

  • rm(删除文件/文件夹):

    • -r (r选项表示递归,在删除文件.时必须使用-r)
    • -f (用户删除内容不会弹出提示表示force,强制删除。普通用有提示,所以一般普通用户只有root管理员用户删除内容用不到-f选项)
  • cat Linux路径(查询文件内容

  • cp [-r p] 参数1(表示:被复制的文件或文件夹) 参数2(表示:要复制去的地方)(语句作用:复制文件夹):

    • -r(复制目录,复制文件夹必须使用-r)
    • -p (保留文件属性)
  • mv 参数1 参数2 (移动文件/文件夹):参数1,Linux路径,表示被移动的文件或文件夹;参数2,Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在。

  • wc [-c -m -l -w] 文件路径(统计):

    • -l 统计行数
    • -w 统计单词数量
    • -c 统计bytes数量
    • -m 统计字符数量
  • echo 输出的内容(输出指定内容):被反引号**‘ ’**包围的内容会被当作命令执行,所以若要输出当前工作目录,要使用 echo ‘pwd`

  • history (查看已经执行过的历史命令,也可以执行历史指令

磁盘管理指令

Linux 磁盘管理好坏直接关系到整个系统的性能问题。
Linux 磁盘管理常用三个命令为 df、du 和 fdisk。

  • df(英文全称:disk free):列出文件系统的整体磁盘使用量
    df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
    选项与参数:
    • -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
    • -k :以 KBytes 的容量显示各文件系统;
    • -m :以 MBytes 的容量显示各文件系统;
    • -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
    • -H :以 M=1000K 取代 M=1024K 的进位方式;
    • -T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
    • -i :不用硬盘容量,而以 inode 的数量来显示
  • du(英文全称:disk used):检查磁盘空间使用量
    Linux du 命令也是查看使用空间的,但是与 df 命令不同的是 Linux du 命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的,这里介绍 Linux du 命令。
    选项与参数:
    • -a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
    • -h :以人们较易读的容量格式 (G/M) 显示;
    • -s :列出总量而已,而不列出每个各别的目录占用容量;
    • -S :不包括子目录下的总计,与 -s 有点差别。
    • -k :以 KBytes 列出容量显示;
    • -m :以 MBytes 列出容量显示;
  • fdisk:用于磁盘分区,fdisk 是 Linux 的磁盘分区表操作工具。
    选项与参数:
    • -l :输出后面接的装置所有的分区内容。若仅有 fdisk -l 时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来。

压缩和解压缩

gzip指令用于压缩文件,只能将文件压缩为*.gz文件,gunzip指令用于解压。

gzip 文件
gunzip 文件.gz

zip指令用于压缩文件,unzip指令用于解压。
压缩文件和目录:

zip [选项]XXX.zip

常用选项:
-r:递归压缩,即压缩目录

解压缩文件:

unzip [选项]XXX.zip

常用选项:
-d<目录>:指定解压后的文件的存放目录

tar指定打包文件,最后打包好的文件为.tar.gz文件

tar [选项] XXX.tar.gz 打包内容

选项:

  • -c:产生.tar打包文件
  • -v:显示详细信息
  • -f:指定压缩后的文件名
  • -z:打包同时压缩
  • -x:解包.tar文件

4、组管理和组权限

用户操作指令

显示当前目录pwd
关机重启命令

Shutdown -h now   立刻进行关机
Shudown -h 1      1分钟后关机
Shutdown -r now   现在重新启动计算机
halt              关机,作用和上面一样。
reboot            现在重新启动计算机
sync              把内存的数据同步到磁盘

切换用户登录和注销
注意:登录时尽量少用root帐号登绿,因为它是系统管理员,最大的权限,避免操作失误。可以利用普通用户登录,登录后再用su -用户名命令来切换成系统管理员身份。
切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键:ctrl + d。
注销用户:在提示符下输入logout
临时授权管理员身份
sudo 其他命令 (临时授权)
为普通用户配置sudo认证

  • 切换到root用户,执行visudo命令,自动通过vi打开:/etc/sudoers
  • 在文件最后添加:itheima ALL=(ALL)
  • NOPASSWD:ALL 其中NOPASSWD:ALL 表示使用sudo命令,无需使用密码
  • 通过wq指令保存退出 切换会普通用户
    ** 添加用户**
useradd 用户名
useradd -d 目录 用户名(指定用户文件的家目录)

添加、修改用户密码

passwd 用户名

修改密码

passwd 用户名

删除用户

userdel 用户名(保留用户家目录)
userdel -r 用户名(删除用户家目录)

查询用户

Id 用户名

查询当前用户

whoami

用户组

groupadd 组名 (新增组)
groupdel 组名 (删除组)
Useradd -g 用户组 用户名(增加用户时直接上组)
usermod -g 用户组 用户名 (修改用户的组)

改变用户所在组
在Linux中的每个用户必须属于一个组,不能独立组外。在linux中每个文件有所有者、所在组、其它组的概念。

usermod -g 组名 用户名
Usermod -d 目录名 用户名 改变该用户登陆的初始目录。

权限

  • 文件/目录所有者般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。
  • 除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组。改变用户所在组在添加用户时,可以指定将该用户添加到哪个组中,同样的,用root的管理权限可以改变某个用户所在的组。

Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。
在这里插入图片描述
只有文件所有者和超级用户可以修改文件或目录的权限。可以使用绝对模式(八进制数字模式),符号模式指定文件的权限。
使用权限 : 所有使用者
语法

chmod [-cfvR] [--help] [--version] mode file...

mode : 权限设定字串,格式如下 :

[ugoa...][[+-=][rwxX]...][,...]

其中:

  • u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
  • ‘+’ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
  • r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
    以上内容来源链接为菜鸟教程

权限数字表示
权限可以采用数字进行表示。第一位表示用户权限,第二位表示用户组权限,第三位表示其他用户权限。
在这里插入图片描述
修改权限

chown newowner 文件/目录 改变所有者
chown newowner:newgroup 文件/目录 改变所有者和所在组
chgrp newgroup 文件/目录 改变所有组

-R 如果是目录则使其下所有子文件或目录递归生效

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1461014.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

挑战杯 基于LSTM的天气预测 - 时间序列预测

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 机器学习大数据分析项目 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng-senior/po…

Vue状态管理库-Pinia

一、Pinia是什么&#xff1f; Pinia 是 Vue 的专属状态管理库&#xff0c;它允许支持跨组件或页面共享状态&#xff0c;即共享数据&#xff0c;他的初始设计目的是设计一个支持组合式API的 Vue 状态管理库&#xff08;因为vue3一个很大的改变就是组合式API&#xff09;,当然这…

设计师必看!哪个云渲染平台便宜?

渲染100 溜云库 渲云 平均价格 9.27 9.37 9.51 Camera007 5.81 6.1 4.7 Camera008 18.66 17…

Laravel02 路由基本概念和用法 给视图传递请求参数

Laravel02 路由基本概念和用法 1. 路由的基本概念2. 给视图传递请求参数 1. 路由的基本概念 routes文件夹下的web.php是用来定义路由规则的。 自己定义一个路径 2. 给视图传递请求参数 在laravel里使用一个辅助函数request来快速获取请求参数

Socket通信---Python发送数据给C++程序

0. Problems 很多时候实现某种功能&#xff0c;需要在不同进程间发送数据&#xff0c;目前有几种主流的方法&#xff0c;如 让python和C/C程序互相发送数据&#xff0c;其实有几种方法&#xff1a; 共享内存共享文件Socket通信 在这里只提供Socket通信的例程&#xff0c;共享…

C语言读取 ini 配置文件,修改/添加键值对

C语言读取 ini 配置文件&#xff0c;修改/添加键值对 C语言读取 ini 配置文件&#xff0c;对section中的键值对进行修改/添加&#xff0c;如果section不存在&#xff0c;则在末尾将新的section/key/value 添加进去。 一、了解什么是INI文件&#xff1f; ini 文件是Initializ…

2022蓝帽杯取证初赛

检材&#xff1a;https://pan.baidu.com/s/1ibOdxyCWeC5x0DQKjwcz7w?pwdvg6g 目录 手机取证1、627604C2-C586-48C1-AA16-FF33C3022159.PNG图片的分辨率是&#xff1f;&#xff08;答案参考格式&#xff1a;19201080&#xff09;2、姜总的快递单号是多少&#xff1f;&#xff0…

【2024软件测试面试必会技能】Jmeter_性能测试(4):性能测试脚本的优化

性能测试脚本的优化 以PHP论坛为例&#xff1a;http://47.107.178.45/phpwind/ 根据上一篇的性能测试(3&#xff09;的脚本进行优化&#xff1b;见下图&#xff1a; 如上图中&#xff0c;把发帖和回帖的事务添加到随机控制器中&#xff0c;登录操作添加到仅一次控制器中&…

yolov5转换成TensorRT推理过程笔记

笔记内容来自 B站 手写AI 一、用硬代码实现 GitHub - wang-xinyu/tensorrtx: Implementation of popular deep learning networks with TensorRT network definition API 安装python、cuda11.2、cudnn对应cuda11.2软件 1、在yolov5-master下训练完成后生成best.pt文件(训练时…

Vue模版语法之属性绑定v-bind

双大括号不能在 HTML 属性中使用。想要响应式地绑定一个属性&#xff0c;应该使用 v-bind 指令 1. 使用v-bind绑定属性 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>新建页面</title><sc…

Vue3实现带动画效果的tab栏切换

效果图如下所示&#xff1a; 实现思路&#xff1a; 其实很简单 1、首先切换tab栏时tab标签激活下标与对应显示内容下标要一致。 2、其次点击tab栏切换时更新下标 3、最后就是css添加动画效果 这样就了&#xff01;&#xff01;&#xff01; 上全部代码 <template><…

有方机器人 STM32智能小车 项目学习笔记1

今天开始学习有方机器人--智能小车项目&#xff0c;正点原子部分的学习先放一放&#xff0c;还是小车更有吸引力哈哈。 新建工程及工程模板搭建 新建工程须知 目前常用的 STM32 的开发方式主要有基于寄存器编程、基于标准库函数编程、基于 HAL 库编程这三种。 寄存器版本--…

滤波电阻器:用于能源系统和工业的高精度解决方案(1)?

滤波电阻器用于防止能源系统中的电源反馈。铝厂或钢铁厂中的大型感应冶炼厂会产生与电源频率的谐波。必须不惜一切代价让这些远离电网。过滤器&#xff0c;通常以 T 或 L 元素的形式用于此目的。中压电源输入端的吸收电路由电容和电感的串联连接组成&#xff0c;对谐波进行负载…

【每日一题】106. 从中序与后序遍历序列构造二叉树-2024.2.21

题目: 106. 从中序与后序遍历序列构造二叉树 已解答 中等 相关标签 相关企业 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: 输入:inorder = [9,3,15,20,7], pos…

Java Web(七)__Tomcat(二)

Tomcat工作模式 Tomcat作为Servlet容器&#xff0c;有以下三种工作模式。 1&#xff09;独立的Servlet容器&#xff0c;由Java虚拟机进程来运行 Tomcat作为独立的Web服务器来单独运行&#xff0c;Servlet容器组件作为Web服务器中的一部分而存在。这是Tomcat的默认工作模式。…

防御第六次作业-防火墙综合实验(av、url过滤、dns过滤)

目录 拓扑图&#xff1a; 要求&#xff1a; 8 9 10 11 拓扑图 要求 前7个要求在上一篇博客&#xff1b; 8.分公司内部的客户端可以通过域名访问到内部的服务器 9.假设内网用户需要通过外网的web服务器和pop3邮件服务器下载文件和邮件&#xff0c;内网的FTP服务器也需要…

【Vuforia+Unity】AR02-长方体物体识别

1.创建模型 选择多维长方体图&#xff0c;这个长方体是生活中的真实物体的拍摄图&#xff0c;提前把6个面拍摄好并裁剪干净。 官网创建模型https://developer.vuforia.com/targetmanager/project/targets?projectId0ddbb5c17e7f4bf090834650bbea4995&avfalse 设置长宽高…

Python开源项目周排行 2024年第4周

#2024年第4周2024年2月18日1Awesome-LLM一个精选的大型语言模型 (LLM) 资源列表&#xff0c;涵盖了以下内容&#xff1a; LLM 模型介绍 论文和代码 部署工具 应用场景 教程和示例 Awesome-LLM 的目标是帮助人们了解和使用 LLM 技术&#xff0c;并为 LLM 开发人员提供一个资源中…

从零开始学习PX4源码1(两个三维矢量如何转换成四元数)

目录 文章目录 目录摘要参考网址推导过程 摘要 本节主要记录px4如何从两个三维旋转矢量转换到四元数的过程&#xff0c;欢迎批评指正&#xff01;&#xff01;&#xff01; 参考网址 三维矢量转四元数 推导过程

【开源】JAVA+Vue.js实现高校学生管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 学生管理模块2.2 学院课程模块2.3 学生选课模块2.4 成绩管理模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 学生表3.2.2 学院课程表3.2.3 学生选课表3.2.4 学生成绩表 四、系统展示五、核心代码5.1 查询课程5.2 新…