linux常用指令

linux常用指令

ls

展示当前目录的所有内容(子目录)

ls -a 展现所有目录包括隐藏目录

ls -l 展示不包括隐藏目录的所有目录的权限信息

pwd

展示当前目录的名称

clear

清除全屏小杂碎

ll

查看权限信息

cd

选择进入的目录

mkdir

创建目录

mkdir -p test1/test2

生成多层目录

rmkdir test1

删除当前空目录

rmkdir -p test1/test2

这样可以将不为空的test1删除

cp

拷贝文件

cp 拷贝的文件 拷贝位置

rm

删除文件

-f 不会出现警告,实现强制删除

-r 递归删除目录

-i 互动,询问是否删除

1
rm -rf 文件名 #删除文件

mv

1.移动文件

2.重命名文件

1
mv install.sh kuangstudy/ #将install.sh移动到kuangstudy目录
1
mv kuangstudy kuangstudy1 #将kuangstudy重命名为kuangstudy1

touch

创建一个文件

1
touch file2.txt

chmod

设置用户权限

image-20230301214020834

1
2
3
4
r:4    w:2    x:1
o/w/x 777 #每个字母对应每个数字,数字代表权限
权限(rwx=4+2+1=7 rw=6 rx=5 wx=3)
chmod 777 文件或者目录

top

image-20241013164650495

top 命令是一个非常有用的工具,用于实时监控 Linux 系统中的进程活动和整体系统状态。它提供了关于 CPU 使用率、内存使用情况、运行的进程列表等信息。以下是如何使用 top 指令的基本介绍:

启动 top

在终端中输入 top 或者 htop (如果你已经安装了 htop,它提供了更友好的界面)。

基本界面

启动后,你会看到一个类似下面的界面:

1
2
3
4
Tasks: 227 total,   1 running, 226 sleeping,   0 stopped,   0 zombie
%Cpu(s): 2.9 us, 1.8 sy, 0.0 ni, 95.1 id, 0.0 wa, 0.0 hi, 0.2 si, 0.0 st
KiB Mem : 4194300 total, 3708716 free, 485584 used, 485584 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 3944196 avail Mem

功能键

  • P:按 CPU 使用率排序进程列表。
  • M:按内存使用量排序进程列表。
  • Shift + PShift + M:反向排序。
  • 1:切换显示单一 CPU 还是所有 CPU 的信息。
  • hH:显示帮助信息。
  • qQ:退出 top。
  • htop 中,你可以使用箭头键来选择不同的进程,还可以改变颜色设置,等等。

高级功能

top 中,你还可以执行以下操作:

  • 输入进程 ID 并按回车,可以高亮显示指定的进程。
  • 输入 k 后回车,可以发送信号终止某个进程(管理员权限下)。
  • 输入 r 后回车,可以改变进程优先级(管理员权限下)。

实时更新

top 会自动刷新屏幕上的信息,默认刷新间隔大约为每三秒一次。你可以通过按 S 键来自定义刷新间隔时间。

注意事项

使用 top 时,请注意不要随意终止系统的重要进程,这可能会导致系统不稳定甚至崩溃。

通过 top,你可以有效地监控系统的运行状态,这对于性能调优、故障排查等工作都非常有帮助。如果你需要更多高级功能,可以考虑使用 htop,它提供了更加用户友好的交互界面。

more

查看文件内容

在Linux系统中,more命令是用来逐屏显示文本文件内容的一个实用工具。当你有一个较大的文件需要查看,但又不想一次性加载整个文件到屏幕上时,more命令就非常有用。它允许用户逐步浏览文件内容,一次显示一屏,直到文件结束。

基本语法

1
more [选项] 文件名

常见选项

  • -d--end:从当前位置显示文档的剩余部分。
  • +n:跳过指定的行数后开始显示文件内容。
  • --help:显示帮助信息。
  • --version:显示版本信息。

键盘快捷键

当你使用more命令查看文件时,可以通过键盘上的某些按键来控制其行为:

  • 空格键:向下滚动一屏。
  • Enter:向下滚动一行。
  • bPgUp:向上滚动一屏。
  • q:退出more命令,返回到命令行提示符。
  • /pattern:搜索模式pattern。如果模式包含空格,请使用反斜杠转义或引号括起来。
  • ?pattern:从当前位置向后搜索模式pattern
  • nN:向前或向后重复上一次搜索模式。
  • v:编辑当前文件。

查看一个文件

打开并浏览example.txt文件的内容:

1
more example.txt

从第10行开始查看

example.txt文件的第10行开始显示内容:

1
more +10 example.txt

查找特定模式

example.txt文件中查找包含“hello”的行:

1
2
more example.txt
/.*hello.*/

ifconfig

查看虚拟机的IP地址

chown

在Linux系统中,改变文件或目录的所有者可以使用chown命令。chown命令允许你更改文件或目录的所有者(用户)以及所属组(群组)。

基本语法

1
chown [选项] 用户名[:组名] 文件或目录

常见选项

  • -R, --recursive:递归地改变目录内所有文件和子目录的所有者。
  • --reference=RFILE:将文件的所有者和所属组设置为参考文件的所有者和所属组。
  • -h, --no-dereference:仅改变符号链接本身的所有者,而不是它指向的目标文件。
  • -v, --verbose:详细模式,显示更改的所有文件名。

参数解释

  • 用户名:指定新的所有者。
  • 组名(可选):指定新的所属组。如果省略组名,仅改变所有者;如果省略用户名,则仅改变所属组。
  • 文件或目录:指定要改变所有者和/或所属组的文件或目录。

改变单个文件的所有者

假设有一个文件example.txt,你想把它改为属于用户alice

1
chown alice example.txt

同时改变所有者和所属组

如果你想把example.txt的所有者改为alice,所属组改为users

1
chown alice:users example.txt

递归改变目录的所有者和所属组

如果你想递归地改变目录mydir及其所有子目录和文件的所有者为alice,所属组为users

1
chown -R alice:users mydir

显示改变过程

如果你想看到chown命令执行过程中每一步的详细信息,可以使用-v选项:

1
chown -v alice example.txt

文件查看

cat

正向读取当前文件

tac

反向读取当前文件

nl

正向读取当前文件并标明行数

more

可翻页读取文件但不能向上翻页

less

与more功能类似但可以向上翻页(数字旁方向键控制)

q可以使退出文件,/可以向下查询,?可以向上查询。n和N分别表示向上和下跳转关键字

从前面读取几行

1
head -n 20 [文件名]

tail

从后面读取几行

1
tail -n 20 [文件名]

硬链接和软链接

硬链接

1
2
touch f1 #生成f1文件
ln f1 f2 #给f1文件生成链接文件f2,f2和f1指向同一个文件,此操作可以防止文件误删

软链接

1
2
3
ln -s f1 f3 #给f1文件生成f3软链接,指向同一文件,党源文件被删除之后,快捷方式失效

echo f1 "i love fanfan" #实现在文件中输入字符串

image-20230303081017653

vim使用

突然无法使用

1
[root@master ~]# export PATH=/bin:/usr/bin:$PATH #执行该命令
1
vim [文件名] #进入当文件的编辑模式,或者创建这个文件并进入编辑模式

image-20230303092823506

1.进入首先是命令模式

  • i 切换到输入模式,以输入字符。

  • x 删除当前光标所在处的字符。

  • : 切换到底线命令模式,以在最底一行输入命令。

    yy复制本行

    p粘贴复制内容于下一行

    /“word”可查询word所在位置

2.输入模式

可以输入文字,点击esc退出

3.底线命令模式

输入冒号:之后选择wq保存并退出文件

1
:wq

image-20230303093454927

vim快捷命令

/word ( ?word ) 在文章中查询关键词
u 复原前一个动作
ctrl+r 重复上一个动作
:w 保存
:q 退出
:wq 保存并退出
:wq! 强制该动作
:set nu 显示行号
:set nonu 撤销行号

管理用户

useradd

创建新的普通用户

参数说明:

  • 选项 :

    • -c comment 指定一段注释性描述。
    • -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
    • -g 用户组 指定用户所属的用户组。
    • -G 用户组,用户组 指定用户所属的附加组。
    • xxxxxxxxxx docker-compose upsh
    • -s Shell文件 指定用户的登录Shell。
    • -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
  • 用户名 :

    • 指定新账号的登录名
1
useradd [选项] [新建用户名]

userdel

删除用户

1
userdel -r [用户名] #常用这种,表示并且删除目录

usermod

修改用户

1
2
usermod 选项 [用户名] #选项同useradd
eg:usermod -d /home/fanlover fansea #将fansea用户移动到fanlover文件夹下

su/sudo su

切换用户

1
2
3
su fansea #root用户使用该指令切换成fansea用户
exit #可退出当前普通用户回到root用户
sudo su #从普通用户切换到root用户

passwd

普通用户

1
passwd #可以修改当前密码

超级用户root

可使用的选项:

  • -l 锁定口令,即禁用账号。
  • -u 口令解锁。
  • -d 使账号无口令。
  • -f 强迫用户下次登录时修改口令。
1
2
3
passwd 选项 用户名
eg:passwd -l fanlover #锁定用户
passwd 用户名 #更改普通用户的密码

管理用户组

groupadd

添加用户组

1
2
groupadd [用户组名]
groupadd -g [设置组标识号] [组名]

groupdel

删除组

1
groupdel [用户组名]

groupmod

修改组

  • -g GID 为用户组指定新的组标识号。
  • -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
  • -n新用户组 将用户组的名字改为新名字
1
groupmod -g [组标识号] -n [改动的名称] [被修改的用户组]

usermod -g

修改用户组

newgrp

切换组

==如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。==

1
newgrp root

/etc/passwd

查看用户对应的组信息

1
2
3
4
5
6
7
8
9
10
11
12
cat /etc/passwd

root:x:0:0:Superuser:/:
daemon:x:1:1:System daemons:/etc:
bin:x:2:2:Owner of system commands:/bin:
sys:x:3:3:Owner of system files:/usr/sys:
adm:x:4:4:System accounting:/usr/adm:
uucp:x:5:5:UUCP administrator:/usr/lib/uucp:
auth:x:7:21:Authentication administrator:/tcb/files/auth:
cron:x:9:16:Cron daemon:/usr/spool/cron:
listen:x:37:4:Network daemon:/usr/net/nls:
lp:x:71:18:Printer administrator:/usr/spool/lp:

==用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell==

/etc/group

查看组以及他的组标识号

查看磁盘

df

查看磁盘整体使用量

  • -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
  • -k :以 KBytes 的容量显示各文件系统;
  • -m :以 MBytes 的容量显示各文件系统;
  • -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
  • -H :以 M=1000K 取代 M=1024K 的进位方式;
  • -T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
  • -i :不用硬盘容量,而以 inode 的数量来显示
1
2
3
4
5
6
7
8
9
10
df -h #常用
# 将容量结果以易读的容量格式显示出来
[root@kuangshen /]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 869M 0 869M 0% /dev
tmpfs 879M 708K 878M 1% /dev/shm
tmpfs 879M 496K 878M 1% /run
tmpfs 879M 0 879M 0% /sys/fs/cgroup
/dev/vda1 40G 6.3G 32G 17% /
tmpfs 176M 0 176M 0% /run/user/0

du

查看文件或者目录占用空间

1
2
3
4
5
6
7
du [-选项] 文件或目录名称

[root@kuangshen home]# du
16./redis (表示使用了16k)
8./www/.oracle_jre_usage # 包括隐藏文件的目录
24./www
48. # 这个目录(.)所占用的总量

查看进程

ps

查看进程

1
2
3
ps -aux|grep [进程名] #常用
ps -ef|grep [进程名] #常用
pstree -au #查看当前父进程的树状结构

kill

1
kill -id #停止进程

其他指令

解压文件

1
tar -zxvf [jar包]

springboot项目启动指令

1
nohup java -jar xxx.jar  > ./demo.log 2>&1 &

nginx启动指令

1
/usr/local/nginx/sbin/nginx

查看当前端口的pid

1
lsof -i:[端口号]

停止ping

1
Ctrl+c[z]

已加载插件:fastestmirror, langpacks 您需要 root 权限执行此命令

1
su root

关闭防火墙

1
systemctl stop firewalld.service #关闭防火墙

java环境安装

  1. 下载jdk17压缩包
1
wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
  1. 解压压缩包
1
tar -zxvf  jdk-17.0.1_linux-x64_bin.tar.gz
  1. 配置环境变量
1
vim/etc/profile 
1
2
3
4
  #jdk17
export JAVA_HOME=/usr/lib/jdk17/jdk-17.0.1
export CLASSPATH=.:$JAVA_HOME/lib/
export PATH=.:$JAVA_HOME/bin:$PATH
  1. 重新加载配置
1
2
source  /etc/profile     重启环境变量
java -version 查看版本号

后台运行程序

1
nohup ./go-cqhttp &

查找并杀死程序

1
ps -ef |grep java |grep -v grep |awk '{ print $2 }' |xargs kill -9

Linux查看端口被进程占用的方法

1
2
sudo lsof -i [端口号]
sudo netstat -tlnp | grep [端口号]

远程监测系统(1Panel)

项目地址

image-20231102223216916

命令行工具

1 1pctl

1Panel 默认内置了命令行运维工具 1pctl,通过执行 1pctl help,可以查看相关的命令说明。

1
2
3
4
5
6
7
8
9
10
11
12
13
Usage:
1pctl [COMMAND] [ARGS...]
1pctl --help

Commands:
status 查看 1Panel 服务运行状态
start 启动 1Panel 服务
stop 停止 1Panel 服务
restart 重启 1Panel 服务
uninstall 卸载 1Panel 服务
user-info 获取 1Panel 用户信息
version 查看 1Panel 版本信息
reset 重置 1Panel 系统信息

2 1pctl reset

重置 1Panel 系统信息,包括取消安全入口登录,取消两步验证等

1
2
3
4
5
6
7
8
9
10
Usage:
1pctl reset [COMMAND] [ARGS...]
1pctl reset --help

Commands:
domain 取消 1Panel 访问域名绑定
entrance 取消 1Panel 安全入口
https 取消 1Panel https 方式登录
ips 取消 1Panel 授权 IP 限制
mfa 取消 1Panel 两步验证

3 1panel app

应用商店相关命令,包括初始化应用等

1
2
3
4
5
6
Usage:
1panel app [COMMAND] [ARGS...]
1panel app --help

Commands:
init 初始化应用

创建应用名为 app_name,版本为 v1.0.0 的应用,命令如下:

1
1panel app init -k app_name -v v1.0.0