0


【linux】图文并茂,让你轻松掌握Linux基本指令

一,前提

  1. 服务器: 一台云服务器(阿里云先嫖一个月),本文配置选centos7.6。

  2. 重设root密码:当我们购买好云服务器后(这里以阿里云为例),重置为较为复杂的密码(我们拷贝一份所买云服务器的公网IP)。

  3. 下载Xshell: 方便远程访问服务器

  4. 安装Xshell:跟着默认走就行,安装成功后开始

(注:**XShell **下的复制粘贴:

复制**: **ctrl + insert (有些同学的 insert 需要配合 fn 来按)

粘贴: shift + insert

ctrl + c / ctrl + v 是不行的)

二, 在root身份下,管理用户

目的:作为小白的我们,root身份权限太大了,出错容易导致服务器崩溃,所以需要创建子用户。

1. whoami——判断身份

2. 创建用户

步骤如下:

3. 销毁用户

步骤如下:

三,文件增,删,移动指令

1. pwd——查看路径

2. ls ——打开当前目录

我们如果发现没有出现目录,那是因为内部没有创建文件,所以就显示没有。

3. touch——创建文件

touch [文件名]

4. nano——打开文件

比如:这里有一个test.c文件,我们打开指令是:

用法: nano test.c

(注意:如果一次使用nano 会发现找不到文件,我们需要切换root身份去输入

Ubuntu / Debian:

apt-get install nano -y

CentOS / Fedora:

yum -y install nano

等待安装成功即可。)

5. ls -l ——以列表形式打印该目录下文件的属性

6. ls -a ——显示隐藏文件

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

常用选项:(不用记住,以后忘了再查)

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

7. cd ——更改路径

1. cd + 新路径(绝对路径)

语法:cd 目录名

功能:改变工作目录。将当前工作目录改变到指定的目录下。(补充:几乎所有的操作系统存放文件,都采用多叉树的结构。)

示例:

2. 通过回退机制, cd + .. (相对路径)

这里用上我们前面发现的"." ''..''的隐藏文件

总结:.与..这两个隐藏文件每个目录下都会存在,以便于我们回退路径——当然我们回退到根目录下就不能再回退了。

其他的指令:

cd /home/litao/linux/ : 绝对路径 ————从根目录开始的索引(唯一性)

cd ../day02/ : 相对路径 ————以当前目录开始索引 (多样性)

cd ~:进入用户家目(root用户,对应的工作用户一定是root;普通用户,对应的一定是/home/xxxx)

cd -:返回最近访问目录

8. 写一段简单的c程序

1. 创建一个test.c 文件

touch test.c // 感兴趣可以 ls 验证一下

2. nano test.c 进入test.c文件进行代码编写

3. 执行生成的可执行文件

9. which + 指令 ——找到指令所在的路径

这里我们不禁会想,指令有其路径,那么一定有他的文件。 指令本身是linux自带的可执行程序,那么指令也是文件。

这里我们顺便了解一下alias

1. alias ——取别名

功能:将复杂的指令修改,方便使用。

作用周期:登陆修改持续到退出服务器,退出即重置修改,一方面原因是防止指令名污染

10 . touch 指令

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

功能:

  1. 创建普通文件,同时记录创建时间。

  2. 更新创建时间和修改时间。

常用选项

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

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

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

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

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

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

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

11. mkdir —— 创建目录

语法:mkdir [选项] dirname...

功能:在当前目录下创建一个名为 “dirname”的目录

常用选项

-p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立

好那些尚不存在的目录,即一次可以建立多个目录;

如:

图中操作,我们用到了tree -a的操作,这个不是linux默认的指令,需要安装。详细步骤可以参考这位大佬的文章:(3条消息) Linux下tree命令安装及使用_安装tree命令_wangqingchuan92的博客-CSDN博客

12. rmdir & rm

1. rmdir ——删除空目录

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

语法:rmdir [-p][dirName]

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

功能:删除空目录

常用选项

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

2. rm——删库跑路

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

语法:rm [-f-i-r-v] [dirName/dir]

适用对象:所有使用者

功能:删除文件或目录

常用选项

-f 即使文件属性为只读(即写保护),亦直接删除文件(无法删除目录)。

-i 删除前逐一询问确认

-r 删除目录及其下所有文件(递归删除)

(1) rm -r

(2) rm -rf

13 . man——手册指令

我们知道在过去我们需要查某些库函数,我们都会去网上或者是MSDN上查,而在linux 上我们可以问这个man。

一般我们需要去root 身份下输入指令安装:(centos7.6)

yum intstall -y man-ages

假如说我们想查询 C语言的printf函数使用:

因此 我们查找手册时需要指定对应的手册页数。

14. cp —— 拷贝指令

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

功能: 复制文件或目录

说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。

常用选项

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

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

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

接,则一律视为普通文件处理

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

1. 拷贝单个文件

2. 拷贝目录 cp -rf

-r :是递归的意思,-f是强制的意思跟前面的删除目录意思一致

15. mv——剪切

功能:

1. 移动文件

语法:mv [文件名或者目录] [路径]

2. 对文件重命名

语法:mv [文件或者目录名] [新的文件名或者目录名]

三, 查看,文件处理指令

16. 查看指令

1. cat

语法:cat [文件] 或者是 cat 不加文件(数据输入是键盘也就是标准输入)

功能:只查看文件

缺点:文件一次性全部输出。

常见选项:

  • -b 对非空输出行编号
  • -n 对输出的所有行编号
  • -s 不输出多行空行

(注: tac 指令——逆序输出内容,cat指令——正序输出内容)

2. more 指令

跟cat类似,具有查看功能,但more 能分批查看。

缺点:只能下翻不能回头

常见选项:

  • -n 对输出的所有行编号, 比如:-10,一次输出10行,回车键再显示下面的(默认设置,是填满整个页面)
  • q 退出more

3. less 指令(推荐)

语法:less [参数] 文件名

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

选项

  • -i 忽略搜索时的大小写
  • -N 显示每行的行号
  • /字符串:向下搜索“字符串”的功能
  • ?字符串:向上搜索“字符串”的功能
  • n:重复前一个搜索(与 / 或 ? 有关)
  • N:反向重复前一个搜索(与 / 或 ? 有关)
  • q:quit (退出查看)

4. 总结

当我们查看比较少的内容时,可以使用cat 打印出来; 查看比较大的文件时,如查看日志,别人大量代码时,我们用 more / less,其中Less更方便,推荐用less。

休息一下

17. 局部查看

1. head ——查看前面10(默认)行内容

语法: head -n [文件名]

2. tail —— 查看后10(默认)行内容

语法: tail -n [文件名]

3. 查看中间数据

前提须知

了解:输入,输出,追加重定向

假设有10行数据,我想要看3到5行的数据。

方法一: 提取1~5的数据,重定向到新文件中,然后我们取后2行数据;

** 方法二**:通过数据管道

管道传数据可以灵活组合(流水线功能)。比如:cat -n hi.txt | head -5 | tail -2

**18.****时间相关的指令 **

*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@1508749502

Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的

午夜)开始所经过的秒数,不考虑闰秒。

19. cal —— 日历指令

功能: 查看日期

语法: cal [参数][月][年]

常见搭配:

  • -3 显示系统前一个月,当前月,下一个月的月历
  • -j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
  • -y 显示当前年份的日历

比如:

cal -y 2023

20. find——查找文件(重要)

语法: find [选项] [文件名]

功能:从文件树中寻找目标文件,可能访问磁盘。

特点:

  • Linux下find命令在目录结构中搜索文件,并执行指定的操作。
  • Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。
  • 即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。
  • 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)

这里仅了解一个常见的用法:

find -name [文件名]

21. grep——文件行查找指令

语法: grep [选项] “字符串” 文件名

功能: 从文件中查找符合条件的行,并输出出来

常见选项:

  • -i :忽略大小写的不同,所以大小写视为相同
  • -n :顺便输出行号
  • -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行

借用正则表达式

22. zip & unzip

1. zip —— 压缩

语法: zip [选项] [压缩名+zip] [文件名或者目录]

**常用选项: **

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

实践:

2. unzip —— 解压

语法:

  1. unzip [压缩文件名]

  2. unzip [压缩文件名] -d [指定解压到地址]

23. tar ——打包 & 解包

1. 打包与压缩的区别

打包:把一堆文件或者目录,集合在一个文件中,大小不改变。

压缩:通过压缩算法将文件进行压缩,大小可能是原来的一半甚至是更少。

选项:

-c :建立一个压缩文件的参数指令(create 的意思);

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

-t :查看 tarfifile 里面的文件!

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

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

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

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

-C: 解压到指定目录

简单用法:

  1. 打包: tar -czf [打包名压缩名] [目标文件]

  1. 解包: tar -xzf [文件名.tgz] -C [目录或路径]

24. 热键

[Tab]按键---具有『命令补全』和『档案补齐』的功能

[Ctrl]-c按键---让当前的程序『停掉』

[Ctrl]-d按键---通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可

以用来取代exit。

结语

本小节就到这里了,感谢小伙伴的浏览,如果有什么建议,欢迎在评论区评论;如果给小伙伴带来一些收获请留下你的小赞,你的点赞和关注将会成为博主创作的动力。

标签: 运维 服务器 linux

本文转载自: https://blog.csdn.net/qq_72112924/article/details/130690226
版权归原作者 花果山~~程序猿 所有, 如有侵权,请联系我们删除。

“【linux】图文并茂,让你轻松掌握Linux基本指令”的评论:

还没有评论