【Linux学习】基本指令其一

devtools/2024/9/22 11:43:14/

命令行界面

命令行终端是一个用户界面,允许用户通过输入文本命令与计算机系统进行交互。
比如Windows下, 键入win+R,然后输入cmd,就可以输入文本指令与操作系统交互了。
Windows有另一个命令行界面Powershell,它的功能比cmd更强大。

图形化界面

图形用户界面, 通过图形元素(如窗口,图标,按钮,菜单)与用户进行交互。比如,我们想运行桌面的软件,一般通过双击。其实,本质是解释器运行某个指令。
图形化界面本身就是易用, 可视化的操作对于一般的用户友好。

Linux的快捷键

  1. shift + insert 粘贴
  2. ctrl + insert 复制
  3. alt + Enter 全屏切换

基本指令

pwd指令
  1. pwd指令: 查看·当前所处工作目录
➜  ~ pwd
/home/LiuGuanYi
ls指令
  1. 语法: ls [选项][目录或文件]
  2. 功能:对于目录,该命令列出该目录下的所有子目录与文件。
    对于文件,列出文件名及其他相关信息。

查看当前目录的文件

➜  ~ ls
C  PowerVim

部分选项介绍:

  1. ls -l: -l 列出文件的详细信息
  2. ls - a: -a 列出目录下所有的文件(其中包括隐藏文件)。
  3. ls -d: -d 将目录像文件一样显示,而不是默认显示其内部的文件。
➜  ~ ls -l
total 8
drwxrwxr-x 2 LiuGuanYi LiuGuanYi 4096 Sep 21 23:40 C
drwxrwxr-x 5 LiuGuanYi LiuGuanYi 4096 Sep 19 00:21 PowerVim
➜  ~ ls -a
.              .bash_profile  .ctags.20240919002159  .vim                 .vimrc.20240919002159                         .zshrc
..             .bashrc        .oh-my-zsh             .vim.20240919002159  .zcompdump-iZ2vc518r9oil4ibtgiqodZ-5.0.2      .zsh.swp
.bash_history  C              .pki                   .viminfo             .zcompdump-iZ2vc518r9oil4ibtgiqodZ-5.0.2.zwc
.bash_logout   .ctags         PowerVim               .vimrc               .zsh_history
➜  ~ ls -d
.
➜  ~ ls -d C
C
➜  ~ ls C 
hello.c

关于ls -l ,这展示了文件的详细信息, 比如文件总块数,目录还是文件,文件大小,修改日期,文件或目录名称等等。

关于ls -a,补充一下:
.开头的文件是隐藏文件,其中.表示当前目录,..表示当前目录。

关于ls -d C,C是我自己演示创建的目录,这种指定目录像文件显示。
如果取消-d选项, 那么会显示其内部文件。

选项可以分批次
ls -l -a -d
或者
ls -ald

cd指令

Linux下一切皆文件, 磁盘上的目录和文件被组织成一个目录树。
在这里插入图片描述

绝对路径和相对路径
  1. Windows下的路径分割符:\
  2. Linux下的路径分隔符:/
    路径:由路径分隔符隔开的多个文件夹构成的字符串
    Windows中:C:\User
    Linux:/home/test

Linux下访问一个文件,就得找到它,必须通过路径定位。
绝对路径
从根节点(根目录)出发,定位一个文件或者目录的路径被称为绝对路径。
相对路径
从当前某个文件或目录相对于其它文件或者目录的路径称作相对路径。

数据结构角度,。
直观上,自由树从任意节点定位到其它节点必定存在唯一简单路径。
而且,我们可以有效找到对应, 比如叶子节点是目录树中的文件或者空目录,非叶子节点是目录树中的非空目录这些。

cd指令: change directory, 功能:改变工作目录。 从当前工作目录进行到指定目录,切换路径。

->  ~ cd ./C
->  C 

结合上面的隐藏文件...
这里熟练使用即可

cd .. : 返回上级目录
cd /home/ : 绝对路径
cd ./C : 相对路径
cd ~:进入用户家目
cd -:返回最近访问目录

cd ./... 是引用当前目录下的文件
下面例子说明, .的作用是引用当前生成的可执行文件hello

➜  C nano hello.c
➜  C cat hello.c
#include<stdio.h>int main(void){printf("hello Linux!\n");return 0;}
➜  C gcc hello.c -o hello
➜  C ls
hello  hello.c
➜  C hello
zsh: command not found: hello
➜  C ./hello
hello Linux!
  1. 使用nano编辑器创建并打开hello.c文件。—可以自行配置一下nano.
  2. hello.c文件编辑这么一段简单的C程序
  3. cat指令打印hello.c文件的内容
  4. gcc编译文件
  5. ./hello 运行可执行程序。
touch指令

语法:touch [选项]… 文件…
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。

时间戳
Unix时间戳:从1970年1月1日00:00:00 UTC起的秒数。
时间戳就是当前时间减去1970.1.1.00:00:00差值换算的秒数

1.touch指令的 新建文件 功能。

➜  C ls
hello  hello.c
➜  C touch hello2.c
➜  C ls
hello  hello2.c  hello.c
  1. 更新访问时间
➜  C ls -l hello2.c
-rw-rw-r-- 1 LiuGuanYi LiuGuanYi 0 Sep 22 00:24 hello2.c
➜  C touch hello2.c
➜  C ls -l hello2.c
-rw-rw-r-- 1 LiuGuanYi LiuGuanYi 0 Sep 22 00:26 hello2.c

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

stat

获取文件的时间信息
简单举例:

➜  C stat hello2.cFile: ‘hello2.c’Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd01h/64769d	Inode: 1321304     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1008/LiuGuanYi)   Gid: ( 1008/LiuGuanYi)
Access: 2024-09-22 00:26:52.973871315 +0800
Modify: 2024-09-22 00:26:52.973871315 +0800
Change: 2024-09-22 00:26:52.973871315 +0800Birth: -
mkdir

语法:mkdir [选项] dirname
功能:当前目录下创建名为 “dirname”的目录。

比如在C目录下创建名为src的目录。

➜  C mkdir src
➜  C ls
hello  hello2.c  hello.c  src

选项:
-p, ---parents , parent是/与目录分割的字符串,可用来一次性建立层次的目录。

➜  C mkdir -p  src/src1/src2/src3
➜  C ls
hello  hello2.c  hello.c  src
➜  C tree src
src
└── src1└── src2└── src33 directories, 0 files

tree: 输入yum install -y tree, tree 目录名, 将当前目录及其后续以树状结构展示出来。

rmdir

语法:rmdir [-p][dirName]
适用对象:具有当前目录操作权限的使用者
功能:用来删除空目录
不能直接删除父目录,因为其不为空。但可以通过路径删除子目录。

➜  C rmdir src  
rmdir: failed to remove ‘src’: Directory not empty
➜  C rmdir src/src1/src2/src3
➜  C tree src
src
└── src1└── src22 directories, 0 files

常用选项:
-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除

这样就可以连带删除了。

➜  C rmdir -p src/src1/src2
➜  C ls
hello  hello2.c  hello.c
rm

语法:rm [-f-i-r-v][dirName/dir]
适用对象:所有使用者
功能:删除文件或目录

-r:强制删除目录及其所下的文件

➜  C mkdir -p src/src1/src2/src3
➜  C ls
hello  hello2.c  hello.c  src
➜  C tree src
src
└── src1└── src2└── src33 directories, 0 files
➜  C rm -r src
➜  C ls
hello  hello2.c  hello.c

-rm -rf 目录名称
强制删除该目录所有文件。root用户不会请求确认。

-f 若文件属性为只读(即写保护),亦直接删除。
-i删除前询问确认。

结尾

时不我待。
提前学习Linux是有必要的,为后面学习操作系统课准备。不过计组,数据库两本书还没看完,现在学Linux会不会太贸然了。
专业课真是压得人喘不过气, 一周能写几篇博客已是不易,不过算了, 走自己的路。

正因逆境多艰辛, 不愿世事扰心志。 风霜已久无人问, 自在天地任逍遥。


http://www.ppmy.cn/devtools/115437.html

相关文章

一个基于 laravel 和 amis 开发的后台框架, 友好的组件使用体验,可轻松实现复杂页面(附源码)

前言 随着互联网应用的发展&#xff0c;后台管理系统的复杂度不断增加&#xff0c;对于开发者而言&#xff0c;既要系统的功能完备&#xff0c;又要追求开发效率的提升。然而&#xff0c;传统的开发方式往往会导致大量的重复劳动&#xff0c;尤其是在构建复杂的管理页面时。有…

Netty源码-业务流程之构建连接

Netty基本介绍&#xff0c;参考 Netty与网络编程 1、Netty构建连接 构建连接的流程 1.1 我们知道客户端连接服务端都是通过NioEventLoop来处理请求&#xff0c;NioEventLoop是一个线程&#xff0c;连接进来首先进入run()方法。 所以我们需要启动服务端&#xff0c;然后再启动…

力扣最热一百题——搜索二维矩阵

目录 题目链接&#xff1a;240. 搜索二维矩阵 II - 力扣&#xff08;LeetCode&#xff09; 题目描述 解法一&#xff1a;暴力不解释 Java写法&#xff1a; 运行时间 C写法&#xff1a; 运行时间 时间复杂度以及空间复杂度 解法二&#xff1a;利用自带的大小关系进行Z型走…

【工具变量】科技金融试点城市DID数据集(2000-2023年)

时间跨度&#xff1a;2000-2023年数据范围&#xff1a;286个地级市包含指标&#xff1a; year city treat post DID&#xff08;treat*post&#xff09; 样例数据&#xff1a; 包含内容&#xff1a; 全部内容下载链接&#xff1a; 参考文献-pdf格式&#xff1a;https://…

LangChain教程 - 向量存储与检索器

系列文章索引 LangChain教程 - 系列文章 介绍 在这个教程中&#xff0c;你将了解 LangChain 的向量存储和检索器抽象。这些抽象旨在支持从&#xff08;向量&#xff09;数据库和其他来源检索数据&#xff0c;并将其集成到大语言模型&#xff08;LLM&#xff09;的工作流程中。…

AWS账号可以共用吗?

小伙伴们&#xff0c;大家好&#xff01;今天九河云来聊聊另一个大家可能关心的问题&#xff1a;AWS账号可以共用吗&#xff1f;很多团队或公司在使用AWS服务时&#xff0c;可能会考虑共用一个账号以节省成本或者简化管理。那么&#xff0c;这样做是否可行呢&#xff1f;让我们…

WebGL缓冲区

一、缓冲区对象 缓冲区对象时WebGL系统中的一块内存区域&#xff0c;可以一次性地向缓冲区对象中填充大量的顶点数据&#xff0c;然后将这些数据保存其中&#xff0c;供顶点着色器使用。 类型化数组 这样程序可以预知数组中的类型&#xff0c;提高性能 类型描述Int8Array8位…

弃置区原因

线性卷积&#xff0c;不用担心滤波器周期化的情况。圆周卷积在一周期内&#xff0c;一定有所有的点&#xff0c;所以信号进来的时候&#xff0c;剩下的信号一定在周期内&#xff0c;导致卷积结果不正确。 补零的圆周卷积就是为了&#xff0c;信号进来的时候&#xff0c;让其他的…