Linux相关命令使用

一、Vi与Vim编辑器

1、正常模式

以vim打开一个档案就直接进入一般模式了,在这个模式中,你可以使用【上下左右】移动光标,可以使用【删除字符】或【删除整行】来处理档案内容,也可以使用【复制、粘贴】来处理你的文件数据。

2、插入模式

按下i、I、o、O、a、A、r、R等任何一个字母之后才会进入编辑模式,一般来说按i即可。

3、命令行模式

按ESC后再输入命令,这个模式可以提供你相关的指令,完成读取、存盘、替换、离开vim、显示行号等的动作。

4、快捷键

(1)拷贝当前行:yy(拷贝当前行向下的5行: 5yy,并粘贴则按p)
(2)删除当前行:dd(删除当前行向下的5行:5dd)
(3)在文件中查找某个单词(命令行下/关键字,回车查找,按n就是查找下一个)
(4)设置文件的行号,取消文件的行号(命令行下:set nu和set nonu)
(5)在一般模式下,使用快捷键到该文档的最末行【G】和最首行【gg】
(6)在一般模式下,撤销这个动作:u
(7)在一般模式下,将光标移动到某一行,输入20,再按shift+g
(8)还有很多.......

二、关机、重启和用户登录注销

1、关机与重启命令

(1)shutdown -h now:立刻进行关机
(2)shutdown -h 1:一分钟后关机
(3)shutdown -r now:现在重启计算机
(4)halt:关机
(5)reboot:重启
(6)sync :把内存的数据同步到磁盘(不管是重启还是关闭,首先运行sync指令,把内存中的数据写到磁盘中,小心驶得万年船)

2、用户登录注销

登录尽量少用root账号登录,因为它是系统管理员,最大的权限,避免操作失误,可以利用普通用户登录,登录后再用【su - 用户名】命令来切换成系统管理员身份;在提示符下输入logout即可注销用户,在图形运行级别无效,在运行级别3下有效。

三、用户管理

1、添加用户

useradd 用户名
比如添加一个用户milan,默认该用户的家目录在/home/milan
当创建用户成功后,会自动创建和用户同名的家目录
可以通过useradd -d 指定目录 新的用户名,给新创建的用户指定家目录

2、指定/修改密码

passwd 用户名
比如给milan指定密码   passwd milan
补充,显示当前用户所在的目录pwd

3、删除用户

userdel 用户名
删除用户milan,但是要保留家目录,userdel milan,删除用户以及用户主目录,userdel -r milan
补充,一般情况下,建议保留家目录

4、查询用户信息指令

id 用户名
比如查询root信息   id root
补充,用户不存在则返回无此用户

5、切换用户

su - 切换用户名
比如,创建一个用户Jack,指定密码,然后切换到Jack
useradd jack
passwd jack
su - jack
补充,从权限高的用户切换到权限低的用户不需要输入密码,反之需要
当需要返回到原来用户时,使用exit/logout指令

6、查看当前用户/登录用户

whoani/ who am i

7、新增组

groupadd 组名

8、删除组

groupdel 组名

9、划分用户于组

增加用户时直接加上组,指令:useradd -g 用户组 用户名
比如,增加一个用户zwj直接将他指定到wudang,useradd -g wudang zwj

10、修改用户的组

usermod -g 用户组 用户名
比如创建一个组mojiao,把zwj放入到mojiao,usermod -g mojiao zwj

11、用户和组相关文件

①/etc/passwd文件:

用户的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell

②/etc/shadow文件

口令配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

③/etc/group文件

组的配置文件,记录Linux包含的组的信息
每行含义:组名:口令:组标识号:组内用户列表

四、实用指令之文件目录类

1、指定运行级别

0:关机
1:单用户【找回丢失密码】
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启
常用运行级别是3/5,也可以指定默认运行级别,init [0123456],通过init来切换不同的运行级别,然后关机

2、新版本运行级别说明

/etc/inittab文件中进行了简化
multi-user.target:analogous to runlevel 3
graphical.target:analogous to runlevel 5
多用户图形界面转换为多用户文本界面:systemctl get-default multi-user.target
反之,systemctl get-default  graphical.target

3、找回root密码

在终端输入reboot,重启到一定界面按下E进入内核编辑界面,在Linux参数行的最后面追加【re.break】参数,然后按下【CTRL+X】运行修改过的内核程序,大约30S即可进入紧急救援模式,依次执行命令,等待系统重启操作完毕,即可使用新密码。

4、帮助指令

①man
man【命令或配置文件】(功能描述:获得帮助信息),比如查看ls命令的帮助信息,man ls
在Linux下,隐藏文件是以“.”开头,选项可以组合使用,比如ls -al,比如ls -al /root

②help

help命令(功能描述:获得shell内置命令的帮助信息),比如查看cd命令的帮助信息 help cd

5、文件目录类

pwd指令

语法:pwd(功能:显示当前工作目录的绝对路径)

ls指令

语法:ls 【选项】【目录或是文件】
-a:显示当前目录所有的文件和目录,包括隐藏的
-l:以列表的方式显示信息

cd指令

语法:cd 【参数】(功能:切换到指定目录)
cd ~或者cd:回到自己的家目录
cd ..:回到当前目录的上一级目录

mkdir指令

创建目录,基本语法:mkdir 【选项】 要创建的目录
-p:创建多级目录
比如:mkdir /home/dog             mkdir -p /home/animal/tiger

rmdir删除空目录指令

语法:rmdir 【选项】要删除的目录
比如删除一个目录:rmdir /home/dog
rmdir删除的是空目录,若目录下有内容是无法删除的,需要用rm -rf 要删除的目录,比如上述的animal,用rmdir是不行的,animal含有tiger,需要rm -rf /home/animal,使用需要谨慎

touch指令

创建空文件,语法:touch 文件名称
比如在home目录下,创建一个空文件hello.txt,touch hello.txt

cp指令

拷贝文件到指定目录,语法:cp 【选项】source dest
-r:递归复制整个文件夹
比如:将/home/hello.txt.拷贝到/home/bbb目录下
mkdir bbb         cp hello.txt bbb/
强制覆盖不提示:\cp

rm指令

移除文件或目录,语法:rm 【选项】 要删除的文件或目录
-r:递归删除整个文件夹
-f:强制删除不提示
比如将/home/hello.txt删除:rm /home/hello.txt
递归删除整个文件夹/homeb:rm -r  /homeb

mv指令

移动文件与目录或重命名
语法:mv oldnamefile newnamefile    重命名
mv /temp/movefile  /targetfolder   移动文件

cat指令

cat查看文件内容,语法:cat 【选项】 要查看的文件
-n:显示行号
cat只能浏览文件,而不能修改文件,为了浏览方便,一般会带上管道命令 |more

more指令

基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容,more指令内置了若干快捷键,语法:more  要查看的文件
空白键:向下翻一页
enter:向下翻【一行】
q:立刻离开more,不再显示
CTRL+F:向下滚动一屏
CTRL+B:返回上一屏
=:输出当前行的行号
:f:输出文件名和当前行的行号

less指令

功能与more类似,但是比more指令更加强大,支持各种显示终端,less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载的内容,显示大型文件具有较高效率,语法:less 要查看的文件
空白键:向下翻一页
[pagedown]:向下翻一页
[pageup]:向上翻一页
/字串:向下搜寻字串,n:向下查找,N:向上查找
?字串:向上搜寻字串,n:向上查找,N:向下查找
q:离开less

echo指令

输出内容到控制台,语法:echo 【选项】 【输出内容】
比如,输出环境变量:echo $HOSTNAME

head指令

显示文件的开头部分内容,默认情况下head指令显示文件的前十行
语法:head 文件            head -n 5 文件(查看文件头5行内容,5可以改)

tail指令

显示文件的尾部部分内容,默认情况下tail指令显示文件的前十行
语法:tail 文件                 tail -n 5 文件(查看文件尾5行内容,5可以改)
tail -f 文件(实时追踪该文档的所有更新)

>指令和>>指令

输出重定向和>>追加
ls -l > 文件(列表的内容写入文件中,可覆盖)
ls -al >> 文件(列表的内容追加到文件末尾)
cat 文件1 > 文件2(将文件1的内容覆盖到文件2)
echo “内容” >> 文件

In指令

软连接/符号链接,类似windows里的快捷方式,主要存放了链接其他文件的路径
语法:In -s [原文件或目录] [软链接名](给原文件创建一个软链接)
比如,在/home目录下创建一个软链接myroot,链接到/root目录,假设已在home目录, In -s /root /myroot

history指令

查看已经执行过历史命令,也可以执行历史指令
语法:history (查看已经执行过历史命令)
比如:显示所有:history
显示10个:history 10
执行历史编号为5的指令:!5

五、实用指令之时间日期类、搜索查找类

date指令

基本语法:date(显示当前时间)
    date + %Y(显示当前年份)
    date + %m(显示当前月份)
    date + %d(显示当前是哪一天)
    date "+%Y-%m-%d %H:%M:%S"(显示年月日时分秒)
    date -s 字符串时间(设置日期)

cal指令

查看日历指令,基本语法:cal 【选项】,不加选项显示本月日历
cal 2023 显示整年日历

find指令

find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端
    基本语法:find 【搜索范围】 【选项】
    -name<查询方式>     按照指定的文件名查找模式查找文件
        如 find /home -name hello.txt

    -user<用户名>       查找属于指定用户名所有文件
        如find /opt -user root|more

    -size<文件大小>    按照指定的文件大小查找文件
        如find / -size +200M(+n大于,-n小于,n等于)


locate指令

快速定位文件路径,利用事先建立的系统中所有文件名称以及路径的locate数据库实现快速定位给定的文件,locate无需遍历整个文件系统,查询速度较快,为了保证查询结果的准确度,管理员必须定期更新locate时刻。
    语法:locate 搜索文件
    由于locate基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库

which指令

可以查看某个指令在哪个目录下

grep指令和管道符号|

grep 过滤查找,管道符“|”,表示将前一个指令的处理结果输出传递给后面指令处理
    基本语法:grep 【选项】 查找内容 源文件
    -n     显示匹配行及行号
    -i       忽略字母大小写
    如在hello.txt文件查找yes所在行并且显示行号
    grep -n "yes" hello.txt   或者 cat hello.txt | grep -n "yes"

六、实用指令之压缩和解压类

gzip/gunzip指令

gzip用于压缩文件,gunzip用于解压
    基本语法:gzip 文件(压缩文件,只能压缩为gz类型)  gunzip 文件.gz(解压)
    如将home目录下hello.txt压缩:gzip /home/hello.txt
    解压:gunzip /home/hello.txt.gz

zip/unzip指令

zip用于压缩文件,unzip用于解压,在项目打包发布中很有用
    zip 【选项】 XXX.zip  将要压缩的内容(压缩文件和目录)
    unzip 【选项】 XXX.ZIP (解压)
    -r:递归压缩,压缩目录(zip)
    -d<目录>:指定压缩后文件的存放目录
    将home下所有文件/文件夹进行压缩成myhome.zip
    zip -r myhome /home/【将home目录及其包含的文件和子文件夹都压缩】
    将myhome.zip解压到/opt/tmp目录下
    mkdir /opt/tmp【创建】
    unzip -d /opt/tmp /home/myhome.zip

tar指令

打包指令,最后打包后的文件是.tar.gz的文件
    基本语法:tar 【选项】 XXX.tar.gz 打包的内容(打包目录,压缩后的文件格式.tar.gz)
    压缩多个文件,将/home/pig.txt和/home/cat.txt压缩pc.tar.gz
    tar -zvcf pc.tar.gz /home/pig.txt  /home/cat.txt
    将/home的文件夹压缩成myhome.tar.gz
    tar -zvcf muhome.tar.gz /home/
    将pc.tar.gz解压到当前目录
    tar -zxcf pc.tar.gz
    将myhome.tar.gz解压到/opt/tmp2目录下
    tar -zxcf /home/myhome.tar.gz  -C /opt/tmp2

七、权限管理

1、权限的基本介绍

ls -l 中显示的内容如下
    -rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
        1:文件(硬连接数)目录(子目录数)
        root:用户
        root:组
        1213:文件大小(字节),如果是文件夹,显示4096字节
        Feb 2 09:39:最后修改日期
        abc:文件名

    0-9位说明
    1.第0位确定文件的类型(d,-,l,c,b)
        l是链接,相当于Windows的快捷方式
        d是目录,相当于Windows的文件夹
        c是字符设备文件,鼠标,键盘
        b是块设备,比如硬盘

    2.第1-3位确定所有者(该文件的所有者)拥有该文件的权限
    3.第4-6位确定所属组(同用户组的)拥有该文件的权限
    4.第7-9位确定其他用户拥有该文件的权限

2、rwx权限详解,难点

rwx作用到文件
        1.r:读取查看
        2.w:可以修改,但不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件
        3.x:可以被执行

    rwx作用到目录
        1.r:可以读取,ls查看目录内容
        2.w:可以修改,对目录内创建+删除+重命名
        3.x:可以进入该目录

可以用数字表示为:r = 4 w = 2 x = 1,即rwx = 7

2、修改权限——chmod

通过chmod指令,可以修改文件或者目录的权限

第一种方式:+,-,=变更权限
    u:所有者,g:所有组,o:其他人,a:所有人(u、g、o的总和)
        chmod u=rwx,g=rx,o=x 文件/目录 
        chmod o+w 文件/目录
        chmod a-x 文件/目录

    第二种方式:通过数字变更权限
        r=4 w=2 x=1 rwx=7
        chmod u=rwx,g=rx,o=x 文件目录名
        相当于chmod 751 文件目录名

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

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

相关文章

训练DAMO-YOLO(damoyolo_tinynasL25_S.py)

文章目录 参考链接1 准备数据1.1 转为COCO格式1.2 指明数据路径 2 设置训练配置文件&#xff0c;在configs/damoyolo_tinynasL25_S.py进行如下两块修改2.1 关于训练参数的设置2.2 根据自己数据集设置 3 开始训练4 调用tools/eval.py进行测试5 训练时可能遇到的报错5.1 RuntimeE…

前端JS实现全屏和退出全屏的效果

全屏效果想必我们都很清楚把&#xff0c;平时追剧看电视剧什么都会使用全屏方便我们看&#xff0c;我们键盘的第一个键esc可以退出全屏&#xff0c;那么我们如何用js实现全屏的办法呢&#xff1f; 设置全屏 Document.requestFullscreen()&#xff0c;该方法用于异步请求使元素…

详解Matlab深度学习进行波形分割

&#x1f517; 运行环境&#xff1a;Matlab &#x1f6a9; 撰写作者&#xff1a;左手の明天 &#x1f947; 精选专栏&#xff1a;《python》 &#x1f525; 推荐专栏&#xff1a;《算法研究》 &#x1f510;#### 防伪水印——左手の明天 ####&#x1f510; &#x1f497; 大家…

【DB】Redis缓存优化策略之,缓存预热与缓存清除

文章目录 1、什么是缓存优化&#xff1f;2、缓存预热3、缓存清除/更新4、reids缓存预热与清除5、总结 1、什么是缓存优化&#xff1f; 缓存是一种数据存储技术&#xff0c;用于存储经常访问的数据&#xff0c;以便在需要时快速获取。通过缓存数据&#xff0c;可以减少数据的访…

mysql进阶-深度为2的B+Tree树能存储多少行数据?

目录 1. 非叶子节点计算 2. 叶子节点存储的是完整的数据。 3. 整体计算 BTree树需要计算有叶子节点和非叶子节点。 假设一张商品表的数据结构如下&#xff1a; CREATE TABLE t_good (good_id int(12) NOT NULL AUTO_INCREMENT COMMENT 主键,good_name varchar(20) DEFAULT…

深度学习的基本概念汇总

这里小小总结一下看论文时常见到的名词&#xff0c;不用再一个个搜索啦&#xff01;&#xff01;&#xff01; 1.batch size batch size是指在训练集中取的样本数&#xff0c;batch的size设置的不能太大也不能太小&#xff0c;因此实际工程中最常用的就是mini-batch&#xff0c…

C#编程-实现委托

实现委托 委托是可以存储对方法的引用的对象。在C#中,委托允许您动态地改变类中方法的引用。 考虑咖啡售货机的示例,它配置不同口味的咖啡,例如卡布奇诺咖啡和黑咖啡。在选择所需口味的咖啡时,售货机决定混合各种成分,例如奶粉、咖啡粉、热水、卡布奇诺咖啡粉。所有的材…

.Net Core 使用 AspNetCoreRateLimit 实现限流

上一篇文章介绍过ASP.NET Core 的 Web Api 实现限流 中间件-CSDN博客 使用.NET 7 自带的中间件 Microsoft.AspNetCore.RateLimiting 可以实现简单的Api限流&#xff0c;但是这个.NET 7以后才集成的中间件&#xff0c;如果你使用的是早期版本的.NET&#xff0c;可以使用第三方库…

React函数式组件学习笔记

React是一种用于构建用户界面的JavaScript库&#xff0c;它采用组件化的方式来构建复杂的UI。在React中&#xff0c;函数式组件是一种声明式的方式去描述UI的状态和行为。 React的特性 1.声明式设计-React采用声明范式&#xff0c;可以轻松描述应用 2.高效-React通过对DOM的模…

LaTeX系列1——主结构

初学&#xff0c;可交流&#xff0c;轻喷 \documentclass{book} \begin{document} \title{Book Title} \author{Author Name} \date{\today} \maketitle\chapter{Introduction} This is the introduction chapter of the book.\section{First Section} The first section of t…

【算法】使用栈解决一系列算法题(匹配、表达式、模拟)(C++)

1. 前言&#xff08;栈适用于解哪些题&#xff1f;&#xff09; 栈适合解决需要后进先出&#xff08;LIFO&#xff09;的结构的算法题&#xff0c;例如&#xff1a; 括号匹配问题&#xff1a;判断给定字符串中括号是否匹配。表达式求值问题&#xff1a;将表达式转换为后缀表达…

笙默考试管理系统-MyExamTest----codemirror(71)

笙默考试管理系统-MyExamTest----codemirror&#xff08;71&#xff09; 目录 一、 笙默考试管理系统-MyExamTest----codemirror 二、 笙默考试管理系统-MyExamTest----codemirror 三、 笙默考试管理系统-MyExamTest----codemirror 四、 笙默考试管理系统-MyExamTest---…

C++/WinRT 中的字符串处理

利用 C/WinRT&#xff0c;你可以使用 C 标准库宽字符串类型&#xff08;如 std::wstring&#xff09;调用 Windows 运行时 API&#xff08;注&#xff1a;不要使用窄字符串类型&#xff0c;例如 std::string&#xff09;。 C/WinRT 确实有名为 winrt::hstring 的自定义字符串类…

js 常用基础 老写不出来的问题记录--持续更新

1、result返回一个数组 数组包含多个对象数组对象 要这个数组对象的其中两个属构成新的数组对象 这个时候就使用到了map函数 map可以映射原本数组中的每个元素 返回一个新的数组 result.map(item > { return { id:item.id, name:item.talentsName }})//定义新数组的每项数…

《每天一分钟学习C语言·十二》各种指针问题

1、 int arr; int * restrict pt &arr; *pt 100; *arr 10;注&#xff1a;restrict只能修饰指针&#xff0c;被restrict修饰的指针指向一块内存后这块内存就归这个指针管理了&#xff0c;其他任何指针都不能修改这块内存的内容&#xff0c;这是一个约定&#xff0c;当…

vue+js 实现将变量参数写至Cookie中,并进行读取,可以一次性写入多个值

vuejs 实现将变量参数写至cookie中&#xff0c;并进行读取&#xff0c;可以一次性写入多个值 【使用Vue和JavaScript将变量参数写入cookie并进行读取的示例代码】 <template><div><button click"writeToCookie">写入Cookie</button><but…

BGP安全特性详解(不看后悔!!!)

BGP安全特性 一、MD5认证 BGP认证只支持MD5认证&#xff0c;没有明文认证&#xff1b;BGP报文中没有设计认证字段&#xff0c;认证信息是存放到TCP报文中的option字段携带。 配置命令&#xff1a; peer x.x.x.x password cipher xxxx 二、GTSM GTSM&#xff0c;有效防止基…

微信公众号注册(详细图文教程)

目录 一、公众号注册准备1.1 准备事项1.2 个人注册1.3 企业注册 二、公众号注册2.1 基本信息填写2.2 选择类型2.3 信息登记2.4 公众号信息2.5 修改头像2.6 自动回复消息 三、总结 一、公众号注册准备 1.1 准备事项 公众号名称&#xff1a;公众号名称可以由中文、英文、数字、…

李宏毅LLM——ChatGPT原理剖析

文章目录 Chat-GPT引言关键技术——预训练研究问题玩文字冒险游戏 ChatGPT原理剖析 Chat-GPT引言 直观感受&#xff1a;结果有模有样、每次输出结果都不同、可以追问、幻想出的答案误解&#xff1a;罐头回答、答案是网络搜索的结果真正做的事&#xff1a;文字接龙&#xff0c;…

Spring Cloud中的提供者与消费者

在服务调用关系中&#xff0c;会有两个不同的角色&#xff1a; 服务提供者&#xff1a;一次业务中&#xff0c;被其它微服务调用的服务。&#xff08;提供接口给其它微服务&#xff09; 服务消费者&#xff1a;一次业务中&#xff0c;调用其它微服务的服务。&#xff08;调用…