Linux基本使用和操作笔记(下)

简介: Linux基本使用和操作笔记

五、vi|vim文本编辑器

5.1、介绍
  • VI编辑器是linux平台上最强悍的文本编辑器。主要是以命令来驱动执行。
最困难的就是命令的使用
区分3种工作模式
  • VIM是VI的增强版本,功能差不多。
5.2、3种工作模式
  • 命令模式
直接使用vi打开文件进入的就是命令模式
在此模式下,所敲的按键都理解为命令 以命令驱动执行不同的功能
此模型下,不能自由进行文本编辑

输入模式(左下角insert标记)

编辑文本内容
需要从命令模式按下i进入输入模式
按下esc回到命令模式

底线命令模式

: 字母
通常用于文件的保存退出
:q 退出
:w 保存
:wq 保存退出
:wq! 强制保存退出
  • 还可以在命令模式下输入:shift+zz 快速的保存退出。
5.3、打开、新建
vim  文件名
#1、如果编辑的文件不存在 此时就是新建文件 new file
#2、如果文件存在,就打开文件 进入命令模式
  • 异常模式处理
  • 情况:编辑过程中 ,VIM闪退。导致底层会生成一个swap交换文件,里面记录着未保存的数据
  • 现象:再次打开文件的时候,编辑器会询问你如何处理swap交换文件。
5.4、vim基本操作命令
  • 光标的移动
cp /etc/profile ./
#1、方向键控制移动  
#2、命令 hjkl移动
#3、翻页 pageup  pagedown
#4、行首(home 0)  行尾(end $)
#5、跳到文件的最后一行  G
#6、跳到文件的第一行  gg

复制粘贴

#复制
yy  复制当前行 
nyy 复制当前行往下n行
#粘贴
p 当前行的下一行粘贴
P 当前行的上一行粘贴
#注意 使用鼠标从window或者其他地方复制内容到vim编辑器粘贴 一定一定要在输入模式下进行 否则数据会有丢失的风险。

搜索替换

#搜索
/待搜索的内容   回车进行搜索 搜索到的结果高亮显示
使用n跳转到下一个搜索到的内容  N跳转上一个
#清除搜索匹配之后的高亮显示
:noh
#替换
:2,4s/原内容/替换内容/gc
没有g的时候 替换每一行匹配的到的第一个  g表示替换这一行的所有匹配到的
c表示替换前给用户提示
#如果需要进行全局替换 所谓第一行到最后一行
:1,$s/原内容/替换内容/gc
:%s/原内容/替换内容/gc
hello tom hello allen hello
allen tom mac apple
hello allen apple
hello apple spark allen hadoop spark
allen allen

删除、撤销

#删除命令
dd  删除当前行
ndd 删除当前行往下n行
#撤销、反撤销
u 撤销上一步的操作  后悔药
ctrl+r 反撤销
5.5、插入模式、编辑模式(重要)
在命令模式下面输入字母进入插入模式
# i 进入到编辑模式后,定位到当前光标前面
# o 进入到编辑模式后,在当前行的后面,添加一行空行

常见的组合命令 G+o

打开文件之后 调整到最后一行 在下一行开始编辑
  • 注意:在crt中,复制的内容单击鼠标右键可以进行粘贴,但是在vim编辑器中,必须在输入模式下再进行粘贴,否则内容会有丢失的风险
5.6、可视模式( VISUAL )
  • 功能:用于文本的选择
# v       基于字符选择的
# V       基于行选择的
# ctrl+v  基于文本块的选择
  • 选择之后配合其他命令进行操作
5.7、扩展:notepad++ 文本编辑插件
  • 功能:在windows平台联机编辑linux上的文件,保存之后,自动同步服务器上。
  • 前提:notepad++ 升级到最新版本
  • 安装插件:插件—>插件管理—>NppFTP
  • 插件的配置

六、Linux用户与权限

6.1、用户、用户组
#用户 user
linux上可以创建不同的用户  不同用户具有不同的权限
权限最高的用户叫做root 超级管理员用户
可以通过root去管理其他用户及权限
#用户组 usergroup
多个用户组成一组 同一组的用户具有相同的权限
6.2、权限
  • 读read r
  • 写write w
  • 执行execute x
  • 权限的分配和管理
  • 在linux上对应文件文件夹,划分3个归属
文件的拥有者 user
拥有者所在的用户组 group
其他用户组  others

如何去查看权限 ls -l

[root@node1 linux02]# ll
total 8
-rw-r--r--. 1 root root   47 May 18 11:23 1.txt
-rw-r--r-- 就是权限位
  第一位 -文件 d文件夹 l链接
  后面每3位一组
  rw- u 读写
  r-- g 读
  r-- o 读
6.3、用户组、用户的管理
  • 必须是root用户才可以进行管理
#1、增加一个新的用户组
groupadd 选项 用户组
  可以使用的选项有:
  -g GID 指定新用户组的组标识号(GID)。
# groupadd group1
此命令向系统中增加了一个新组group1,新组的组标识号是在当前已有的最大组标识号的基础上加1。
# groupadd -g 101 group2
此命令向系统中增加了一个新组group2,同时指定新组的组标识号是101。
#2、查看当前系统已有组信息
cat /etc/group 
itheima:x:1001:lisi,wangwu
itheima组名

x 密码口号 一般都没有密码

1001 groupID gid 组编号

lisi,wangwu 归属该组的用户

#3、删除组

groupdel 组名

#4、修改文件归属的组

chgrp 组名 文件/目录名 针对文件夹加上-R可以实现递归修改

```shell
#1、创建用户
useradd 选项 新建用户名
  -g   指定用户所属的群组。值可以使组名也可以是GID
  -G   指定用户所属的附加群组。
#2、设置密码 
[root@node1 linux02]# passwd 用户名
Changing password for user allen.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully. 
#3、删除用户
userdel -r 用户名
此命令删除用户sam在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录。
#4、查看用户信息
cat /etc/passwd | grep 用户名
#5、修改文件所属的用户
chown allen 1.txt   如果是文件夹及其下面的所有要修改 加上-R参数

linux上root用户和非root用户区别

  • 命令提示符不同: root# 普通用户$
  • 家目录不同:
[root@node1 ~]# pwd
/root
[allen@node1 ~]$ pwd
/home/allen
6.4、su、sudo
  • su命令:用于用户之间的切换。
# su 用户
[allen@node1 ~]$ ll /root
ls: cannot open directory /root: Permission denied
[allen@node1 ~]$ su root   #普通用户切换成为root需要输入root密码
Password: 
[root@node1 linux02]# su allen   #root用户切换成为普通用户 不需要密码
[allen@node1 linux02]$ 
[allen@node1 linux02]$ exit  #退出
exit
#弊端:虽然通过切换可以具有root权限,但是root密码已经泄露了 不安全。
#能不能实现一种 让普通用户临时具有root权限,但是又不泄露密码

sudo

  • 功能:给普通用户临时授予root权限。
  • 注意:能够分配sudo的只有root。
  • sudo的配置命令 visudo
  • sudo具体使用
  • step1:使用root用户编辑sudo配置文件
[root@node1 ~]# visudo
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
allen   ALL=(ALL)       ALL
allen   ALL=(ALL)       /usr/bin/ls  #配置只允许执行指定的命令

step2:普通用户执行命令之前需要添加sudo关键字 申请sudo权限校验

[allen@node1 ~]$ ls /root
ls: cannot open directory /root: Permission denied
[allen@node1 ~]$ sudo ls /root
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.
[sudo] password for allen:    #这里需要输入allen普通用户的密码
linux02
[allen@node1 ~]$ sudo ls /root  #密码和sudo校验成功 获取一个为期5分钟的免密操作
linux02
6.5、修改文件的权限
  • 核心的命令 chmod 权限 文件|文件夹 (针对文件夹-R 递归修改)
  • 方式1:老百姓喜闻乐见的形式 数字
read----->r      4
write---->w      2
execute-->x      1
没有权限           0
chmod 777 -R 文件|文件夹

方式2: 字母 ±形式

user->u  group->g others->o  all->a
+ 增加权限
- 减少权限
chmod o-x 1.txt
chmod a-w 1.txt

方式3: 等号赋值形式

chmod u=rwx 1.txt
  • 扩展阅读: 对于文件、文件夹来说 读、写、执行权限 分为意味着什么?

比如:想要去删除一个文件夹下面的文件 需要什么权限?

比如:想切换cd进入一个文件夹 需要什么权限?


七、Linux系统命令

  • 时间、日期
[root@node1 linux02]# date
Sun Jan 29 16:27:37 CST 2023
[root@node1 linux02]# date +"%Y-%m-%d %H:%M:%S"
2023-01-29 16:28:22
[root@node1 linux02]# cal
    January 2023      
Su Mo Tu We Th Fr Sa
 1  2  3  4  5  6  7
 8  9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
#关于时间日期的同步  同步网络授时
#大数据都是集群环境  基本要求:集群的时间同步问题

查看磁盘、内存信息

df -h    #disk free 显示磁盘剩余空间
[root@node1 linux02]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 1.9G     0  1.9G   0% /dev
tmpfs                    1.9G     0  1.9G   0% /dev/shm
tmpfs                    1.9G   12M  1.9G   1% /run
tmpfs                    1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mapper/centos-root   38G  1.7G   36G   5% /
/dev/sda1               1014M  154M  861M  16% /boot
/dev/mapper/centos-home   19G   33M   19G   1% /home
tmpfs                    378M     0  378M   0% /run/user/0
#内存使用情况
[root@node1 linux02]# free -h
              total        used        free      shared  buff/cache   available
Mem:           3.7G        249M        3.3G         11M        135M        3.3G
Swap:          3.9G          0B        3.9G

进程信息

#在安装了jdk的情况下 有一个命令专门用于查看本机运行的java进程。
jps
[root@node1 ~]# jps  #必须在安装好jdk之后可以使用  
-bash: jps: command not found
#查看本机运行的所有进程
ps -ef | grep 进程名
#通常根据查询的进程号 结合kill -9 进程号  杀死进程
  • linux完整命令参考资料

https://www.runoob.com/linux/linux-command-manual.html

https://man.linuxde.net/

相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
2月前
|
Ubuntu Linux Python
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
在Linux系统中,使用Tkinter库时可能会遇到中文显示乱码的问题,这通常是由于字体支持问题导致的,可以通过更换支持中文的字体来解决。
161 0
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
|
4月前
|
Linux
Linux源码阅读笔记10-进程NICE案例分析2
Linux源码阅读笔记10-进程NICE案例分析2
|
4月前
|
Linux
Linux源码阅读笔记09-进程NICE案例分析1
Linux源码阅读笔记09-进程NICE案例分析1
|
2月前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
111 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
4月前
|
Unix Linux 开发工具
linux笔记 diff及patch的制作与使用
这篇文章是关于Linux系统中使用`diff`命令生成补丁文件以及使用`patch`命令应用这些补丁的详细教程和实战案例。
114 2
linux笔记 diff及patch的制作与使用
|
4月前
|
安全 Linux 开发者
Linux笔记之ldd命令详解
`ldd`命令是Linux环境下一个非常实用的工具,用于显示一个程序运行时所需的共享库依赖。它帮助开发者和系统管理员快速诊断程序运行问题,特别是在处理"找不到库文件"或者"错误的库文件版本"等错误时。然而,出于安全的考虑,对于不信任的可执行文件,应该慎用 `ldd`命令,可以考虑使用其他工具如 `objdump`。总的来说,懂得如何妥善且安全地使用 `ldd`,对于维护一个稳定和高效的Linux系统来说,是非常重要的。
108 9
|
4月前
|
存储 缓存 编译器
Linux源码阅读笔记06-RCU机制和内存优化屏障
Linux源码阅读笔记06-RCU机制和内存优化屏障
|
4月前
|
Linux
Linux源码阅读笔记13-进程通信组件中
Linux源码阅读笔记13-进程通信组件中
|
4月前
|
消息中间件 安全 Java
Linux源码阅读笔记13-进程通信组件上
Linux源码阅读笔记13-进程通信组件上
|
4月前
|
Linux 开发者
Linux源码阅读笔记18-插入模型及删除模块操作
Linux源码阅读笔记18-插入模型及删除模块操作