Linux下的基本指令

前言:

可涵开始Linux的新篇章旅行啦,本文主要介绍Linux下的基本指令~

引言:

何为Linux?

Linux是一种免费使用和自由传播的类UNIX操作系统。

那什么是操作系统呢?

操作系统是一款进行软硬件资源管理的软件。

为什么要进行软硬件管理呢?

对上提供良好的稳定的运行服务。------工具


我们下面开始学习Linux下的指令~

首先我们需要明确,我们现在学习的指令操作和图形化界面没有任何区别。

快速学习一些简单指令

1.who & whoami

who 查看当前有哪些人登陆了我是机器

whoami 查看当前账号是谁

2、clear

清屏

3、pwd

显示当前所处的工作目录

4、cd

切换路径。更改工作目录,后面跟上目录名,然后代表已经进入该目录

4、ls

查看当前目录下的文件信息

5、touch

创建文件的指令,后面直接跟创建文件的文件名

6、makdir

新建目录,后面直接跟上目录名

补充知识点:空文件是否占据磁盘空间?

问题:如果我今天在Windows上,建一个空文件,这个空文件要占据磁盘/固态硬盘的存储空间吗?

答案是空文件一定占据磁盘空间的

原因:

空文件的文件名、大小、属性数据本质也都是数据,也要被计算机记录下来!看到文件不要狭隘的看见文件的内容,文件的属性也是数据。

文件 = 文件内容 + 文件属性

注意这些内容全部都是二进制数据,都要被存储。

我们学习的所有的文件操作本质都是:

  1. 要么对文件内容做操作
  2. 要么对文件属性做操作

一、ls指令

ls -l指令:(注意前面有空格!)

可以直接简写成 ll

显示文件的属性列表

ls -a:

显示所有文件,a------all,包括隐藏文件

隐藏文件:以.开头的文件就是隐藏文件,当我们用ls -l是发现不了隐藏文件,只有用ls -al才可以显示出来。

注意ls -a -l 和 ls -l -a 和 ls -al 和ls -la 操作含义一模一样!

补充知识:Linux下的目录结构的认识

. 表示当前路径

..表示上级路径

注意任何一个目录下都有.文件和..文件,用于指向自己和上级目录,根节点的..也表示指向自己。

所以cd .. 表示返回上级路径,回退操作。

我们发现一直返回上级路径到最后只剩下 / ,/也是一个目录,并且是Linux的根目录

Linux的整体目录结构是一颗多叉树的样子。

什么是路径:

用路径分隔符分隔起来的文件夹所组成的一串字符串就是路径。

注意Linux下的路径分隔符是反斜杠 /

windows下的路径分隔符是正斜杠 \

路径分隔符之间一定是一个目录/文件夹

为什么要有路径?

因为路径具有唯一性,我们通过路径可以查找到我们想要的文件,路径的本质就是这一个多叉树的搜索路径。

对于路径更深的理解(与二叉树相结合)

  1. 叶子结点,一定是普通文件,或者是空目录
  2. 路上结点,非叶子结点,一定是目录
  3. 访问一个文件的本质,需要先找到它,找到文件的本质:就是在一棵多叉树中进行结点的查找。

绝对路径的概念:

我们将从/目录开始,定位一个叶子文件的方式从而形成的路径称为绝对路径。

相对路径的概念:

相对于自身当前所处的目录为参考点,我们定位一个文件的路径就称为相对路径。

cd命令

功能 :改变工作目录。将当前工作目录改变到指定的目录下
cd后面可以直接加上当前目录的文件名,表示进入该文件。

也可以加上..表示回退到上级目录

总结:

cd命令后面跟上绝对路径/相对路径即可!

cd的一些其他命令:

cd - :跳转回最近一次所处的目录。在两个目录之间快速跳转。(反复横跳)

cd ~进入用户的家目录。

什么是家目录?

windows中,我们C盘中有用户这个文件,打开后,其实就相当于进入了家目录。

Windows中,其实有桌面的概念,但是本质桌面也是目录/文件夹,只不过当用户登录的时候,你到家目录里面有桌面的文件夹,Windows把这个文件夹中的所有文件,以图标的形式,显示在显示器上,就有了桌面!

默认登陆的时候,默认登录所在的路径,就是当前登录用户的家目录。

stat指令:

查看文件更详细的信息。

ACM时间如何理解?

touch指令:

功能:

  1. 创建一个不存在的文件夹
  2. touch命令参数可以更改文档或目录的日期时间

mkdir指令:

mkdir-p后面可以直接创建路径

几个小细节:

ls -d 显示当前目录的信息

ls -ld 显示更详细的信息,包括属性

命令行中用上下键显示历史命令。

tree命令:

tree命令用图形化显示当前文件的树状结构!

删除命令:

rmdir删除空文件,如果不是空文件,不让删

rm -rf:r表示递归删除,因为文件的形式是二叉树,我们要递归到叶子结点,删除叶子节点,再往上遍历删除,f表示强制删除(force)

* 是通配符,表示指定路径下的所有文件!

加上*删除路径下的所有文件

以.开头的文件(隐藏文件)默认不会被删除。

想要删除指定文件名,rm后面要跟上指定的文件名


常用选项
-f 即使文件属性为只读 ( 即写保护 ) ,亦直接删除
-i 删除前逐一询问确认
-r 删除目录及其下所有文件
总结:
以后删除就用rm,后面加上文件名或者目录,-r表示删除目录,-f表示强制删除,-i表示删除前再确定一遍是否删除

man指令:

功能:

查询Linux手册页的命令,比如Linux操作系统中有一个man,我们有不会的操作指令就可问这个man。

用法:

man 手册编号 查找的内容

如果不写手册编号,默认从1开始,直到找到为止。

cp命令:

cp source destination

拷贝文件:

不能在相同目录下拷贝文件,不允许一个目录下有两个同名文件,除非后缀加上.bak表示备份文件

拷贝文件也不包含.开头的文件,因为每个文件下面都含有.文件和..文件,如果拷贝过去,会造成一个文件下含有相同的文件名,这与我们理念一个文件中不包含两个相同的文件名相悖!

拷贝目录:

默认cp只能拷贝文件,加上-r-f可以拷贝目录

注意:

拷贝文件/目录时,我们可以更改拷贝过去的文件名,只要保重是同级别,就表示更改文件名

当要被拷贝的目录后面加上/* ,就表示拷贝当前所有的文件!

nano指令:

后面加文件名,打开文件,进行书写

mv命令:

功能:

1、剪切文件

mv source dst

跟cp拷贝命令相同理解,如果dst是绝对路径,是跟source是同级,那么可以更改dst的文件名。

2、给文件重命名

利用剪切的操作给文件重命名,如果将一个文件剪切到不存在的文件名,就是将原来的文件重命名那个不存在的文件名

alias取别名

在命令行中取的别名,在Xshell关闭后,就自动销毁了

所以ll是l-s的别名。

echo命令

后面跟什么,就打印什么。

> 输出重定项

echo本来是将内容写入到显示屏上,加上>后,我们可以让其写入在文件中。(这就构成了输出重定项)如果是新的文件,就新建一个文件,然后将内容输入到文件中

每次先清空文件内容,再写入文件。

所以我们根据这个特性,可以新建空文件,并且清空目标文件

我们也可以在>前面什么也不写,代表新建一个空文件。

>> 追加重定项

跟>的区别是>>不会清空文件,而是在原始内容的基础上追加新的内容。

cat命令:

1、打印文件内容

2、cat-n 在输出时加上行号

3、cat和tac,后者反向打印

4、cat输入什么,就会自己打印什么

cat从键盘文件读取什么,就向显示器文件写入什么,默认读取的时候,是从键盘文件中输入的!

输入重定项 <

把本应该从键盘文件中读入的内容,更改成从普通文件中进行输入,输入重定项!

less指令:

1、less后面跟文件名,读取文件内容

2、/ 加上字符串,向下搜索字符串功能。

head/tail指令

head和tail就像他的名字一样浅显易懂,他们是用来显示开头或结尾某个数量的文字区块

语法:

如果head/tail直接跟上文件名,默认打印前10行/后10行。

如果加上-n,n自行输入,就表示打印前n行/后n行

| 命令行管道

将多组命令连接到一起,例如上面指令,是前80010行代码作为数据通过 | 这个管道,作为下一个命令的输入可以打印80000~80010行代码!

相关推荐
feing.3 分钟前
-bash: ./run.sh: /bin/bash^M: bad interpreter: No such file or directory 报错解决方法
linux
假客套5 分钟前
2024 同一个网段,反弹shell四种方法【linux版本】bash、python、nc、villian反弹shell图解步骤
linux·运维·服务器·网络安全·反弹shell
F l e10 分钟前
Linux基础(十四)——BASH
linux·chrome·bash
脱了格子衬衫1 小时前
linux安装ansible
linux·运维·ansible
小丑西瓜6661 小时前
MySQL库操作
linux·服务器·数据库·mysql
小珑也要变强4 小时前
shell脚本基本概念讲解
linux·运维
爱吃喵的鲤鱼5 小时前
linux 用C语言编写自己的myshell
linux·运维·服务器·c语言·算法
矛取矛求8 小时前
Linux如何更优质调节系统性能
linux
内核程序员kevin9 小时前
在Linux环境下使用Docker打包和发布.NET程序并配合MySQL部署
linux·mysql·docker·.net
kayotin10 小时前
Wordpress博客配置2024
linux·mysql·docker