Linux常见指令(1)

一、使用XShell登陆主机

我们在XShell中输入以下指令,再输入密码就可以远程连接到我们的主机。

ssh root@公网ip

另外我们注意一下XShell下的复制粘贴,我们的CV大法已经没有用啦:

复制: Ctrl + Insert

粘贴: Shift + Insert

有的设备可能还需要搭配Fn

二、Linux下基本指令

我们学习Linux其实感官上是比较抽象的,没有我们自己设备那样多彩,往往都是通过字母来观察我们的操作,这也是难上手的原因之一。在我们的电脑上,我们执行命令只需要用鼠标点击图标,有图标使用起来我们就不会感到索然无味,而且单机这个操作也很简单。但是我们不要只把它想象成几行代码在屏幕上行走,我们把指令联想到我们的单机操作,把XShell的反馈当成电脑的执行。

比如我们输入新建文件夹的指令,就是代替了我们的右键然后新建文件夹操作,我们一定要记住我们在学习的是一种操作系统,我们是在重新驯服一门新电脑。

1、ls指令

**功能:**对于目录,该命令列出该目录下的所有子目录与文件。

对于文件,将列出文件名以及其他信息。

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

我们不学习过多的选项,我们抽出来几个来看一下。

ls -a列出目录下的所有文件,包括以 . 开头的隐含文件。

ls -l 列出文件的详细信息

2、pwd指令

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

语法: pwd

3、mkdir指令 !

**功能:**在当前目录下创建一个名为 "dirname"的目录
语法: mkdir [选项] dirname

在这里我们先用mkdir创建,然后用pwd显示就可以验证我们的正确性。

mkdir --p test/test1/test2 : 递归建立多个目录

我们如果像这样建立多个目录,我们不用一个个地打开,而可以用树形结构把他们全部显示出来,但我们需要先在XShell中安装一个tree指令: yum -y install tree

tree [目录]:用树状结构显示目录结构

在某种极端情况,我们的系统可能会失控,我们可以用 ctrl+c 来强制终止

4、cd指令

功能: 改变工作目录。将当前工作目录改变到指定的目录下。
**语法:**cd 目录名

这里我们也要讨论绝对路径和相对路径:

Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。Linux系统中,文件路径以**/分隔,而我们的Windows则使用的是\**分隔

在这里如果路径 D:\Users\13185\Desktop\C++ 则为绝对路径,这是从根目录一层一层延伸下来的

在我们的ls指令中我们可以看到其中有**...**,其中,前者表示当前路径,后者表示上一路径。

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

5、touch指令

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

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

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

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

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

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

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

我们在这里只讨论新建文件,注意是新建文件,不是文件夹!所以我们一定要加后缀!

我们仔细看上面的 Nov 25 20:42,就是文件的时间属性,如果我们想看到文件的更多属性,我们额外学一个指令:stat 文件名

其中 Access Modify Change 分别是访问文件的时间、修改文件内容的时间、修改文件属性的时间。这三个时间被称为一个文件的ACM时间。

6、rmdir指令 && rm 指令 !

6.1 rmdir

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

**功能:**删除空目录

语法: rmdir [-p][dirName]
**适用对象:**具有当前目录操作权限的所有使用者

注意:rmdir删除的是空目录,如果你的目录非空则会报错。

我们来看例子,我们进入b文件夹,其中有非空的c和空的c2

当我们 rmdir c 时,因为c非空,所以会报错:

但是当我们 rmdir c2 时,程序成功执行,ll 查看时,b 中已经没有了 c2

6.2 rm

rm命令可以同时删除文件或目录

**功能:**删除文件或目录

**语法:**rm [-f-i-r-v][dirName/dir]
**适用对象:**所有使用者

常用选项:
-f 即使文件 属性为只读(即写保护),亦直接删除
-i 删除前逐一询问确认
-r 删除目录及其下所有文件

我们查看我们的根目录发现好多文件啊,我们来用新学的指令挨个删除。

在我们删除时,如果系统询问,y即是yes,n即是no

其中,-f 可以直接删文件,-r 可以直接删目录,如果是 -rf ,则系统直接删除不会像上述一样询问

6.3 * 通识符

* :可以匹配任意文件名

7、 man指令 !

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是man。

语法: man [选项] 命令

上述来源:比特科技

8、 cp指令 !

语法: cp [选项] src dest
**功能:**复制src到dest
**说明:**若dest是目录,则直接把src拷贝到该目录;若dest是带路径的文件名,则会拷贝到指定目录,顺便可以重命名。另外不论src是文件还是目录,我们都可以加选项 -rf 确保无误

9、 mv指令 !

mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。

语法: mv [选项] src dest
功能:

1.在指定目录下对文件进行重命名

2.将指定目录下的文件或者目录"剪切"到指定的目录下

3.在2的同时进行重命名


常用选项(略):

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

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

三、 快速书写代码(nano)

0.首次使用需要安装nano,yun -y install nano

1.nano xxx.c 打开文件,没有会自动创建

2.书写完成后 ctrl+x退出

3.gcc xxx.c 对文件进行编译

  1. ./a.out 运行代码

5.cat xxx.c 显示文件内容,cat在后面会讲到。

11、 cat指令

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

tac反向查看目标文件的内容
常用选项:

-b 对非空输出行编号

-n 对输出的所有行编号

-s 不输出多行空行

如果查看文件内容过多,则直接跳到最后打满一屏,而不可以向前翻阅,如果查阅大文件,我们来学习下一个指令 more。

12、 more指令

语法: more [选项][文件]
功能: more命令,功能类似 cat

常用选项:

-n 对输出的所有行编号

q 退出more

more可以从起始开始打满一屏幕输出后停下来,让用户自己向下翻阅,逐行阅读,但无法回退,若需要回退则可以接着学习下一个指令 less。

13、 less指令 !

语法: less [参数] 文件
功能:

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

-i 忽略搜索时的大小写

-N 显示每行的行号

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

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

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

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

q:quit

14、 head指令 && tail指令

14.1 head指令

head 与 tail 是用来显示开头或结尾某个数量的文字区块, head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾。

**语法:**head [参数] [文件]
**功能:**head用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
选项:-f 循环读取

-n<行数> 显示行数

比如 head -5 filename 表示显示文件的前五行

14.2 tail指令

tail 命令从指定点开始将文件写到标准输出(即屏幕)。tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容。

语法: tail[必要参数][选择参数][文件]
功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
选项:-f 循环读取

-n<行数> 显示行数

比如 tail -5 filename 表示显示文件的最后五行

取头取尾都学了,如果我们需要取中间应该怎么办呢?

14.3 head指令与tail指令结合

假设我们有一个一千行的文件 file.txt ,我们需要取到第612行到第718行之间的行,我们要怎么办呢?下面来看我怎么操作吧:

head -718 file.txt > tmp.txt//取前718行放入临时文件,其中>目的是变向

tail -106 file.txt > tmp**.txt**

缺点:需要创建临时文件

那如果我们不想多此一举,我们就想直接拿到,应该怎么办呢?

head -718 file.txt**|**tail -106

可以看到,我们在这里看到了一个很诡异的符号 | ,下面我们来学习以下 | 是什么意思。

| 管道

|:我们把它叫做管道

结构:有一个入口,有一个出口

作用:进行数据资源传输

以我们上面写的为例:head -718 file.txt**|**tail -106 管道把前面的数据拿出来传给后面的指令,后面的指令直接对从管道中拿到的数据进行操作,所以我们也看出来了后面并没有文件名。

管道不止能级联两个指令,管道可以级联多条指令,如**head -718 file.txt****|**tail -106 |****tac则是对数据逆向打印

echo 指令

我们来认识一个指令 echo,它可以把内容输出到屏幕上

> 输出重定向

下面我们再来认识一个符号:

>:输出重定向

Linux的理念:Linux中一切都是文件。

在Linux中,我们的显示器也算是文件,就有了上面能把内容输出到屏幕上的操作,如果我们运用输出重定向符号,就可以用 echo 把内容输出到指定的文件中

如果文件不存在,echo还可以创建文件,再把内容放进文件中

通过上面的操作我们已经知道了我们把"Hello Linux"输入到了log.txt中,下面我们再来输入

通过这次我们能看出来,输出重定向时,每次都会清空原文件中的内容。

所有我们得到输出重定向的两个特点:

> filename 新建文件

> filename 清空文件

>> 追加重定向

追加重定向与输出重定向不同的是,他不会自动清空文件内容

< 输入重定向

我们的cat默认是从键盘读取数据,但是当我们使用 < 时,我们就可以让它从文件中或其他地方来读取数据。

时间相关指令

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@1520210322

Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数

15、 Cal指令

cal命令可以用来显示公历日历。

命令格式: cal [参数][月份][年份]
功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份
常用选项:

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

-j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)

-y 显示当前年份的日历

16、 find指令 !!-name

**语法:**find pathname -options
**功能:**用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)
常用选项:-name 按照文件名查找文件。

17、grep指令

语法: grep [选项] 搜寻字符串 文件
**功能:**在文件中搜索字符串,将找到的行打印出来,行文本过滤工具
常用选项:

-i:忽视大小写,使操作大小写不敏感

-n:输出时打印行号

-v:反向选择,显示非搜索字符串的文件

18、zip/unzip指令

这就是压缩和解压缩的指令,但我们首次使用时可能会需要安装。

语法: zip 压缩文件.zip 目录或文件
功能: 将目录或文件压缩成zip格式

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

相关推荐
什么半岛铁盒2 分钟前
【Linux系统】Linux环境变量:系统配置的隐形指挥官
linux
Lw老王要学习34 分钟前
Linux容器篇、第一章_02Rocky9.5 系统下 Docker 的持久化操作与 Dockerfile 指令详解
linux·运维·docker·容器·云计算
橙子小哥的代码世界1 小时前
【大模型RAG】Docker 一键部署 Milvus 完整攻略
linux·docker·大模型·milvus·向量数据库·rag
倔强的石头1062 小时前
【Linux指南】用户与系统基础操作
linux·运维·服务器
云上艺旅2 小时前
centos升级内核
linux·运维·centos
kaikaile19952 小时前
centos开启samba服务
linux·运维·centos
云上艺旅2 小时前
centos部署k8s v1.33版本
linux·云原生·kubernetes·centos
好多知识都想学2 小时前
Centos 7 服务器部署多网站
linux·服务器·centos
好多知识都想学2 小时前
centos 7 部署awstats 网站访问检测
linux·运维·centos
Li-Yongjun3 小时前
深度解析 Linux 内核参数 net.ipv4.tcp_rmem:优化网络性能的关键
linux·网络·tcp/ip