【linux】图文并茂,让你轻松掌握Linux基本指令

news2024/11/17 8:38:39

目录

一,前提

二, 在root身份下,管理用户

1.  判断身份 

2. 创建用户

3. 销毁用户

三,文件增,删,移动指令

 1. pwd——查看路径

 2. ps ——打开文件目录

 3. touch——创建文件

 4. nano——打开文件

 5. ls -l  ——以列表形式打印该目录下文件的属性​编辑

 6. ls -a ——显示隐藏文件

 7. cd ——更改路径 

1.  cd + 新路径

 2.  通过回退机制, cd + .. 

 8. 写一段简单的c程序

1. 创建一个test.c 文件

2. nano  test.c 进入test.c文件进行代码编写

3.  执行生成的可执行文件

 9. which + 指令 ——找到指令所在的路径

1. alias ——取别名

 10 . touch 指令

 11. mkdir —— 创建目录

 12.  rmdir & rm

1. rmdir ——删除空目录

 2. rm——删库跑路

 13 . man——手册指令

 14. cp —— 拷贝指令

1. 拷贝单个文件

2. 拷贝目录 cp -rf

 15. mv——剪切

1. 移动文件

2. 对文件重命名

三, 查看,文件处理指令

  16.  查看指令

1. cat 

2. more 指令

 3.   less 指令(推荐)

4. 总结

  17.  局部查看

1. head  ——查看前面10(默认)行内容

2. tail   —— 查看后10(默认)行内容

3.  查看中间数据

 前提须知

  18.时间相关的指令

date显示

2.在设定时间方面

3.时间戳

  19. cal —— 日历指令

  20. find——查找文件(重要)

  21. grep——文件行查找指令

  22. zip  &  unzip

1.  zip —— 压缩

 2. unzip —— 解压

​编辑

  23. tar ——打包 & 解包

 1. 打包与压缩的区别

  24. 热键


一,前提

1. 服务器: 一台云服务器(阿里云先嫖一个月),本文配置选centos7.6。

2. 重设root密码:当我们购买好云服务器后(这里以阿里云为例),重置为较为复杂的密码(我们拷贝一份所买云服务器的公网IP)。

3. 下载Xshell: 方便远程访问服务器

4. 安装Xshell:跟着默认走就行,安装成功后开始

(注:XShell 下的复制粘贴:

复制 : ctrl + insert ( 有些同学的 insert 需要配合 fn 来按 )
粘贴 : shift + insert
ctrl + c / ctrl + v 是不行的)

二, 在root身份下,管理用户

    目的:作为小白的我们,root身份权限太大了,出错容易导致服务器崩溃,所以需要创建子用户。

1.  whoami——判断身份 

2. 创建用户

 步骤如下:

3. 销毁用户

 步骤如下:

三,文件增,删,移动指令

1. pwd——查看路径

 

 2. ls ——打开当前目录

 我们如果发现没有出现目录,那是因为内部没有创建文件,所以就显示没有。

3. touch——创建文件

touch  [文件名]

 4. nano——打开文件

比如:这里有一个test.c文件,我们打开指令是:

用法: nano test.c 

注意:如果一次使用nano 会发现找不到文件,我们需要切换root身份去输入

Ubuntu / Debian:

apt-get install nano -y

CentOS / Fedora:

yum -y install nano

等待安装成功即可。)

5. ls -l  ——以列表形式打印该目录下文件的属性

 6. ls -a ——显示隐藏文件

功能 :对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
常用选项:(不用记住,以后忘了再查)
-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-d 将目录象文件一样显示,而不是显示其下的文件。 如: ls –d 指定目录
-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
-k k 字节的形式表示文件的大小。 ls –alk 指定文件
-l 列出文件的详细信息。
-n 用数字的 UID,GID 代替名称。 (介绍 UID GID
-F 在每个文件名后附上一个字符以说明该文件的类型, “*” 表示可执行的普通文件; “/” 表示目录; “@”
示符号链接; “|” 表示 FIFOs “=” 表示套接字 (sockets) 。(目录类型识别)
-r 对目录反向排序。
-t 以时间排序。
-s l 文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
-R 列出所有子目录下的文件。 ( 递归 )
-1 一行只输出一个文件。

 7. cd ——更改路径 

1.  cd + 新路径(绝对路径)

语法 :cd 目录名
功能 :改变工作目录。将当前工作目录改变到指定的目录下。(补充:几乎所有的操作系统存放文件,都采用多叉树的结构。)
示例:

 2.  通过回退机制, cd + .. (相对路径)

这里用上我们前面发现的"." ''..''的隐藏文件

 总结:...这两个隐藏文件每个目录下都会存在,以便于我们回退路径——当然我们回退到根目录下就不能再回退了。

 其他的指令:

cd /home/litao/linux/ : 绝对路径 ————从根目录开始的索引(唯一性)
cd ../day02/ :               相对路径 ————以当前目录开始索引   (多样性)
cd ~ :进入用户家目(root用户,对应的工作用户一定是root;普通用户,对应的一定是/home/xxxx)
cd - :返回 最近访问目录

8. 写一段简单的c程序

1. 创建一个test.c 文件

touch  test.c     // 感兴趣可以  ls  验证一下

2. nano  test.c 进入test.c文件进行代码编写

3.  执行生成的可执行文件

 9. which + 指令 ——找到指令所在的路径

  

这里我们不禁会想,指令有其路径,那么一定有他的文件。 指令本身是linux自带的可执行程序,那么指令也是文件。

这里我们顺便了解一下alias

1. alias ——取别名

 功能:将复杂的指令修改,方便使用。

作用周期:登陆修改持续到退出服务器,退出即重置修改,一方面原因是防止指令名污染

 

 10 . touch 指令

语法: touch  [选项] [文件名]

功能:

1. 创建普通文件,同时记录创建时间。

2. 更新创建时间修改时间。

常用选项
-a    --time=atime --time=access --time=use 只更改存取时间。
-c    --no-create  不建立任何文档。
-d  使用指定的日期时间,而非现在的时间。
-f  此参数将忽略不予处理,仅负责解决 BSD 版本 touch 指令的兼容性问题。
-m    --time=mtime --time=modify  只更改变动时间。
-r  把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t  使用指定的日期时间,而非现在的时间

 11. mkdir —— 创建目录

语法 mkdir [ 选项 ] dirname...
功能 :在当前目录下创建一个名为 “dirname” 的目录
常用选项
-p , --parents  可以是一个路径名称。此时若路径中的某些目录尚不存在 , 加上此选项后 , 系统将自动建立
好那些尚不存在的目录 , 即一次可以建立 多个目录 ;

如:

 图中操作,我们用到了tree -a的操作,这个不是linux默认的指令,需要安装。详细步骤可以参考这位大佬的文章:(3条消息) Linux下tree命令安装及使用_安装tree命令_wangqingchuan92的博客-CSDN博客

12.  rmdir & rm

1. rmdir ——删除空目录

rmdir 是一个与 mkdir 相对应的命令。 mkdir 是建立目录,而 rmdir 是删除命令。
语法 rmdir [-p][dirName]
适用对象 :具有当前目录操作权限的所有使用者
功能 :删除 空目录
常用选项
-p 当子目录被删除后如果父目录也变成空目录的话,就连带 父目录 一起删除。

 2. rm——删库跑路

rm 命令可以同时删除文件或目录
语法 rm [-f-i-r-v]  [dirName/dir]
适用对象 :所有使用者
功能 :删除文件或目录
常用选项
-f 即使文件属性为只读 ( 即写保护 ) ,亦 直接 删除文件(无法删除目录)。
-i 删除前逐一询问确认
-r 删除目录及其下所有文件(递归删除)

(1) rm -r 

(2)   rm -rf 

 

 13 . man——手册指令

我们知道在过去我们需要查某些库函数,我们都会去网上或者是MSDN上查,而在linux 上我们可以问这个man。

一般我们需要去root 身份下输入指令安装:(centos7.6)

yum intstall -y  man-ages

假如说我们想查询 C语言的printf函数使用: 

因此 我们查找手册时需要指定对应的手册页数。 

14. cp —— 拷贝指令

语法 cp [ 选项 ] 源文件或目录 目标文件或目录
功能 : 复制文件或目录
说明 : cp 指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。
常用选项
-f --force  强行复制文件或目录, 不论目的文件或目录是否已经存在
-i --interactive 覆盖文件之前先询问用户
-r 递归处理,将指定目录下的 文件与子目录一并处理 。若源文件或目录的形态,不属于目录或符号链
接,则一律视为普通文件处理
-R --recursive 递归处理,将指定目录下的文件及子目录一并处理 

1. 拷贝单个文件

2. 拷贝目录 cp -rf

-r :是递归的意思,-f是强制的意思跟前面的删除目录意思一致

15. mv——剪切

功能:

1. 移动文件

语法:mv  [文件名或者目录]   [路径]

2. 对文件重命名

语法:mv [文件或者目录名]   [新的文件名或者目录名]

三, 查看,文件处理指令

 16.  查看指令

1. cat 

语法:cat  [文件]   或者是   cat 不加文件(数据输入是键盘也就是标准输入) 

功能:只查看文件 

缺点:文件一次性全部输出。 

常见选项:

  • -b 对非空输出行编号
  • -n 对输出的所有行编号
  • -s 不输出多行空行

(注: tac 指令——逆序输出内容,cat指令——正序输出内容)

2. more 指令

跟cat类似,具有查看功能,但more 能分批查看。 

 缺点:只能下翻不能回头

 常见选项:

  • -n 对输出的所有行编号, 比如:-10,一次输出10行,回车键再显示下面的(默认设置,是填满整个页面)
  • q 退出more

 3.   less 指令(推荐)

语法:less [参数]  文件名

功能:less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件

选项
  • -i  忽略搜索时的大小写
  • -N  显示每行的行号
  • /字符串:向下搜索字符串的功能
  • ?字符串:向上搜索字符串的功能
  • n:重复前一个搜索(与 /  ? 有关)
  • N:反向重复前一个搜索(与 /  ? 有关)
  • q:quit (退出查看)

4. 总结

当我们查看比较少的内容时,可以使用cat 打印出来; 查看比较大的文件时,如查看日志,别人大量代码时,我们用 more / less,其中Less更方便,推荐用less。

休息一下 

 

17.  局部查看

1. head  ——查看前面10(默认)行内容

语法: head   -n   [文件名]

2. tail   —— 查看后10(默认)行内容

语法: tail  -n  [文件名]

3.  查看中间数据

 前提须知

   了解:输入,输出,追加重定向

假设有10行数据,我想要看3到5行的数据。

方法一: 提取1~5的数据,重定向到新文件中,然后我们取后2行数据;

 方法二:通过数据管道

 管道传数据可以灵活组合(流水线功能)。比如:cat -n hi.txt | head -5 | tail -2

18.时间相关的指令

date显示

date 指定格式显示时间: date +%Y:%m:%d
date 用法: date [OPTION]... [+FORMAT]
1. 在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下

 常见选项:

  • %H : 小时(00..23)
  • %M : 分钟(00..59)
  • %S : (00..61)
  • %X : 相当于 %H:%M:%S
  • %d : (01..31)
  • %m : 月份 (01..12)
  • %Y : 完整年份 (0000..9999)
  • %F : 相当于 %Y-%m-%d

 

2.在设定时间方面

  • date -s //设置当前时间,只有root权限才能设置,其他只能查看。
  • date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00
  • date -s 01:01:01 //设置具体时间,不会对日期做更改
  • date -s “01:01:01 2008-05-23″ //这样可以设置全部时间
  • date -s “01:01:01 20080523″ //这样可以设置全部时间
  • date -s “2008-05-23 01:01:01″ //这样可以设置全部时间
  • date -s “20080523 01:01:01″ //这样可以设置全部时间

3.时间戳

时间 -> 时间戳: date +%s
时间戳 -> 时间: date -d@1508749502
Unix 时间戳(英文为 Unix epoch, Unix time, POSIX time Unix timestamp )是从 1970 1 1 日( UTC/GMT
午夜)开始所经过的秒数,不考虑闰秒。

19. cal —— 日历指令

功能: 查看日期

语法: cal [参数][月][年]

常见搭配:

  • -3 显示系统前一个月,当前月,下一个月的月历
  • -j  显示在当年中的第几天(一年日期按天算,从11号算起,默认显示当前月在一年中的天数)
  • -y  显示当前年份的日历

比如:

cal -y  2023

20. find——查找文件(重要)

语法: find  [选项]  [文件名]

功能:从文件树中寻找目标文件,可能访问磁盘。

特点:

  • Linuxfind命令在目录结构中搜索文件,并执行指定的操作。
  • Linuxfind命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。
  • 即使系统中含有网络文件系统( NFS)find命令在该文件系统中同样有效,只你具有相应的权限。
  • 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)

这里仅了解一个常见的用法:

find  -name  [文件名]

21. grep——文件行查找指令

语法: grep  [选项]  “字符串”  文件名

功能: 从文件中查找符合条件的行,并输出出来

常见选项:

  • -i :忽略大小写的不同,所以大小写视为相同
  • -n :顺便输出行号
  • -v 反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行

借用正则表达式

 22. zip  &  unzip

1.  zip —— 压缩

语法: zip  [选项] [压缩名+zip]  [文件名或者目录]

常用选项:
-r 递 归处理,将指定目录下的所有文件和子目录一并处理

实践:

 2. unzip —— 解压

语法:

1. unzip  [压缩文件名]

2. unzip  [压缩文件名]  -d  [指定解压到地址] 

 23. tar ——打包 & 解包

 1. 打包与压缩的区别

打包:把一堆文件或者目录,集合在一个文件中,大小不改变。

压缩:通过压缩算法将文件进行压缩,大小可能是原来的一半甚至是更少。

选项:

-c   :建立一个压缩文件的参数指令 (create  的意思 )
-x   :解开一个压缩文件的参数指令!
-t  :查看  tarfifile  里面的文件!
-z   :是否同时具有  gzip  的属性?亦即是否需要用  gzip  压缩?
-j  :是否同时具有  bzip2  的属性?亦即是否需要用  bzip2  压缩?
-v   :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f   :使用档名,请留意,在  f  之后要立即接档名喔!不要再加参数!
-C : 解压到指定目录

简单用法:

2. 打包: tar   -czf  [打包名压缩名]   [目标文件]

 

3.  解包: tar  -xzf  [文件名.tgz]  -C [目录或路径]

24. 热键

[Tab] 按键 --- 具有『命令补全』和『档案补齐』的功能
[Ctrl]-c 按键 --- 让当前的程序『停掉』
[Ctrl]-d 按键 --- 通常代表着:『键盘输入结束 (End Of File, EOF End OfInput) 』的意思;另外,他也可
以用来取代 exit。

结语

本小节就到这里了,感谢小伙伴的浏览,如果有什么建议,欢迎在评论区评论;如果给小伙伴带来一些收获请留下你的小赞,你的点赞和关注将会成为博主创作的动力。

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

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

相关文章

【大数据】Presto(Trino)REST API 与执行计划介绍

文章目录 一、概述二、环境准备三、常用 REST API1)worker 节点优雅退出2)提交SQL查询请求3)获取查询状态4)获取查询结果5)取消查询请求6)获取Presto 节点信息7)获取Presto服务器使用统计信息8&…

功率放大器电路中的三极管和MOS管,究竟有什么区别?

学习模拟电子技术基础,和电子技术相关领域的朋友,在学习构建功率放大器电路时最常见的电子元器件就是三极管和场效应管(MOS管)了。那么三极管和MOS管有哪些联系和区别呢?在构建功率放大器电路时我们要怎么选择呢&#…

干货 | 利用SPSS进行高级统计分析第一期

Hello,大家好! 这里是壹脑云科研圈,我是喵君姐姐~ 你是否还在为分析实验数据而感到头疼?你是否还在苦于自己不知道如何选择合适的模型来分析数据? 本期我们就来为大家带来了利用SPSS软件进行高级统计分析…

【学习日记】在不可联网电脑上安装Python和深度学习环境

测试环境 Hyer-V上开了个虚拟机,win7-64位企业版,全新未安装任何环境的最基本的操作系统。 因为不联网安装,而且是win7这种古老的操作系统,确实会遇到很多问题。做个记录。 安装Python 打开python-3.7.8.exe 安装程序 此时可能…

离岗识别 yolov5模型

离岗识别通过yolov5网络模型技术,离岗识别可以自动识别现场画面中人员离岗脱岗睡岗等行为,发现违规行为立即抓拍告警。YOLOv5在YOLOv4算法的基础上做了进一步的改进,检测性能得到进一步的提升。虽然YOLOv5算法并没有与YOLOv4算法进行性能比较…

Unity3d 开发Pico4程序闪退弹窗【版权保护】检测的解决方法

前言 最近在进行基于Pico4的应用开发,然后在部分设备上程序是无法正常进入的,而且总是弹出这个版权保护的窗口: 按理说正常的自己开发的测试的程序不应该有这种限制,查询后发现是 PICO 内置了版权保护机制。应用上架后&#xff0…

研发工程师玩转Kubernetes——通过文件创建Service

在《研发工程师玩转Kubernetes——部署应用》一文中,我们使用kubectl expose创建了一个Service,暴露了一个Pod上的nginx服务。这篇文章我们将使用文件的形式创建Service。 为了增加有趣性,我们采用《研发工程师玩转Kubernetes——构建、推送自…

与众不同的夜间开关交互效果

这个夜间模式切换开关效果是不是很炫酷,在短视频曾刷到过是一个国外的设计师看似是为了难为我们前端开发设计了一个元素超多且动画复杂的开关切换效果。 结果在逛 codepen 的时候发现真的被一个大佬给做出来了,效果真的很不错,而且还在原来的…

矩池云教程|体验 OpenAI 最近推出的 3D 生成模型 Shap-E!

Shap-E 是由 OpenAI 最近推出的3D生成模型,使用者可以通过简单的文字或图像进行三维模型的生成,OpenAI 认为相比于点云的生成模型Point-E,Shap-E的收敛更快。本文将展示如何在矩池云上体验3D模型生成。 Shap-E:https://github.co…

自动生成测试用例_接口测试用例自动生成工具

前言 写用例之前,我们应该熟悉API的详细信息。建议使用抓包工具Charles或AnyProxy进行抓包。 har2case 我们先来了解一下另一个项目har2case 他的工作原理就是将当前主流的抓包工具和浏览器都支持将抓取得到的数据包导出为标准通用的 HAR 格式(HTTP A…

软件测试需要学会写代码吗?

无论是刚入测试行业的萌新,还是已经在测试行业闯荡了两三年的小司机们,都会琢磨一个问题:如果要持续发展下去,我要不要懂代码? 在软件测试初级阶段,不需要编程能力。但是任何一个职业,都会追求…

【网络协议详解】——IPv6协议(学习笔记)

📖 前言:IPv6 协议是未来互联网的发展方向,它的推出为网络通信和互联带来了更大的便利性和更广阔的发展空间。相比于 IPv4,IPv6 支持更多的地址空间、更高效的路由和唯一的全球性地址等特点,可以更好地满足未来数字化时…

Mac电脑 Vscode : Flutter 开发环境搭建(最细节教程)

参考链接: MacVSCode安装flutter环境_mac vscode配置flutter_GalenWu的博客-CSDN博客 mac搭建Flutter环境以及初始化项目 - 简书 注意: *下载xcode 就包含git了, *苹果芯片和intel 芯片需要的环境不同,苹果芯片需要安装: Im…

攻防世界web新手区部分题解

前言:博主是个安全小白,正在努力学习中,会随着学习进度不定期更新完善本篇博客。 这里是目录 1.robots2.view_source3.backup4.disabled_button5.get_post6.cookie7.ics-068.PHP2 1.robots 题目描述: X老师上课讲了Robots协议,小宁…

SpringBoot+Redis完成数据缓存(内容丰富度一定超出你的想象)

SpringBootRedis完成数据缓存 去年今日此门中 人面桃花相映红 人面不知何处去 桃花依旧笑春风 感谢相遇!感谢自己,努力的样子很给力! 为了更多朋友看见,还是和大家说一声抱歉,限制为粉丝可见!有问题可以随时…

基于SSM+JSP的大学生社团管理系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

数字信号处理基础(二):FFT和IFFT的使用以及详细分析代码书写思路

目录 1. fft和ifft的原理1.1 fft1.2 ifft 2. 书写代码思路3. 完整代码4. 结果图 1. fft和ifft的原理 1.1 fft fft是快速傅里叶变换,是MATLAB中计算信号频谱的函数,使用方法是fft(x),直接对信号x进行fft计算。 由于fft函数计算信号的频谱是0…

国考省考行测:资料分析,两年复合增长率

国考省考行测:资料分析,两年复合增长率 2022找工作是学历、能力和运气的超强结合体! 公务员特招重点就是专业技能,附带行测和申论,而常规国考省考最重要的还是申论和行测,所以大家认真准备吧,我讲一起屡屡…

考研算法第十三天:二叉排序树 【二叉排序树的插入和遍历】

这道题很妙。题目给的二叉排序树好像没学过其实就是二叉查找树。然后这道题主要的就是思路 1.节点的初始化(记住) struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; 2.节点的插入 …