Linux基础入门

课程链接:黑马程序员新版Linux零基础快速入门到精通,全涵盖linux系统知识、常用软件环境部署、Shell脚本、云平台实践、大数据集群项目实战等_哔哩哔哩_bilibili

声明:该文章为本人的学习笔记,非正版教程

目录

声明:本文章为本人的学习笔记,非正版教程

第一章 概述

操作系统概述

硬件和软件

操作系统

初始Linux

Linux诞生

Linux内核

Linux发行版

虚拟机

概念

VMware WorkStation

安装

安装Linux虚拟机

远程连接Linux系统

图形化、命令行

使用命令行学习Linux系统

FinalShell

连接Linux

拓展:WSL(Windows Subsystem for Linux)

虚拟机快照

制作快照

第二章 Linux命令

Linux目录结构

Linux命令入门

Linux命令基础

命令、命令名

Linux命令基础格式

ls命令入门

ls命令的参数和选项

目录切换的相关命令(cd/pwd)

cd 切换工作目录

pwd 查看当前工作目录

相对路径、绝对路径和特殊路径符

相对路径、绝对路径

特殊路径符

创建目录/文件夹命令(mkdir)

mkdir命令

文件操作命令part1(touch、cat、more)

touch创建文件

cat命令 查看文件内容

more 命令查看文件内容

文件操作命令part2(cp、mv、rm)

cp命令复制文件\文件夹

mv移动文件\文件夹

rm命令可用于删除文件、文件夹

rm删除文件、文件夹 - 通配符

查找命令(which、find)

which命令

find命令

grep、wc和管道符

grep命令过滤文件内容

wc命令做数量统计

管道符(|)

echo、tail和重定向符

echo命令

反引号`(飘号)

重定向符 > 和 >>

tail命令

vi\vim编辑器

三种工作模式


第一章 概述

操作系统概述

硬件和软件

硬件:计算机系统中由电子,机械和广电元件等组成的各种物理装置的总称。(看得见摸得着的)

软件:是用户和计算机硬件之间的接口和桥梁,用户通过软件和计算机进行交流。而操作系统,就是软件的一类。

操作系统

作用:操作系统是计算机软件的一种,它主要负责:作为用户和计算机硬件之间的桥梁,调度和管理计算机硬件进行工作。

常见的操作系统

PC端: Windows、Linux、macOS

移动端:Android、IOS、Harmony OS(鸿蒙)等

初始Linux

Linux诞生

Linux由林纳斯·托瓦兹( Linus Torvalds)在1991年创立并发展至今成为服务器操作系统领域的核心系统。

Linux内核

Linux系统的组成:

  • Linux系统内核

  • 系统级应用程序

作用

  • 内核是提供系统最核心的功能,如:调度CPU、调度内存、调度文件系统,调度网络通讯、调度IO等

  • 系统及应用程序,可以理解为出厂自带程序,可供用户快速上手操作系统,如:文件管理器、系统管理器、图片查看、音乐播放等。

Linux发行版

内核是免费的、开源的,也就代表了:

  • 任何人都可以获得并修改内核,并且自行集成系统级程序

  • 提供了内核 + 系统级程序的完整封装,称之为Linux发行版

常用的发行版:CentOS、ubuntu

虚拟机

学习Linux系统,就需要一个可用的Linux系统。我们需要借助虚拟机来获得可用的Linux系统环境进行学习。

概念

虚拟的计算机。借助虚拟化技术,我们可以在系统中,通过软件:模拟计算机硬件,并给虚拟硬件安装真实的操作系统,这样就可以在电脑中,虚拟出一个完整的电脑,以供我们学习Linux系统。

VMware WorkStation

VMware WorkStation是windows版的虚拟机软件。

安装

下载:可以在博客上搜,破解安装教程都有

检查:按下win+R,输入ncpa.cpl,检查是否存在VMnet1VMnet8。有则安装成功,否则建议卸载并重启,再次进行安装流程

安装Linux虚拟机

  1. 下载CentOS 7(或其他版本)操作系统的安装包 (DVD-XXX.iso 后缀,如:CentOS-7-x86_64-DVD-1810.iso)。官网地址:Index of /7.6.1810/isos/x86_64 (centos.org)

  2. 打开VMware WorkStation,点击 创建新的虚拟机

  3. 浏览选择下载好的操作系统安装包,点下一步

  4. 设置账号密码

  5. 修改位置为 D:\CentOS7,也可以是其他,默认也行,不过尽量不在C盘

  6. 将虚拟机的磁盘大小调整到40G(为了方便使用)

  7. 可能还会需要你安装一个CentOS 7的解析工具

远程连接Linux系统

图形化、命令行

对于操作系统的使用,有两种使用形式:

  • 图形化页面使用操作系统

  • 以命令的形式使用操作系统

不论是Windows还是Linux亦或是MacOS系统,都是支持这两种使用形式

  • 图形化:使用操作系统提供的图形化页面,以获得图形化反馈的形式去使用操作系统。

  • 命令行:使用操作系统提供的命令,以获得字符反馈的形式去使用操作系统

使用命令行学习Linux系统

尽管图形化是大多数人使用计算机的第一选择,但是在Linux操作系统上,这个选择呗反转了

无论是企业开发亦或是个人开发,使用Linux操作系统,多数都是使用命令行

这是因为:

  • Linux从诞生至今,在图形化页面的优化上,并未重点开发。所以Linux操作系统的图形化页面不好用、不稳定

  • 在开发中,使用命令行形式,效率更高更加直观,并且占用低,程序运行更稳定

FinalShell

我们使用VMware可以得到Linux虚拟机,但是在VMware中操作Linux的命令行页面不方便,主要是:

  • 内容复制、粘贴跨越VMware不方便

  • 文件上传、下载跨越VMware不方便

  • 也就是和Linux系统的各类交互,跨越VMware不方便

我们可以使用第三方软件,FinalShell,远程连接到Linux操作系统上,并通过FInalShell去操作Linux系统。这样各类操作都会十分方便。

下载FinalShell官网 (hostbuf.com)

安装:除了要改一下安装目录,其他都是傻瓜式安装。

连接Linux

  1. 在Linux桌面空白右键,点击Open Terminal,打开终端

  2. 终端输入ifconfig,回车

  3. 在弹出来的信息中,找到ens33——>inet + ip ,记住ip地址

  4. 打开FinalShell,点击左上角的蓝色文件夹

  5. 在打开的页面中,再点击带加号的白色文件夹——>SSH连接(Linux)——>在主机栏输入刚刚的ip地址并填写好其他信息

  6. 点击确定,在弹出的窗口中再点击接收并保存

  7. 完成连接。也可以在两个终端分别输入ls来验证,输出的内容一样,即连接成功。

拓展:WSL(Windows Subsystem for Linux)

掌握通过WSL来获得Ubuntu系统

虚拟机快照

我们无可避免的可能损坏Linux操作系统。VMware虚拟机支持为虚拟机制作快照

通过快照将当前虚拟机的状态保存下来,在以后可以通过快照恢复虚拟机到保存的状态。(类似Windows的系统还原点)

制作快照
  1. 关闭虚拟机

  2. 在VMware左侧栏——》我的计算机——》右键要创建快照的虚拟机——》找到快照设置——》拍摄快照即可

  3. 恢复:在快照设置中选中要恢复到的快照状态,点击转到即可

第二章 Linux命令

Linux目录结构

Linux的目录结构是一个树形结构

Windows系统可以有多个盘符,如:C盘、D盘、E盘

Linux没有盘符的概念,只有一个根目录/,所有文件都在它下面

  • 在Linux系统中,路径之间的层级关系使用:/ 来表示

  • 在Windows系统中,路径之间的层级关系,使用:\ 来表示

在Linux中文件路径以/开头

Linux命令入门

Linux命令基础

命令、命令名

学习Linux,本质上是学习在命令行下熟练使用Linux的各类命令。

  • 命令行:即Linux终端(Terminal),是一种命令提示符页面。以纯“字符”的形式操作系统,可以使用各种字符化命令对系统发出操作指令

  • 命令:即Linux程序。一个命令就是一个Linux的程序。命令没有图形化页面,可以在命令行(终端中)提供字符化的反馈。

Linux命令基础格式

在Linux中,命令有其通用的格式:

cammand [-options] [parameter]

  • command:命令本身

  • -options:[可选,非必填]命令的一些选项,可以通过选项控制命令的行为细节

  • parameter:[可选,非必填]命令的参数,多数用于命令的指向目标等

语法中的[],表示可选的意思

示例:

  • ls -l/home/womengls是命令本身,-l是选项,/home/womeng是参数

    • 意思是以列表形式,显示/home/womeng目录内的内容

  • cp -r test1 tset2cp是命令本身,-r是选项,test1test2是参数

    • 意思是复制文件夹test1成为test2

ls命令入门

ls命令的作用是列出目录的内容,语法细节如下:

ls [-a -l -h] [Linux路径]

  • [-a -l -h]:是可选的选项

  • [Linux路径]:是次此命令可选的参数

不使用选项和参数,直接使用ls命令本体,表示:以平铺形式,列出当前工作目录(个人账户目录,即/home/登录用户名)下的内容

[womeng@localhost ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos
ls命令的参数和选项

列出根目录下的内容ls /

[womeng@localhost ~]$ ls /
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

显示隐藏目录ls -a

[womeng@localhost ~]$ ls -a
.   .bash_history  .bash_profile  .cache   .dbus    Documents  .esd_auth      .local    Music     Public     Videos
..  .bash_logout   .bashrc        .config  Desktop  Downloads  .ICEauthority  .mozilla  Pictures  Templates

以列表形式展示内容:ls -l

[womeng@localhost ~]$ ls -l
总用量 0
drwxr-xr-x. 2 womeng womeng 6 8月  22 07:00 Desktop
drwxr-xr-x. 2 womeng womeng 6 8月  22 07:00 Documents
drwxr-xr-x. 2 womeng womeng 6 8月  22 07:00 Downloads
drwxr-xr-x. 2 womeng womeng 6 8月  22 07:00 Music
drwxr-xr-x. 2 womeng womeng 6 8月  22 07:00 Pictures
drwxr-xr-x. 2 womeng womeng 6 8月  22 07:00 Public
drwxr-xr-x. 2 womeng womeng 6 8月  22 07:00 Templates
drwxr-xr-x. 2 womeng womeng 6 8月  22 07:00 Videos

组合使用ls -la /以列表的形式输出根目录的所有内容

PS:-la-al-a -l-l -a的作用相同

[womeng@localhost ~]$ ls -la /
总用量 24
dr-xr-xr-x.  17 root root  224 8月  22 06:57 .
dr-xr-xr-x.  17 root root  224 8月  22 06:57 ..
lrwxrwxrwx.   1 root root    7 8月  22 06:52 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 8月  22 06:58 boot
drwxr-xr-x.  19 root root 3340 8月  22 17:39 dev
drwxr-xr-x. 143 root root 8192 8月  22 17:44 etc
drwxr-xr-x.   3 root root   20 8月  22 06:58 home
lrwxrwxrwx.   1 root root    7 8月  22 06:52 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 8月  22 06:52 lib64 -> usr/lib64
drwxr-xr-x.   2 root root    6 4月  10 2018 media
drwxr-xr-x.   2 root root    6 4月  10 2018 mnt
drwxr-xr-x.   3 root root   16 8月  22 06:55 opt
dr-xr-xr-x. 220 root root    0 8月  22 06:58 proc
dr-xr-x---.   3 root root  151 8月  22 06:58 root
drwxr-xr-x.  41 root root 1260 8月  22 17:44 run
lrwxrwxrwx.   1 root root    8 8月  22 06:52 sbin -> usr/sbin
drwxr-xr-x.   2 root root    6 4月  10 2018 srv
dr-xr-xr-x.  13 root root    0 8月  22 06:58 sys
drwxrwxrwt.  18 root root 4096 8月  22 18:13 tmp
drwxr-xr-x.  13 root root  155 8月  22 06:52 usr
drwxr-xr-x.  21 root root 4096 8月  22 06:58 var

以kb形式显示根目录文件的大小ls -lh /

PS:-h要和-l配合使用才能生效

[womeng@localhost ~]$ ls -lh /
总用量 24K
lrwxrwxrwx.   1 root root    7 8月  22 06:52 bin -> usr/bin
dr-xr-xr-x.   5 root root 4.0K 8月  22 06:58 boot
drwxr-xr-x.  19 root root 3.3K 8月  22 17:39 dev
drwxr-xr-x. 143 root root 8.0K 8月  22 17:44 etc
drwxr-xr-x.   3 root root   20 8月  22 06:58 home
lrwxrwxrwx.   1 root root    7 8月  22 06:52 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 8月  22 06:52 lib64 -> usr/lib64
drwxr-xr-x.   2 root root    6 4月  10 2018 media
drwxr-xr-x.   2 root root    6 4月  10 2018 mnt
drwxr-xr-x.   3 root root   16 8月  22 06:55 opt
dr-xr-xr-x. 219 root root    0 8月  22 06:58 proc
dr-xr-x---.   3 root root  151 8月  22 06:58 root
drwxr-xr-x.  41 root root 1.3K 8月  22 17:44 run
lrwxrwxrwx.   1 root root    8 8月  22 06:52 sbin -> usr/sbin
drwxr-xr-x.   2 root root    6 4月  10 2018 srv
dr-xr-xr-x.  13 root root    0 8月  22 06:58 sys
drwxrwxrwt.  18 root root 4.0K 8月  22 18:13 tmp
drwxr-xr-x.  13 root root  155 8月  22 06:52 usr
drwxr-xr-x.  21 root root 4.0K 8月  22 06:58 var

目录切换的相关命令(cd/pwd)

cd 切换工作目录

当Linux终端(命令行)打开时,默认以用户的HOME目录作为当前的工作目录

我们可以通过cd命令,更改当前所在的工作目录。

cd命令来自英文:Chang Directory

语法:cd [Linux路径]

  • cd命令无需选项,只有参数,表示要切换到哪个目录下

  • cd命令直接执行,不写参数,表示回到用户的HOME目录

将工作目录切换到根目录cd /

PS:[womeng@localhost ~]变为[womeng@localhost /],也可以输入ls查看显示的文件变化来确定工作目录是否已经切换

[womeng@localhost ~]$ cd /
[womeng@localhost /]$ 

回到用户HOME目录cd

[womeng@localhost /]$ cd
[womeng@localhost ~]$ 
pwd 查看当前工作目录

通过ls来验证当前的工作目录,其实是不恰当的。

我们可以通过pwd命令,来查看当前所在的工作目录

pwd命令来自:Print Work Directory

语法:pwd

  • pwd命令,无选项,无参数,直接输入 pwd 即可

查看当前工作目录pwd

[womeng@localhost ~]$ pwd
/home/womeng

相对路径、绝对路径和特殊路径符

相对路径、绝对路径
  • 绝对路径:以根目录为起点,描述路径的一种写法,路径描述以/开头

  • 相对路径:以当前目录为起点,描述路径的一种写法,无需以/开头

如,要切换到用户目录下的Desktop文件夹有以下两种写法(需要先确保当前目录为用户的HOME目录)

绝对路径cd /home/womeng/Desktop

[womeng@localhost ~]$ cd /home/womeng/Desktop
[womeng@localhost Desktop]$ pwd
/home/womeng/Desktop

相对路径cd Desktop

[womeng@localhost ~]$ cd Desktop
[womeng@localhost Desktop]$ pwd
/home/womeng/Desktop

PS:

  • 自己练习时,要注意自己的当前工作路径,避免出现报错

  • 如无特殊需求,我们一般使用 相对路径,更加方便简洁

特殊路径符
  • . 表示当前目录,比如,./Desktop表示切换到当前目录下的Desktop目录内,和cd Desktop 效果一致

  • .. 表示上一级目录,比如:cd ..即可切换回上一级目录,cd ../..切换到上两级目录

  • ~ 表示HOME目录,比如:cd ~即可切换到用户的HOME目录或 cd ~/Desktop,切换到HOME内的Desktop目录

返回上一级目录cd ..

[womeng@localhost Desktop]$ pwd
/home/womeng/Desktop
[womeng@localhost Desktop]$ cd ..
[womeng@localhost ~]$ pwd
/home/womeng

进入当前目录下的Desktop目录cd ./Desktop

[womeng@localhost ~]$ cd ./Desktop
[womeng@localhost Desktop]$ pwd
/home/womeng/Desktop

返回上两级目录cd ../..

[womeng@localhost Desktop]$ cd ../..
[womeng@localhost home]$ pwd
/home

返回用户HOME目录cd ~

[womeng@localhost home]$ cd ~
[womeng@localhost ~]$ pwd
/home/womeng

进入用户HOME目录下的Desktop目录

[womeng@localhost ~]$ cd ~/Desktop
[womeng@localhost Desktop]$ pwd
/home/womeng/Desktop

创建目录/文件夹命令(mkdir)

mkdir命令

通过mkdir命令可以创建新的目录(文件夹)

mkdir来自英文:Make Directory

语法:mkidr [-p] Linux路径

  • 参数必填,表示Linux路径,即要创建的文件夹路径,相对路径或绝对路径均可

  • -p可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录

在用户HOME目录下创建一个文件夹mkdir 文件夹名

[womeng@localhost ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos
[womeng@localhost ~]$ mkdir womeng
[womeng@localhost ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos  womeng
[womeng@localhost ~]$ 

/home/womeng文件夹下创建一个test1文件夹mkdir /home/womeng/test1

[womeng@localhost ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos  womeng
[womeng@localhost ~]$ mkdir /home/womeng/test1
[womeng@localhost ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  test1  Videos  womeng

在当前目录下创建test2文件夹mkdir ./test2

[womeng@localhost ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  test1  Videos  womeng
[womeng@localhost ~]$ mkdir ./test2
[womeng@localhost ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  test1  test2  Videos  womeng

在上一级目录创建一个test3文件夹mkdir ../test3

[womeng@localhost ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  test1  test2  Videos  womeng
[womeng@localhost ~]$ cd Desktop
[womeng@localhost Desktop]$ mkdir ../test3
[womeng@localhost Desktop]$ cd ..
[womeng@localhost ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  test1  test2  test3  Videos  womeng

在用户HOME目录下创建一个test4文件夹mkdir ~/test4

[womeng@localhost ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  test1  test2  test3  Videos  womeng
[womeng@localhost ~]$ mkdir ~/test4
[womeng@localhost ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  test1  test2  test3  test4  Videos  womeng

创建多层级目录cd womeng/good/666

[womeng@localhost ~]$ mkdir -p womeng/good/666
[womeng@localhost ~]$ cd womeng/good/666
[womeng@localhost 666]$ pwd
/home/womeng/womeng/good/666

PS:这里如果不启用 -p选项,是会报错的

注意:创建文件夹需要修改权限,请确保操作均在用户的HOME目录(如:/home/用户名)内,不要在HOME目录外操作。涉及到权限问题,HOME外会创建失败。

文件操作命令part1(touch、cat、more)

touch创建文件

语法:touch Linux路径

  • touch命令无选项,参数必填,表示要创建的文件路径,相对、绝对、特殊路径符均可以使用

在当前工作目录下创建一个文件touch test.txt

[womeng@localhost ~]$ touch test.txt
[womeng@localhost ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  test1  test2  test3  test4  test.txt  Videos  womeng
[womeng@localhost ~]$
cat命令 查看文件内容

在虚拟机双击打开刚刚创建的文件,随便输入一段文本(记得保存)。

准备好文件内容后,可以通过cat查看内容

语法:cat Linux路径

  • cat同样没有选项,只有必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径均可

查看当前工作目录下的test.txt文件的内容

[womeng@localhost ~]$ cat test.txt
I am the storm that is approaching!!!
more 命令查看文件内容

more命令同样可以查看文件内容,与cat不同的是:

  • cat是直接将内容全部显示出来

  • more支持翻页,如果文件内容过多,可以一页页地展示

语法:more Linux文件路径

  • 同样没有选项,只有必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径均可

PS:Linux系统内置有一个文件,路径为:/etc/services,可以用more命令查看

翻页查看路径为 /etc/services 的文件more /etc/services

[womeng@localhost ~]$ more /etc/services
# /etc/services:
# $Id: services,v 1.55 2013/04/14 ovasik Exp $
#
# Network services, Internet style
# IANA services version: last updated 2013-04-10
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, most entries here have two entries
# even if the protocol doesn't support UDP operations.
# Updated from RFC 1700, ``Assigned Numbers'' (October 1994).  Not all ports
# are included, only the more common ones.
#
# The latest IANA port assignments can be gotten from
#       http://www.iana.org/assignments/port-numbers
# The Well Known Ports are those from 0 through 1023.
# The Registered Ports are those from 1024 through 49151
# The Dynamic and/or Private Ports are those from 49152 through 65535
#
# Each line describes one service, and is of the form:
#
# service-name  port/protocol  [aliases ...]   [# comment]
​
tcpmux          1/tcp                           # TCP port service multiplexer
tcpmux          1/udp                           # TCP port service multiplexer
rje             5/tcp                           # Remote Job Entry
rje             5/udp                           # Remote Job Entry
echo            7/tcp
echo            7/udp
--More--(0%)
 

末尾的--More--(0%)表示当前查看的文件进度,可以用 空格键回车键 进行阅读,退出more命令 按 q

PS:ctrl + L 可以清空终端显示的信息

文件操作命令part2(cp、mv、rm)

cp命令复制文件\文件夹

cp命令可以用于复制文件\文件夹,cp命令来自于英语单词:copy

语法: `cp [-r] 参数1 参数2

  • -r选项,可选,用于复制文件夹,表示递归

  • 参数1,Linux路径,表示被复制的文件或文件夹

  • 参数2,Linux路径,表示要复制去的地方

复制当前工作目录下的test.txt到当前目录下的test2.txt文件里:cp test.txt test2.txt

[womeng@localhost ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  test1  test2  test3  test4  test.txt  Videos  womeng
[womeng@localhost ~]$ cp test.txt test2.txt
[womeng@localhost ~]$ ls
Desktop    Downloads  Pictures  Templates  test2      test3  test.txt  womeng
Documents  Music      Public    test1      test2.txt  test4  Videos
[womeng@localhost ~]$ cat test.txt
I am the storm that is approaching!!!
[womeng@localhost ~]$ cat test2.txt
I am the storm that is approaching!!!

复制当前目录下的womeng文件夹到当前目录下的womeng2文件夹cp -r womeng womeng2

[womeng@localhost ~]$ ls
Desktop    Downloads  Pictures  Templates  test2      test3  test.txt  womeng
Documents  Music      Public    test1      test2.txt  test4  Videos
[womeng@localhost ~]$ cp -r womeng womeng2
[womeng@localhost ~]$ ls
Desktop    Downloads  Pictures  Templates  test2      test3  test.txt  womeng
Documents  Music      Public    test1      test2.txt  test4  Videos    womeng2
[womeng@localhost ~]$

注意:复制文件夹时,-r 不能缺失

mv移动文件\文件夹

mv命令可以用于移动文件\文件夹,mv命令来自于英文单词:move

语法:mv 参数1 参数2

  • 参数1,Linux路径,表示被移动的文件或文件夹

  • 参数2,Linux路径,表示要移动去的地方,也可以表示要更改为的文件名

将当前目录下的test.txt文件移动到当前目录下的Desktop文件夹mv test.txt Desktop/

[womeng@localhost ~]$ mv test.txt Desktop/
[womeng@localhost ~]$ ls Desktop
test.txt

将当前目录下的test2.txt文件命名为test3.txtmv test2.txt test3.txt

[womeng@localhost ~]$ ls
Desktop    Downloads  Pictures  Templates  test2      test3  Videos  womeng2
Documents  Music      Public    test1      test2.txt  test4  womeng
[womeng@localhost ~]$ mv test2.txt test3.txt
[womeng@localhost ~]$ ls
Desktop    Downloads  Pictures  Templates  test2  test3.txt  Videos  womeng2
Documents  Music      Public    test1      test3  test4      womeng

注意:如果重命名后的文件名已经存在,会覆盖已经存在的文件

移动当前目录下的womeng文件夹到Desktop文件夹中mv womeng Desktop/

[womeng@localhost ~]$ ls Desktop
test.txt
[womeng@localhost ~]$ mv womeng Desktop/
[womeng@localhost ~]$ ls Desktop
test.txt  womeng
rm命令可用于删除文件、文件夹

rm命令可用于删除文件、文件夹

rm命令来自于英文单词:remove

语法:rm [-r -f] 参数1 参数2 ......参数N

  • cp命令一样,-r选项用于删除文件夹

  • -f表示force,强制删除(不会弹出提示确认信息)

    • 普通用户山粗内容不会弹出提示,只有root管理员用户删除内容会有提示

    • 所以一般普通用户用不到-f选项

  • 参数1、参数2、......、参数N表示删除的文件或文件夹路径,用空格隔开

删除当前目录的一个文件rm 文件名

[womeng@localhost ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  test1  test2  test3  test3.txt  test4  Videos  womeng2
[womeng@localhost ~]$ rm test3.txt
[womeng@localhost ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  test1  test2  test3  test4  Videos  womeng2

删除指定目录的一个文件rm

[womeng@localhost ~]$ ls Desktop
test.txt  womeng
[womeng@localhost ~]$ rm Desktop/test.txt
[womeng@localhost ~]$ ls Desktop
womeng
 

删除当前目录的一个文件夹rm -r Linux路径

[womeng@localhost ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  test1  test2  test3  test4  Videos  womeng2
[womeng@localhost ~]$ rm -r test4
[womeng@localhost ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  test1  test2  test3  Videos  womeng2

删除多个文件夹rm -r Linux路径1 Linux路径2

[womeng@localhost ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  test1  test2  test3  Videos  womeng2
[womeng@localhost ~]$ rm -r test2 test3
[womeng@localhost ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  test1  Videos  womeng2

删除多个文件rm Linux路径/文件名 Linux路径/文件名

rm删除文件、文件夹 - 通配符

rm命令支持通配符*,用来做模糊匹配

  • 符号*:表示通配符,即匹配任意内容(包括空),示例:

  • test*,表示匹配任何以test开头的内容

  • *test,表示匹配任何以test结尾的内容

  • *test*,表示匹配任何包含test的内容

删除以test开头的文件或文件夹rm -r test*

[womeng@localhost ~]$ ls
Desktop    Downloads  Pictures  Templates  test2  test3.txt  test.txt   Videos
Documents  Music      Public    test       test3  test4      text2.txt  womeng2
[womeng@localhost ~]$ rm -r test*
[womeng@localhost ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  text2.txt  Videos  womeng2
  • 强制删除选项,-f

  • 可以通过 su - root 并输入密码(当前用户密码即可),进入管理员模式。

  • 在root权限下,使用rm会有提示,需要输入yn来确认

  • 但使用 -f选项后表示强制删除,不会有删除提示

PS:

  • rm是一个危险的命令,特别四在处于root(超级管理员)用户的时候,请谨慎使用。

  • 如下命令,请千万不要在root管理员用户下执行:

    • rm -rf /

    • rm -rf/*

    • 效果等同于在Windows上执行C盘格式后化

    在虚拟机中可以通过快照恢复,可以尝试,但是千万不要在实际开发时尝试。

查找命令(which、find)

which命令

我们在前面学习的Linux命令,其实就是一个个二进制可执行程序,相当于Windows系统中的.exe文件。

我们可以通过which命令,查看所使用的一系列命令的程序文件的存放位置。

语法:which 要查找的命令

[womeng@localhost ~]$ which cd pwd
/usr/bin/cd
/usr/bin/pwd

PS:which只针对命令的查找

find命令

按文件名查询

查找当前工作目录下以test开头的文件或文件夹$ find ~/ -name "test*"

[womeng@localhost ~]$ find ~/ -name "test*"
/home/womeng/Desktop/test
/home/womeng/Desktop/test/test1
/home/womeng/test
/home/womeng/test1
/home/womeng/test2
/home/womeng/test3
/home/womeng/test4

按文件大小查询

语法:find 起始路径 -size +|- -n[kMG]

  • +-表示大于和小于

  • n表示大小数字

  • kMG表示大小单位,k(小写)表示kb,M表示MB,G表示GB

查找当前工作目录下文件大于1KB的文件$ find -size +1k

[womeng@localhost ~]$ find -size +1k
.
./.cache/imsettings/log
./.cache/event-sound-cache.tdb.localhost.localdomain.x86_64-redhat-linux-gnu
./.cache/tracker/meta.db
./.cache/tracker/meta.db-wal
./.cache/tracker/meta.db-shm
./.cache/tracker/ontologies.gvdb
./.cache/gstreamer-1.0/registry.x86_64.bin
./.cache/gnome-software/odrs/ratings.json
./.config
./.config/pulse
./.config/pulse/6e453eb4fe964bd69d3f57a048bd561a-device-volumes.tdb
./.config/pulse/6e453eb4fe964bd69d3f57a048bd561a-stream-volumes.tdb
./.config/pulse/6e453eb4fe964bd69d3f57a048bd561a-card-database.tdb
./.config/dconf/user
./.local/share
./.local/share/evolution/addressbook/system/contacts.db
./.local/share/gvfs-metadata/root-ecd90d47.log
./.local/share/gvfs-metadata/home-95f2eb00.log
./.local/share/tracker/data/tracker-store.journal
./.local/share/tracker/data/tracker-store.ontology.journal
./.local/share/recently-used.xbel
./.bash_history

grep、wc和管道符

grep命令过滤文件内容

可以通过grep命令,从为文件中通过关键字过滤文件行。

语法:grep [-n] 关键字 文件路径

  • 选项 -n,可选,表示在结果中显示匹配的行的行号

  • 参数,关键字,必填,表示过滤的关键字,带有空格或其他特殊字符,建议使用""将关键字包裹

  • 参数,文件路径,必填,表示过滤文件内容的文件路径,可作为内容输入端口

过滤当前工作目录的test.txt文件中包含me关键字的行grep me test.txt

[womeng@localhost ~]$ grep me test.txt
What dosen't kill me make me stronger!
wc命令做数量统计

可以通过wc命令统计文件恶的行数、单词数量等

语法:wc [-c -m -l -w] 文件路径

  • -c,统计bytes数量

  • -m,统计字符数量

  • -l,统计行数

  • -w,统计单词数量

  • 文件路径,被统计的文件,可作为内容输入端口

测试

[womeng@localhost ~]$ cat test.txt
I am the storm that is approaching!!!!
never gonna give you up
What dosen't kill me makes me stronger!
[womeng@localhost ~]$ wc test.txt
  3  19 103 test.txt
[womeng@localhost ~]$ wc -c test.txt
103 test.txt
[womeng@localhost ~]$ wc -m test.txt
103 test.txt
[womeng@localhost ~]$ wc -w test.txt
19 test.txt
[womeng@localhost ~]$ wc -l test.txt
3 test.txt

PS:什么选项都不加时,显示的是 行数 、单词数 和 字节数

管道符(|)

管道符的含义是:将管道符左边命令的结果,作为右边命令输入

在test.txt文件中包含g的行中过滤出包含me的行

[womeng@localhost ~]$ grep g test.txt 
I am the storm that is approaching!!!!
never gonna give you up
What dosen't kill me makes me stronger!
[womeng@localhost ~]$ grep g test.txt | grep me
What dosen't kill me makes me stronger!

PS

  • 类似SQL的结果集,即将管道符左边的执行结果,作为管道符右边命令缺失部分的执行源输入

  • 管道符不仅限于grep命令,只要是能产生内容输出的命令都可以

  • 同时也可以嵌套使用,即 Linux命令 | Linux命令 | Linux命令 ......

echo、tail和重定向符

echo命令

使用echo命令可以在命令行内输出指定内容

语法:echo 输出内容

  • 无需选项,只有一个参数,表示要输出的内容,复杂内容可以用 " " 包裹

在终端上输出 Hello Linuxecho "Hello Linux"

[womeng@localhost ~]$ echo "Hello Linux"
Hello Linux
反引号`(飘号)

键盘上 Esc 下面那个键

  • 被反引号包裹的内容将会被作为命令执行

演示

[womeng@localhost ~]$ echo pwd
pwd
[womeng@localhost ~]$ echo `pwd`
/home/womeng
[womeng@localhost ~]$ echo `makabaka`
bash: makabaka: 未找到命令...
重定向符 > 和 >>
  • >,将左侧命令的结果,覆盖写入到符号右侧指定的文件中

  • >>,将左侧命令的结果,追加写入到符号右侧指定的文件中

将"Hello Linux"覆盖写入test.txtecho "Hello Linux" > test.txt

[womeng@localhost ~]$ cat test.txt
grep g test.txtI am the storm that is approaching!!!!
never gonna give you up
What dosen't kill me makes me stronger!
[womeng@localhost ~]$ echo "Hello Linux" > test.txt
[womeng@localhost ~]$ cat test.txt
Hello Linux

将"Hello Linux"追加写入test.txtecho "Hello Linux" >> test.txt

[womeng@localhost ~]$ cat test.txt
Hello Linux
[womeng@localhost ~]$ cat test.txt
I am the storm that is approaching!!!!
never gonna give you up
What dosen't kill me makes me stronger!
[womeng@localhost ~]$ echo "Hello Linux" >> test.txt
[womeng@localhost ~]$ cat test.txt
I am the storm that is approaching!!!!
never gonna give you up
What dosen't kill me makes me stronger!
Hello Linux
tail命令

使用tail命令,可以查看文件尾部内容,跟踪文件的最新更改

语法:tail [-f -num] Linux路径

  • -f,表示持续跟踪

  • -num,num需要是具体数字,表示查看尾部多少行,不填默认10行

  • Linux路径,表示被跟踪的文件路径

演示

[womeng@localhost ~]$ ls ~ > test.txt
[womeng@localhost ~]$ ls / >> test.txt
[womeng@localhost ~]$ cat test.txt
Desktop
Documents
Downloads
Music
Pictures
Public
Templates
test
test1
test2
test3
test4
test.txt
Videos
womeng2
bin
boot
dev
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
[womeng@localhost ~]$ tail -5 test.txt
srv
sys
tmp
usr
var

PS-f不方便在文本演示,简单来讲就是开启-f选项后,命令不会终止,而是会动态跟踪文件的尾部内容的变化,并将内容显示出来,可以自己右键FinalShell窗口标签,复制一个窗口,给文件添加内容,观察执行了tail命令窗口的变化。想要退出跟踪可以按快捷键 CTRL + C

vi\vim编辑器

  • vi\vim是visual interface的简称,是Linux中最典型的文本编辑器。vi是命令行下对文本进行编辑的最佳选择。

  • vim是vi的加强版,兼容vi的所有命令,不仅能编辑文本,而且还具有shell程序编辑功能,可以用不同颜色的字体来辨别语法的正确性,极大方便了程序的设计和编辑性。

三种工作模式
  1. 一般命令模式(Command Code):命令行模式下,输入的代码都理解为命令,以命令驱动程序执行不同的功能。此模式下,不能自由进行文本编辑。

  2. 编辑模式(Insert mode):也就是所谓的编辑模式、插入模式。此模式下,可以对文件内容进行自由编辑

  3. 命令行模式(Last line mode):以 :开始,通常用于文件保存、退出

如果需要通过vi/vim编辑器编辑文件,请通过如下命令 :

vi 文件路径 用vi打开文件

vim 文件路径 用vim打开文件

  • 如果文件路径表示的文件不存在,该命令会自动创建一个空的文件进行编辑

  • 如果文件路径表示的文件存在,该命令就会编辑已有的文件

通过vi\vim命令编辑文件,会打开一个新的窗口,此窗口为命令模式窗口,需要输入命令来切换模式,各模式之间的转换如 上图 所示。

模式命令描述
一般命令模式i在当前光标位置进入编辑模式
一般命令模式a在当前光标位置 之后 进入编辑模式
一般命令模式I在当前行开头,进入编辑模式
一般命令模式A在当前行结尾,进入编辑模式
一般命令模式o在当前光标下一行进入编辑模式
一般命令模式O在当前光标上一行进入编辑模式
编辑模式esc任何情况下按下esc都能回到一般命令模式
命令行模式:set nu显示行号
命令行模式:set paste设置粘贴模式

编辑器指令和图文参考vi的三种模式切换及常用命令_vi编辑器三种模式切换-CSDN博客

  • 20
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值