【Linux】基本指令(上篇)

这里是目录

前言

Linux操作的特点:有图形化界面,但大部分都是以纯命令行 为主

Windows也是命令行 但是他是面向普通用户的所以大部分都是以图形化界面 为主

无论是图形化界面,还是指令,本质其实都是一样的,指令操作更贴近操作系统

Xshell :alt+enter:全屏和取消全屏

ls指令

ls - 对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息
语法: ls [选项][目录或文件]

因为当前目录没有文件,所以并没有显示

指令是可以携带选项的(可以带多个选项)

-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 一行只输出一个文件

比如 ls -l 可以查看文件的属性(也可以写成ll )

pwd指令

pwd - 显示当前命令行进行操作时所处在的目录

mkdir指令(重要)

mkdir - 创建一个目录

就和在Windows中创建了一个文件夹一样,但是在Linux下我们并不能直接看到所创建的文件夹,因为Linux是纯命令行的形式,所以需要配合ls指令来查看

如果想创建一串目录:mkdir -p d1/d2/d3/d4/d5 即可

tree指令

tree - 将目录结构以树状的形式显示

想使用这个命令是需要进行安装的:

输入:yum install -y tree即可

如果出现这种情况就说明没有安装

安装完成后即可使用:

cd指令

cd - 进入一个目录
常用选项:

cd ... : 返回上级目录

cd /home/litao/linux/ : 绝对路径

cd .../day02/ : 相对路径

cd ~:进入用户家目录

cd -:返回上一次访问的目录

在Linux中只有两种用户,一种是超级用户root,一种是普通用户

在centos系统中,所有普通用户,用户账户都会统一放在/home(家目录)中

通过pwd指令可以看到我们所处的位置就是12_2的文件夹中


结合

ls -la 也可以写成 ls -l -a - 显示所有的文件(包括隐藏文件)

使用..回到上级目录:

Linux的路径分隔符是:/

最前面的 / 是Linux的根目录

所以Linux的目录结构整体就是一个多叉树,他的叶子节点一定是空目录或者非目录文件,路上节点一定是一个非空目录:

所以我们所有的对文件或者目录的增删查改,本质上都是对这棵多叉树的增删查改

所以我们定位一个文件,通常用路径来进行定位,路径定位:唯一性(任何节点都只有一个父节点)

我们把从根目录开始定位到指定位置,具有唯一性的路径称为:绝对路径

那我们就可以进行以下操作:直接从根目录进入到某个指定的目录:

我们以自己当前所处的路径作为起始参照位置,来进行特定文件的定位称为:相对路径(所处的路径发生变化,可能相对路径就失效了)

一般从根目录开始就叫绝对路径反之都叫做相对路径

1.绝对路径往往比较长,但是不变,一般在一些固定场景中使用,比如:配置文件中使用

2.一般命令行输入,比较常用相对路径


touch指令

语法:touch [选项]... 文件...
touch - 命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件(普通文件)

常用选项:

-a 或--time=atime或--time=access或--time=use只更改存取时间

-c 或--no-create 不建立任何文档

-d 使用指定的日期时间,而非现在的时间

-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。

-m 或--time=mtime或--time=modify 只更改变动时间。

-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。

-t 使用指定的日期时间,而非现在的时间

rmdir指令(重要)

rmdir - 删除目录

rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除目录
语法:rmdir [-p][dirName]

常用选项:

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

rmdir不能删除非空目录:

rm指令(重要)

rm - 可以直接删除普通文件
语法:rm [-f-i-r-v][dirName/dir]

常用选项:

-f 即使文件属性为只读(即写保护),亦直接删除(删除前不询问)

-i 删除前逐一询问确认

-r 删除目录及其下所有文件

每次删除都要询问是不是有点麻烦?如果我有几百个文件呢?

这时候就可以加上:-f 直接删除不询问

注:Linux删除就真的删除了(没有回收站),恢复成本很大,所以删除前需要慎重考虑

*通配符

需要搭配使用,如ls或者rm

ls + * 显示所有文件------不包括隐藏文件

ls + *+后缀名 ------显示后缀名相同的文件

ls + 前缀名 +* ------显示前缀名同的文件

比如:只查看后缀为.c的文件,或者只查看以.txt结尾的文件

删除所有后缀为.c的文件

man指令(重要)

访问Linux手册页的命令是:man 语法: man [选项] 命令

比如:man ls


man rm

这个手册是可以汉化的,但现阶段不建议汉化

常用选项:

-k 根据关键字搜索联机帮助

num 只在第num章节找

-a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕

指令 : man + 手册号 +要查的函数

man手册分为8章

  1. 是普通的命令
  2. 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
  3. 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
  4. 是指文件的格式,比如passwd,,就会说明这个文件中各个字段的含义
  5. 是给游戏留的,由各个游戏自己定义
  6. 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
  7. 是系统管理用的命令,这些命令只能由root使用,如ifconfig

如果没有带手册号,默认按1号查找,如果1号没找到,找2号,2号没找到,找3号...以此类推,如果一个函数在1号和3号手册都有出现那么直接查找(不带手册号)则会显示1号手册的内容,3号手册需要指定3号(带手册号:3)

echo指令

echo+字符串:

直接将字符串输出到显示器上

> (大于符号)------指的是将内容重定向到指定的文件

echo + 内容 + > +文件 ,就是将指定内容输出到文件中
比如:

可以看到加了 > 之后字符串并没有输出到显示器上,但是test.txt 的大小发生了改变,说明字符串被写入到了文件当中 - 称之为输出重定向

含义:本来应该显示到显示器的内容,打印到文件中

cat指令

语法:cat [选项][文件]
cat - 查看目标文件的内容

cp指令(重要)

语法:cp [选项] 源文件或目录 目标文件或目录

常用选项:

-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在

-i 或 --interactive 覆盖文件之前先询问用户

-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理

-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理


拷贝到上级目录

拷贝一批目录

cp + -r + 指定目录下的目录 + 拷贝到目标处的目录(给拷贝到目标目录重命名)

mv指令(重要)

语法: mv [选项] 源文件或目录 目标文件或目录

常用选项:

-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖

-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖

修改名字

看上去是修改了名字,实际上也可以是把这个文件剪切并重命名了一下

剪切功能

如果只有mv test.txt .../(后面没有跟任何东西)就叫做单纯的剪切

如果mv test.txt .../ test2.txt(带了一个名字)就叫剪切并重命名

如果上级目录已经存在要重命名的名字,则操作就会变成剪切文件到上级目录的文件名中:

以上就是本篇文章的全部内容了,希望大家看完能有所收获

相关推荐
正在走向自律1 小时前
阿里云ESC服务器一次性全部迁移到另一个ESC
服务器·阿里云·云计算
gywl1 小时前
openEuler VM虚拟机操作(期末考试)
linux·服务器·网络·windows·http·centos
青木沐1 小时前
Jenkins介绍
运维·jenkins
WTT00112 小时前
2024楚慧杯WP
大数据·运维·网络·安全·web安全·ctf
苹果醋32 小时前
React源码02 - 基础知识 React API 一览
java·运维·spring boot·mysql·nginx
了一li2 小时前
Qt中的QProcess与Boost.Interprocess:实现多进程编程
服务器·数据库·qt
日记跟新中3 小时前
Ubuntu20.04 修改root密码
linux·运维·服务器
唐小旭3 小时前
服务器建立-错误:pyenv环境建立后python版本不对
运维·服务器·python
码农君莫笑3 小时前
信管通低代码信息管理系统应用平台
linux·数据库·windows·低代码·c#·.net·visual studio