admin 管理员组文章数量: 887021
课程链接:黑马程序员新版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
,检查是否存在VMnet1和VMnet8。有则安装成功,否则建议卸载并重启,再次进行安装流程
安装Linux虚拟机
-
下载CentOS 7(或其他版本)操作系统的安装包 (DVD-XXX.iso 后缀,如:CentOS-7-x86_64-DVD-1810.iso)。官网地址:Index of /7.6.1810/isos/x86_64 (centos)
-
打开VMware WorkStation,点击 创建新的虚拟机
-
浏览选择下载好的操作系统安装包,点下一步
-
设置账号密码
-
修改位置为
D:\CentOS7
,也可以是其他,默认也行,不过尽量不在C盘 -
将虚拟机的磁盘大小调整到40G(为了方便使用)
-
可能还会需要你安装一个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)
安装:除了要改一下安装目录,其他都是傻瓜式安装。
连接Linux
-
在Linux桌面空白右键,点击Open Terminal,打开终端
-
终端输入
ifconfig
,回车 -
在弹出来的信息中,找到ens33——>inet + ip ,记住ip地址
-
打开FinalShell,点击左上角的蓝色文件夹
-
在打开的页面中,再点击带加号的白色文件夹——>SSH连接(Linux)——>在主机栏输入刚刚的ip地址并填写好其他信息
-
点击确定,在弹出的窗口中再点击接收并保存
-
完成连接。也可以在两个终端分别输入
ls
来验证,输出的内容一样,即连接成功。
拓展:WSL(Windows Subsystem for Linux)
掌握通过WSL来获得Ubuntu系统
虚拟机快照
我们无可避免的可能损坏Linux操作系统。VMware虚拟机支持为虚拟机制作快照
通过快照将当前虚拟机的状态保存下来,在以后可以通过快照恢复虚拟机到保存的状态。(类似Windows的系统还原点)
制作快照
-
关闭虚拟机
-
在VMware左侧栏——》我的计算机——》右键要创建快照的虚拟机——》找到快照设置——》拍摄快照即可
-
恢复:在快照设置中选中要恢复到的快照状态,点击转到即可
第二章 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/womeng
,ls
是命令本身,-l
是选项,/home/womeng
是参数-
意思是以列表形式,显示/home/womeng目录内的内容
-
-
cp -r test1 tset2
,cp
是命令本身,-r
是选项,test1
和test2
是参数-
意思是复制文件夹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/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.txt:mv 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
会有提示,需要输入y
或n
来确认 -
但使用
-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 Linux
:echo "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.txt:echo "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.txt:echo "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程序编辑功能,可以用不同颜色的字体来辨别语法的正确性,极大方便了程序的设计和编辑性。
三种工作模式
-
一般命令模式(Command Code):命令行模式下,输入的代码都理解为命令,以命令驱动程序执行不同的功能。此模式下,不能自由进行文本编辑。
-
编辑模式(Insert mode):也就是所谓的编辑模式、插入模式。此模式下,可以对文件内容进行自由编辑
-
命令行模式(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博客
后续文章:Linux基础入门——用户和权限-CSDN博客
版权声明:本文标题:Linux基础入门 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1726420195h957389.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论