Linux笔记
# 系统安装
安装系统至少需要分配三个分区
分区 | 分区名 | 分区类型 | 文件系统 |
---|---|---|---|
/boot | 引导分区,建议1GB | 主分区 | ext4 |
swap | 交换分区,按需分配 | 主分区 | 无 |
/ | 根目录,新手建议剩余全部 | 主分区 | ext4 |
# 系统信息查看
# 架构信息
通过uname -m
命令查看系统架构信息,然后在下面的表格中找到对应的架构信息
$ uname -m
x86_64
输出 | 架构 |
---|---|
i386, i686 | i386 |
x86_64 | amd64 |
arm, arme | arm_garbage |
armv7l, armhf | armv7 |
aarch64, armv8l | arm64 |
mips | mips |
mips64 | mips64 |
# 硬件信息
CPU型号核心数
$ lscpu
架构: x86_64
CPU 运行模式: 32-bit, 64-bit
Address sizes: 46 bits physical, 48 bits virtual
字节序: Little Endian
CPU: 4
在线 CPU 列表: 0-3
厂商 ID: GenuineIntel
型号名称: Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz
CPU 系列: 6
型号: 79
每个核的线程数: 1
每个座的核数: 4
......
内存信息
其中manufacturer
代表厂商,part number
代表型号规格,speed
代表频率和速度
$ dmidecode -t memory
# dmidecode 3.3
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present.
Handle 0x1000, DMI type 16, 23 bytes
Physical Memory Array
Location: Other
Use: System Memory
Error Correction Type: Multi-bit ECC
Maximum Capacity: 4 GB
Error Information Handle: Not Provided
Number Of Devices: 1
Handle 0x1100, DMI type 17, 40 bytes
Memory Device
Array Handle: 0x1000
......
# 资源使用情况
# CPU和内存
CPU内存使用情况可以通过top
命令查看,也可以使用增强版的htop
命令,top
命令是系统自带的,htop
命令可能需要额外安装
# 执行top命令的打印
$ top
top - 18:02:58 up 2 days, 2:24, 1 user, load average: 0.73, 0.25, 0.14
任务: 204 total, 1 running, 203 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.5 us, 2.9 sy, 0.0 ni, 95.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 3904.5 total, 1026.5 free, 1412.3 used, 1465.7 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 2219.2 avail Mem
进程号 USER PR NI VIRT RES SHR %CPU %MEM TIME+ COMMAND
# 汉化top命令打印结果
$ top
top - 18:02:58 已运行 2 天, 2:24, 1 用户, 平均负载: 0.73, 0.25, 0.14
任务: 204 总数, 1 运行中, 203 睡眠中, 0 已停止, 0 僵尸进程
%Cpu(s): 1.5 用户态, 2.9 系统态, 0.0 改变过优先级, 95.6 空闲, 0.0 等待IO, 0.0 硬中断, 0.0 软中断, 0.0 虚拟机时间
MiB 内存 : 3904.5 总数, 1026.5 空闲, 1412.3 已使用, 1465.7 缓存
MiB 交换空间: 0.0 总数, 0.0 空闲, 0.0 已使用. 2219.2 可用内存
进程号 用户 优先级 改变过优先级 虚拟内存 实际内存 共享内存 CPU占用率 内存占用率 运行时间 命令
# 实时网速
查看实时网速需要使用ifstat
命令,直接输入即可,如果命令不存在可以apt安装
# 安装ifstat命令
$ sudo apt install -y ifstat
# 直接使用ifstat就可以查看网速,但是一般建议搭配参数使用,效果更好
$ ifstat -S -i eth0 -t 1
-S:行内刷新,默认打印网速是一行一行打印的,很快铺满屏幕
-i:查看指定网卡网速,默认打印所有网卡的网速信息
-t:指定刷新频率/秒,默认网速是每秒钟更新一次,
# 硬盘存储
# 硬盘分区信息查看,使用参数可查看分区UUID
$ lsblk
-a:显示所有设备(包括未挂载的)
-f:显示UUID以及分区使用情况
-t:显示设备的拓扑关系
-p:显示文件系统
-J:以JSON格式显示
# 查看挂载点使用情况
$ df -h
-a:显示所有挂载点
-h:以可读的存储单位显示(KB,MB,GB)
# 查看目录/文件使用情况
$ du -ah --max-depth=1
-h:以可读的存储单位显示(KB,MB,GB)
-s:查看当前目录总占用大小
-a:查看文件,默认只查看目录,不可与-s同时使用
--max-depth:统计深度
--exclude:排除条件
# SSH相关配置
启用Root用户SSH远程
# 编辑配置文件
$ vim /etc/ssh/sshd_config
# 找到PermitRootLogin解开注释并修改为yes
$ 略
# 重启sshd服务
$ systemctl restart sshd
修改SSH端口号
# 编辑配置文件
$ vim /etc/ssh/sshd_config
# 找到Port属性解开注释修改为合适的端口号,注意防火墙放行端口
$ 略
# 切记先放行防火墙,然后重启sshd服务
$ systemctl restart sshd
SSH连接慢
# 编辑配置文件
$ vim /etc/ssh/sshd_config
# 将GSSAPIAuthentication 设置未no,同时添加UsePAM no 、UseDNS no这两项
GSSAPIAuthentication no
UsePAM no
UseDNS no
# 重启sshd服务
$ systemctl restart sshd
# VIM编辑器
快捷键
# gg跳转文件开头,G跳转文件结尾,10G跳转第10行
# 复制行:yy,复制5行:5yy
# 删除行:dd,删除5行:5dd
# 粘贴复制的行:p
# 回退到上一步:u
# 撤销上一步的回退:Ctrl + R
指令
# 显示/关闭行号
:set nu
:set nonu
# 开启/关闭自动缩进
:set paste
:set nopaste
# 替换内容,带%表示全文,不带%表示当前行
%s/aaa/bbb/g
# 查找内容,快捷键n为下一条,N为上一条
/aaa
# 关闭查找高亮
:nohlsearch
关闭自动缩进
有些配置写在VIM配置文件中,例如我个人不喜欢VIM的自动缩进,可以将set paste
指令写入配置文件
# 编辑VIM系统配置文件,对所有用户生效
$ vim /etc/vim/vimrc
# 如果用户目录下有配置文件,也可以修改用户文件仅对当前用户生效
$ vim ~/.vimrc
解决VIM中文乱码
# 编辑VIM系统配置文件,对所有用户生效
$ vim /etc/vim/vimrc
# 加入下面这段内容
set termencoding=utf-8
set encoding=utf8
set fileencodings=utf8,ucs-bom,gbk,cp936,gb2312,gb18030
关闭VIM可视化鼠标事件
# 移动到该目录,然后查看该目录的文件信息
$ cd /usr/share/vim
$ ll
总计 12
drwxr-xr-x 2 root root 4096 5月 4日 10:24 addons
drwxr-xr-x 2 root root 4096 5月 4日 10:24 registry
drwxr-xr-x 18 root root 4096 8月23日 04:44 vim90
# 该目录下有个vim开头的目录,我这里是vim90,移动到该目录下
$ cd vim90
# 编辑defaults.vim文件
$ vim defaults.vim
# 在文件中找到if has('mouse')命令,注释相关代码即可
"if has('mouse')
" if &term =~ 'xterm'
" set mouse=a
" else
" set mouse=nvi
" endif
"endif
# 文件权限管理
权限顺序:所有者(Owner / u)、所属组(Group / g)、其他用户(Others / o)
权限数值:读取(Read / 4)、写入(Write / 2)、执行(Execute / 1)
权限管理
$ chmod u+r file.txt # 给所有者添加读权限
$ chmod g-w file.txt # 移除所属组的写权限
$ chmod o=x file.txt # 设置其他用户的权限为仅执行
$ chmod a+rw file.txt # 给所有用户添加读写权限
$ chmod 751 file.txt # 所有者全部权限,同组读取执行权限,其他用户执行权限,
$ chmod 755 ./java -R # 所有者全部权限,同组及其他用户读取执行权限,对该目录及所有子文件生效
文件管理
$ chown zhang file.txt # 所有者改为zhang
$ chown zhang:zhang file.txt # 所有者改为zhang,所属组更改为zhang
$ chown :zhang file.txt # 所属组更改为zhang
$ chown root:root ./java -R # 将该目录及所有子文件所属用户和所属组修改为root
# 长命令起别名
Debian系用户配置文件为~/.bashrc
,全局配置文件为/etc/bash.bashrc
# 编辑配置文件
$ vim /etc/bash.bashrc
# 找到现有alias的位置,在结尾添加下面这段内容
alias ll='ls -lhF'
alias rm='rm -i'
alias dk='docker'
alias dkc='docker compose'
alias docker-compose='docker compose'
alias rtnet='ifstat -S -i eth0 -t 1'
# 更新配置文件
$ source /etc/bash.bashrc
# 常用命令
这里记录一些常用的命令,用的时候方便查阅
# 查找命令
# find 范围 选项 选项值
# 从根目录内查找名字为 1.txt 的文件
$ find / -name 1.txt
# 查找/opt目录下大于100MB的文件
$ find /opt -type f -size +100M
# locate 查找条件
# 查找 1.txt 文件
$ locate 1.txt
# 长时间未使用locate需要更新数据库
$ updatedb
# 命令不存在可以安装mlocate或者locate软件包
# 配置代理
命令行代理
# 查看代理
$ echo $http_proxy
$ echo $https_proxy
$ echo $ftp_proxy
$ echo $no_proxy
# 设置代理
$ export http_proxy="http://127.0.0.1:7897"
$ export https_proxy="http://127.0.0.1:7897"
$ export ftp_proxy="http://127.0.0.1:7897"
$ export no_proxy="localhost,127.*,192.168.*,10.*,172.16.*,172.17.*,172.18.*,172.19.*,172.20.*,172.21.*,172.22.*,172.23.*,172.24.*,172.25.*,172.26.*,172.27.*,172.28.*,172.29.*,172.30.*,172.31.*"
# 清空代理
$ unset http_proxy
$ unset https_proxy
$ unset ftp_proxy
$ unset no_proxy
APT 包管理器代理
编辑/etc/apt/apt.conf
配置文件,用于查看、设置、删除代理
Acquire::http::Proxy "http://127.0.0.1:7897";
Acquire::https::Proxy "http://127.0.0.1:7897";
# 文件上传下载
建议自己备一份 Debian 和 RedHat 的lrzsz
安装包用此命令上传后安装,防止电脑无法安装 XFTP 的情况,文件命名最好避免中文名称,防止文件上传后出现乱码现象
# 将本地文件上传至服务器
$ scp /路径/文件名 用户名@远程服务器:/路径/文件名
# 反之则是将服务器文件下载至本地
$ scp 用户名@远程服务器:/路径/文件名 路径/文件名
# 后台运行
# 后台运行程序,将日志打印在 nohup.log
$ nohup java -jar xxx.jar > nohup.log 2>&1 &
# 后台运行程序,丢弃日志信息
$ nohup java -jar xxx.jar > /dev/null 2>&1 &
# 结束进程
# 找到占用该端口号的程序的PID
$ netstat -apn | grep 端口号
# 根据进程名称查询PID
$ ps -ef | grep 进程名 | grep -v grep
# 根据PID结束应用程序
$ kill -9 程序的PID
上次更新: 2025-03-15, 18:19:38