Linux--命令行操作

一、Linux的作用

1.简单的文件操作

2.编程

3.支持系统和网络

二、多账号管理

1、我们需要在root账号下进行,可以用whoami来查询账号身份

2、adduser 你要创建的账号名 就可以创建一个账号

3、ls /home可以查看账号是否创立

4、使用passwd 创建账号名字的来设置账号密码(注意账号不会回显)

5、当我们进入时使用命令ssh 账户名字@你自己的公网ip就可以了

三 、 Liux常见命令行操作

在讲解命令行之前,提出一个问题,如果我新建一个空文件,这个文件要不要占据磁盘空间

答案是肯定的,因为虽然我们没有在文件中存储东西,但他的属性例如:名字,创建的时间等属性都需要占据磁盘。所以必须要记住:文件 = 文件内容+文件属性

凡是要对文件进行操作:

  1. 对文件内容进行操作

2.对文件属性进行操作

ls

语法:ls[选项][目录或者文件]

功能:对于目录,该命令列出该目录的所有子目录与文件,对于文件,将列出文件名以及其他信息

常见选项:

-a 列出目录下所有文件,包括以.开头的隐含文件 .表示当前目录..表示上级目录

-d 将目录像文件一样显示,而不是显示其下的文件

-i 输出的i节点的索引信息

-k 以字节的形式表示文件的大小

-l 列出文件的详细信息(看到的是目录里面的内容

-n 用数字的 UID,GID代替名称

-F 每个文件名后附上一个字符以说明该文件的类型,"*"表示可执行文件的 普通文件

-r 对目录反向排序

-t 以时间排序

-s 在l文件后输出该文件的大小。(大小排序,如何找到目录下最大的文件)

-R 列出所有子目录下的文件

-1 一行只输入一个文件

示例:

常见的选项可以组合例如:ls -la就等于ls -l -a

pwd

小知识点:linux中路径用/作为路径分隔符,window一般使用\,路径的价值,在于标识文件的为一性和定位目标文件

功能:显示用户当前所在的目录

演示:

cd

小知识点:路径的认识

  • Linux系统中,磁盘的文件和目录被组成一颗目录树,每一个节点都是目录或文件 目录结构:
  • 其中路上节点(非叶子节点)一定是目录,叶子节点一定是空目录或者是普通文件
  • 绝对文件:一般从从/开始,不依赖其他目录的定位方式,具有唯一性,因为每一个子目录都只有一个父节点,一般在配置文件中写入某些文件的配置路径时使用,一般不会随着用户的路径变化而丧失唯一性。
  • 相对路径:相对于当前用户所处的目录,定位文件的路径方式,具有唯一性,一般在命令行操作的时候使用./115/code,意思是上级目录中的115目录的code文件
  • 理解路径存在的意义:树状组织方式,都为了保证快速定位查找到指定的文件,而定位文件就需要具有唯一性的方案来进行定位文件。其中任何一个节点,都只有一个父节点,所以,从根目录开始,定位指定文件,具有唯一性。
  • Linux下一切皆文件

语法:cd 目录名

功能:改变工作目录,将当前目录改变到指定目录下

演示:

用法:

可以跟绝对路径,或者相对路径

cd -可以跳到上级目录

cd ~可以跳到当前用户(用户分为管理员和普通用户)的家目录(指定用户登录的时候,默认所处的路径,提供默认所处的路径,我们后续所有的操作都在,自己的家目录中操作,管理员的家目录/root,普通用户的家目录/home/普通用户的名字)

touch

小知识点:

stat跟一个文件名可以知道文件的详细属性

我们可以观察到他有三个时间分别是Access访问时间 Modify创造的时间 Change文件属性修改的时间。

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

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

演示:

当前的hello.txt的时间是

我们再一次touch hello.txt

他的三个时间就改变了

常见选项:

touch -a 文件名:只改变access的时间(但具体得看设备自身,下图改变了access和change)

touch -c 文件名 :只改变 Modify的时间(具体看设备,如下图全部改变了)

mkdir

小知识点:可以在我们的xshell下安装一个软件tree,它可以让文件以树状的结构显示

必须在root身份下

yum install -y tree (centos中的安装命令)

apt install -y tree (ubuntu中的安装命令)

语法:mkdir[选项] 文件名

功能:在当前目录下创造一个目录

常用选项:

-p :可以是一个路径名称。此时若路径的某些目录尚不存在,系统建立那些不存在的目录,即依次可以建立多个目录

-f强制删除

rmdir和rm

大部分情况下我们删除会使用rm

rmdir是一个与mkdir相对应的命令,mkdir是建立目录,而rmdir是删除命令

语法:rmdir[-p]文件名

使用对象:具有当前目录操作权限的所有者

功能:删除空目录

常用选项:

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

举例:

rm

可以删除文件和目录

语法:rm -选项

使用对象:所有使用者

功能:删除文件或目录

常用选项:

-f 强制删除,即使文件的属性是只读,都可以删除

-i 删除前逐一询问确定

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

举例:

如果我们不加 -f那我们就会发现在我们执行删除指令的时候他会询问我们(root身份的时候)

上图我们发现,如果我们直接删除目录是删除不了的,因为目录下有很多文件,例如删除115,那么他其下的d1,d2,d3,d4都要删除,我们加一个-p就可以解决很多问题

man

linux的命令有很多参数,我们不可能全记住,可以通过查看联机手册获取帮助

语法:man[选项]命令

常见选项:

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

num 只在第num章查找

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

小知识:

man手册分为九章(不同的系统之间可能有差异)

1是普通的命令

2是系统调用,如open,write之类的

3是库函数

4略

5指的是文件格式

6是给游戏留的,由各个游戏自己定义

7是附件还有一些变量,比如像environ这种全局变量在这里就有说明

8是系统管理用到的命令,这些命令只能由root使用

9略

which

查找指定命令的路径

我们可以发现所谓的命令其实就是指定路径下(/usr/bin )的一个可执行文件,指令的本质就是有人写了一段可执行代码放在了指定路径下(/usr/bin)所谓的安装软件就是把目标文件拷贝到系统认识的指定文件中;

我们同样可以发现在文件中有一些文件是 类似于 alias ls = .......其实是因为我们由的命令实在是太长了为了方便我们给它取地别名,如上图 ls 其实就是ls -- color.

echo

我们上面所说linux下一切皆文件,我们就可以将打印到显示器上理解为向显示器文件中进行写入

从键盘读取数据到内存中可以理解为从键盘文件里面读取内容

echo文件的作用就是可以打印内容到显示器上

还可以使用输出重定向,向文件中写出 (可以看到的是刚开始我们是没有log.txt的文件的,当我们向它里面写入的时候,系统会自动创建这个文件)

观察发现当我们再一次写入的时候文件里的内容会自动更新,所以我们可以用>文件来实现清空的文件的功能

当我们使用两个>(追加重定向)的时候就会不覆盖来写入内容

cp

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

功能:复制文件或目录

说明:

CP指令用于复制文件或目录

如:同时指定两个的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中

常用选项:

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

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

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

后面接目录,单纯的把文件,拷贝到指定目录下

后面接的文件,拷贝并重命名

因为文件是递归的所以我们没有办法直接复制,必须要加上一个r

mv

mv命令是move的缩写,可以用来移动文件或者将文件改名,经常用来备份文件或或者目录

语法:mv[选项]

改名:

剪切:

如果跟的是一个已经存在的就是剪切功能

剪切加重命名

如果指定的位置,前半段知道后半段不知道,功能就是剪切加重命名

cat

小知识点:文件 = 文件内容 + 文件属性

cat的作用就是对文件内容进行操作

语法:cat[选项][文件]

常用选项:

  • b 对非空输出行编号

-n 对输出的所用行编号

-s 不输出多行空行

演示:

tac

对内容倒置输出

more

小知识点:cat适用于小文件、配置文件的打印(一旦打印大型文件就会直接刷屏),more就使用于巨大的文本文件(但是只接受下翻,我们一般使用less)

语法:more[选项]

功能:more 命令,功能类似于cat

常用选项:

-n 指定输出行数

q退出more

演示:

cat 从头打到尾的shuaping

more 先打印全屏,按换行符往下翻

less

less 功能也是对文件或者其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大

less的用法比起more更加的有弹性,在more的时候,我们并没有办法向前翻,只能往后面看

但若使用了less时,就可以使用按键来进行前后翻,跟容易用来查看一个文件内容

除此之外,在less里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜

语法:less[选项]文件

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

选项:

-i 忽略搜索时的大小写

-N 显示每行的行号

/字符串 :向下搜索字符串的功能

?字符串:向上搜索字符串的功能

n: 重复前一个搜索(与/或?有关)

N:反向重复前一个搜索(与/或?有关)

q:quit

**语法:**head[选项]。。[文件]。。

功能:head用来显示档案的开头至标准输出中,默认head命令打印其相应的文件的头10行。

选项: -n 行数 显示的行数

tail

语法:tail [选项] 文件

功能:用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

选项:

-f 循环读取

-n 行数 显示行数

由上面的tail和head可以我们可以打印一个文件的前面和后面,但是中间部分怎么打印呢

head -行数 文件名| tail -行数

小知识点:|是管道,是文件,具有传送资源的作用,如下图的意思就是把头5行文件的内容传给|然后再进行tail -3的操作即打印后三行

date

指定格式显示时间:date +%Y:%m :%d

用法:date+标记

显示方面,使用者可以设定预显示的格式,格式设定为一个加号后接数个标记,其中最常用的标记如下:

%H:小时

%M:分钟

%S:秒

%X :相当于%H:%M:%S

%d : 日

%m :月份

%Y:年份

%F:相当于%Y-%m-%d

时间戳

时间到时间戳:date +%s

时间戳到时间:date -d@时间戳

举例:

cal

语法:cal 参数[年份]

功能:用来查看日历等时间信息,如只有一个参数,则表示年份,如只有两个参数,则表示月份和年份

常用选项:

-3 显示系统前一个月、当前月、下一个月的日历

-j 显示在当年中的第几天(从1月1日开始)

-y 显示当前年份的日历

find

介绍:linux下find命令再目录结构中搜索文件,并执行指定操作

linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它 的选项很多,我们这里只介绍一种。

即使系统中含有网络文件系统,find再该系统中同样有效。

再运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一 个 大的文件系统可能会花费很长的时间

语法:find 文件

功能:用于在文件树中查找文件,并作出相应的处理

常用选项:

-name 按照文件名查找文件(只介绍这一个)

举例:

whereis

功能:用于找到程序的源、二进制、手册 (主要用来找配置文件)

举例:

grep

语法:grep [选项] 搜索字符串 文件

功能: 在文件中搜索字符串,将找到的行打印下来

常见选项:

-i :忽略大小写的不同,所以大小写视为相同

-n: 顺便输出行号

-v : 反向选择,亦即可显示出没有"搜索字符串"内容的那一行。

举例:

nano

小知识:nano就相当于记事本 下载:centos :yum install -y nano ubuntu: apt intall -y nano

语法:nano 文件

功能:让文件以记事本方式打开

ctrl x 退出

zip/unzip

小知识点:把我们的文件数据进行归档,形成文件的过程。作用:网络发送方便(体积小,网络传送速度快),节省磁盘空间

语法:zip压缩文件。zip 目录或者文件.zip 文件名或者目录名

功能:将目录或文件压缩成zip格式(默认在当前目录)

常用选项:

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

举例:

将test 目录压缩到test1中 zip test1/test.zip test

解压到tmp目录中: unzip test.zip -d tmp

如下我们将115打包到114目录下,但是他只是打包了一个目录,如果希望文件都要打包需要加-r命令

rz 直接拖拽

rz sz

小知识点:下载一个lrzsz apt/yum install -y lrzsz

语法: sz 压缩包 rz(直接拖拽文件到linux)

功能:将linux的压缩包传到windows上 将windows的压缩包传给linux

举例

tar

语法: tar [参数] 文件与目录

功能: 打包/解包 ,不打开它,直接看内容

参数:

  • c :建立一个压缩文件的参数指令(creat)

-x: 解开一个压缩文件的参数指令

-t : 查看tarfile 里面的文件

-z :是否同时具有gzip的属性?亦即是否需要用gzip压缩

-j : 是否同时具有bzip 2的属性?亦即是否需要用bzip2压缩

-v: 压缩的过程中显示文件!这个常用,但不建议用在背景执行过程

-f :使用档名,请留意,在f之后要立即接档名!不要再加参数

-C:解压到指定目录

相关推荐
陈阳羽38 分钟前
云服务器Ubuntu安装宝塔面板MongoDB修改配置文件本地连接
服务器·mongodb·ubuntu
想躺在地上晒成地瓜干1 小时前
树莓派超全系列文档--(14)无需交互使用raspi-config工具其一
linux·树莓派·raspberrypi·树莓派教程
Shier833_Ww1 小时前
目标识别与双目测距(1)环境搭建:Ubuntu+yolov5+pcl库
linux·yolo·ubuntu
无名之逆1 小时前
hyperlane:Rust HTTP 服务器开发的不二之选
服务器·开发语言·前端·后端·安全·http·rust
苏十八1 小时前
计算机网络相关知识小结
服务器·网络·计算机网络
laugh123212 小时前
GitLab 服务器宕机时的项目代码恢复方法
服务器·git·gitlab·数据恢复
唐青枫2 小时前
Linux 历史命令操作教程
linux
愚润求学2 小时前
Linux基础指令(一)
linux·服务器·语法
struggle20253 小时前
AWS Bedrock 多代理蓝图存储库使用 CDK、Streamlit 和 LangFuse 运行 AWS Bedrock 多代理 AI 协作的蓝图
运维·人工智能·自动化·云计算·aws
IEVEl3 小时前
CentOS 7 安装 EMQX (MQTT)
linux·运维·centos