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

目录

一,前提

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

1.  whoami——判断身份 

2. 创建用户

3. 销毁用户

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

 1. pwd——查看路径

 2. ls ——打开当前目录

 3. touch——创建文件

 4. nano——打开文件

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

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

 7. cd ——更改路径 

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

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

8. 写一段简单的c程序

1. 创建一个test.c 文件

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

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

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

1. alias ——取别名

10 . touch 指令

11. mkdir —— 创建目录

12.  rmdir & rm

1. rmdir ——删除空目录

 2. rm——删库跑路

13 . man——手册指令

14. cp —— 拷贝指令

1. 拷贝单个文件

2. 拷贝目录 cp -rf

15. mv——剪切

1. 移动文件

2. 对文件重命名

四, 查看,文件处理指令

 16.  查看指令

1. cat 

2. more 指令

3.   less 指令(推荐)

4. 总结

休息一下 

17.  局部查看

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

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

3.  查看中间数据

 前提须知——重定向

18.时间相关的指令

date显示

2.在设定时间方面

3.时间戳

19. cal —— 日历指令

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

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

22. zip  &  unzip

1.  zip —— 压缩

2. unzip —— 解压

​编辑

23. tar ——打包 & 解包

1. 打包与压缩的区别

24. 热键

结语


一,前提

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 ——显示隐藏文件

注意:linux不是通过文件名的后缀进行文件类型区分,而是文件属性开头的第一个字母,-表示普通文件,d表示目录文件) 

功能 :对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
常用选项:(不用记住,以后忘了再查)
-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  显示在当年中的第几天(一年日期按天算,从11号算起,默认显示当前月在一年中的天数)
  • -y  显示当前年份的日历

比如:

cal -y  2023

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

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

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

特点:

  • Linuxfind命令在目录结构中搜索文件,并执行指定的操作。
  • Linuxfind命令提供了相当多的查找条件,功能很强大。由于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 : 解压到指定目录

简单用法:

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

 

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

24. 热键

[Tab] 按键 --- 具有『命令补全』和『档案补齐』的功能
[Ctrl]-c 按键 --- 让当前的程序『停掉』
[Ctrl]-d 按键 --- 通常代表着:『键盘输入结束 (End Of File, EOF End OfInput) 』的意思;另外,他也可
以用来取代 exit。

结语

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

猜你喜欢

转载自blog.csdn.net/qq_72112924/article/details/130690226