linux学习笔记
vim编辑器
vi和vim常用的三种模式
正常模式
以vim打开一个档案就直接进入一般模式
插入模式
按下i,I,O,a,A,r,R等任意一个字母进入编辑模式。
命令行模式
输入ESC再输入: 进入命令行模式
ublic class Hello {
public static void main(String[] args){
System.out.println("hello,world");
}
:wq#保存退出 q!强制退出不保存
vi和vim快捷键
- 拷贝当前行:yy,拷贝当前行向下的5行:5yy,并粘贴:p。
- 删除当前行:dd,删除当前行向下的5行:5dd
- 在文件查找某个单词【命令行下 /关键字 ,回车 查找,输入n就是查找下一个】
- 设置文件的行号,取消文件的行号,set nu和set nonu
- 快捷键到该文档的最末行:G 最首行:gg
- 输入撤销:u
- 光标快速移动到20行 shift+g
用户管理
添加用户
useradd 用户名
useradd -d 指定目录
[root@liuyu home]# useradd gg #创建用户gg
[root@liuyu home]# ll
总用量 0
drwx------. 3 gg gg 78 8月 30 11:17 gg
drwx------. 14 liuyu liuyu 271 8月 30 10:13 liuyu
[root@liuyu home]# useradd -d /home/test xx #在/home/test目录下创建用户xx
[root@liuyu home]# ls
gg liuyu test
指定/修改密码
passwd 用户名
[root@liuyu home]# passwd xx
更改用户 xx 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
删除用户
userdel 用户名
删除用户,但是保留家目录
[root@liuyu home]# userdel xx
[root@liuyu home]# ll
总用量 0
drwx------. 3 gg gg 78 8月 30 11:17 gg
drwx------. 14 liuyu liuyu 271 8月 30 10:13 liuyu
drwx------. 3 1002 1002 78 8月 30 11:18 test
删除用户以及用户主目录
[root@liuyu home]# userdel gg -r
[root@liuyu home]# ls
liuyu test
查询用户信息指令
id 用户名
[root@liuyu home]# id root
uid=0(root) gid=0(root) 组=0(root)
切换用户
su - 切换用户名 #从权限高的用户切换到权限低的用户不需要输入密码
从权限高用户登录权限低用户退出直接输入logout
用户组
类似于角色,系统可以对有共性的多个用户进行统一的管理
新增组
groupadd 组名
[root@liuyu home]# groupadd wudang
[root@liuyu home]#
删除组
groupdel 组名
[root@liuyu home]# groupdel wudang
[root@liuyu home]#
增加用户时直接加上组名
useradd -g 用户组 用户名
[root@liuyu home]# groupadd wudang
[root@liuyu home]# useradd -g wudang zhangwuji
[root@liuyu home]# ll
总用量 0
drwx------. 14 liuyu liuyu 271 8月 30 10:13 liuyu
drwx------. 3 1002 1002 78 8月 30 11:18 test
drwx------. 3 zhangwuji wudang 78 8月 30 11:36 zhangwuji
[root@liuyu home]# id zhangwuji
uid=1001(zhangwuji) gid=1001(wudang) 组=1001(wudang)
[root@liuyu home]#
修改用户组
usermod -g 用户组 用户名
[root@liuyu home]# groupadd guangming #创建用户组
[root@liuyu home]# usermod -g guangming zhangwuji#修改zhangwuji组名
[root@liuyu home]# id zhangwuji
uid=1001(zhangwuji) gid=1002(guangming) 组=1002(guangming)
[root@liuyu home]#
用户组和组相关文件
/etc/passwd 文件
用户(user)的配置文件,记录用户的各种信息
[root@liuyu etc]# cat passwd
root:x:0:0:root:/root:/bin/bash
含义:用户名-口令-用户表示号-组标识号-注释性描述-主目录-登录shell
/etc/shadow
口令配置文件
[root@liuyu etc]# cat shadow
root:$6$QcN/Vcgimm0hi71y$FO.0KOL8JHmLRHhBJk3OKncByZGzaGXr0jpDDvrRjuLtxVLPCgBQLW7.VhRXSK1kJVFHEDmCC5jHUByeWuPGA1::0:99999:7:::
含义:登录名-加密口令-最后一次修改时间-最小时间间隔-最大时间间隔-警告时间-不活动时间-失效时间-标志
/etc/group
组的配置文件,记录linux包含的组的信息
[root@liuyu etc]# cat group
root:x:0:
含义:组名-组标识号-组内用户列表
linux实用指令
运行级别指令
运行级别说明
0:关机
1:单用户
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启
常用运行级别是3和5,也可以指定默认运行级别
[root@liuyu /]# init 3 #切换用户指令
#multi-user.target 3级别
#graphical.target 5级别
[root@liuyu /]# systemctl get-default #查看当前用户运行级别
graphical.target
[root@liuyu /]# systemctl set-default multi-user.target #切换用户级别
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.
[root@liuyu /]# systemctl get-default #查看当前用户级别
multi-user.target
[root@liuyu /]# systemctl set-default graphical.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target.
[root@liuyu /]# systemctl get-default
graphical.target
如何找回root密码
启动界面输入e
文件目录类
pwd
显示当前工作目录的绝对路径
[root@liuyu ~]# pwd
/root
ls
基础语法:ls 【选项】【目录或者是文件】
常用选项:
-a:显示当前目录所有目录和文件,包括隐藏的
-l:以列表的形式显示信息
mkdir
创建目录
常用选项:
-p 创建多级目录
rmdir
删除空目录
基础语法:rmdir [选项] 要删除的空目录
如果需要删除非空目录,需要使用rm -rf
[root@liuyu home]# rm -rf zhangwuji/
[root@liuyu home]# ll
总用量 4
drwx------. 14 liuyu liuyu 4096 8月 30 11:57 liuyu
drwx------. 3 1002 guangming 78 8月 30 11:18 test
touch
创建空文件
[root@liuyu home]# touch test/hello
[root@liuyu home]# ll test/
总用量 0
-rw-r--r--. 1 root root 0 8月 30 12:25 hello
[root@liuyu home]#
cp
拷贝文件到指定目录
基础语法:cp [选项] source(拷贝的文件) desk(拷贝文件的目标路径)
常用选项:-r 递归复制整个文件夹
[root@liuyu home]# cp test/hello liuyu/
[root@liuyu home]# cd liuyu/
[root@liuyu liuyu]# ll
总用量 0
-rw-r--r--. 1 root root 0 8月 30 12:29 hello
drwxr-xr-x. 2 liuyu liuyu 6 8月 30 10:13 公共
drwxr-xr-x. 2 liuyu liuyu 6 8月 30 10:13 模板
drwxr-xr-x. 2 liuyu liuyu 6 8月 30 10:13 视频
drwxr-xr-x. 2 liuyu liuyu 6 8月 30 10:13 图片
drwxr-xr-x. 2 liuyu liuyu 6 8月 30 10:13 文档
drwxr-xr-x. 2 liuyu liuyu 6 8月 30 10:13 下载
drwxr-xr-x. 2 liuyu liuyu 6 8月 30 10:13 音乐
drwxr-xr-x. 2 liuyu liuyu 6 8月 30 10:13 桌面
[root@liuyu home]# cp -r liuyu/ test/ #将liuyu整个目录拷贝到test目录下
[root@liuyu home]# ll test/
总用量 4
-rw-r--r--. 1 root root 0 8月 30 12:25 hello
drwx------. 14 root root 4096 8月 30 12:31 liuyu
[root@liuyu home]#
mv
移动文件目录或者重命名
基础语法:mv 001 002 在同一目录下就是重命名
mv 源文件路径 目标路径
cat
浏览文件
more
交互式查看文件
空格键:向下翻一页
enter:向下翻一行
q:代表立刻离开more,不再显示该文件内容
ctrl+f:向下滚动一屏
ctrl+b:返回上一屏
=:输出当前的行号
:f:输出文件名和当前的行号
less
分屏查看,显示大文件有较高的效率
echo
输出内容到控制台
[root@liuyu /]# echo $HOSTNAME
liuyu
tail
用于输出文件尾部的内容,默认情况下tail指令显示文件的前10行内容。
基本语法:
tail 文件 查看文件尾部的10行内容
tail -n 5 文件 查看文件尾部5行内容
tail -f 文件 事实追踪该文档的所有更新
输出重定向和追加
>输出重定向 >>追加
find
将从指定目录向下递归查找各个子目录,将满足条件的文件或者目录显示在终端
find [范围] [选项]
[-user]
[-size]
[root@liuyu /]# find /home/ -name hello*
/home/liuyu/hello
/home/test/hello
/home/test/liuyu/hello
[root@liuyu /]# find /opt/ -user root#查找opt目录下root用户的文件
/opt/
/opt/rh
[root@liuyu /]# find / -size +200M
/proc/kcore
find: ‘/proc/3478/task/3478/fd/6’: 没有那个文件或目录
find: ‘/proc/3478/task/3478/fdinfo/6’: 没有那个文件或目录
find: ‘/proc/3478/fd/6’: 没有那个文件或目录
find: ‘/proc/3478/fdinfo/6’: 没有那个文件或目录
grep
过滤查找,管道符“|”,表示将前一个命令的处理结果输出传递给后面的命令处理
基本语法:
grep [选项] 查找内容 源文件
-n 显示匹配及行号
-i 忽略字母大小写
[root@liuyu test]# cat hello |grep "yes"
yes yes yes
[root@liuyu test]# cat hello |grep -n "no"
2:no no
3:no no
4:no no
5:no no
6:no no
gzip/gunzip
压缩文件和解压文件
gzip 用于压缩文件,gunzip 用于解压
gzip /home/hello.txt#将home目录下的hello文件压缩
gunzip /home/hello.txt#将home目录下的hello文件解压
zip/unzip
zip [选项] xxx.zip 将要压缩的内容
unzip [选项] xxx.zip 解压文件
-r:递归压缩,即压缩目录
-d:-d 指定解压后文件存放的目录
tar
tar [选项] xxx.tar.gz 打包内容
-c:产生打包文件
-v:显示详细信息
-f:指定压缩后的文件名
-z:打包同时压缩
-x:解压.tar文件
[root@liuyu home]# tar -zcvf pig.tar.gz pig.txt fig.txt #打包成pig.tar.gz
pig.txt
fig.txt
[root@liuyu home]# ll
总用量 8
-rw-r--r--. 1 root root 0 8月 30 13:21 fig.txt
drwx------. 14 liuyu liuyu 4096 8月 30 12:29 liuyu
-rw-r--r--. 1 root root 124 8月 30 13:23 pig.tar.gz
-rw-r--r--. 1 root root 0 8月 30 13:21 pig.txt
drwx------. 4 1002 guangming 104 8月 30 13:07 test
[root@liuyu home]# tar -zxvf pig.tar.gz #解压命令
pig.txt
fig.txt
组管理和权限管理
在linux中每个文件都有所有者、所有组、其他组的概念。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)