Linux 笔记

git fetch –all git reset –hard origin/master git pull linux

交换分区 #

大小推荐 #

物理内存交换分区(SWAP)
<= 4G至少4G
4~16G至少8G
16G~64G至少16G
64G~256G至少32G

调节操作 #

# 查看命令相关
sudo swapo
swapoff swapon
# 关闭现有的交换分区
sudo swapoff /swapfile
# 查看效果
htop
# 预支出一块儿空地
sudo fallocate -l 16G /swapfile
du -sh /swapfile
# 设置权限 防止误操作
sudo chmod 600 /swapfile
# 整上
sudo mkswap /swapfile
mkswap: /swapfile:警告,将擦除旧的 swap 签名。
正在设置交换空间版本 1,大小 = 16 GiB (17179865088 个字节)
无标签, UUID=6de8b5e1-bdc3-4e7b-98c9-6801126fcb0b
# 开!
sudo swapon /swapfile
# 查看
swapon --show
NAME TYPE SIZE USED PRIO
/swapfile file 16G 535.3M -2
# 写到fstab自动挂载
sudo vim /etc/fstab

fstab示例:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/nvme0n1p5 during installation
UUID=a99e475d-766f-49db-85ce-5c1308beab58 /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/nvme0n1p1 during installation
UUID=5C1D-5115  /boot/efi       vfat    umask=0077      0       1
/swapfile                                 none            swap    sw              0       0
LABEL=Windows /mnt/Windows auto nosuid,nodev,nofail,x-gvfs-show,x-gvfs-name=Windows 0 0

靓仔是/swapfile none swap sw 0 0

tar 指定解压目录 #

tar xvf test.tar.gz -C /data/
tree
.
├── data
│   ├── test

Ubuntu22.04 切换wifi #

# 切换
sudo nmcli con up CMCC-XXXX-5G

# 使用show可以查看保存wifi
sudo nmcli con show

# 连接wifi
sudo nmcli dev wifi connect CMCC-XXXX password woshipassword123

# 删除记录
sudo nmcli con delete CMCC-YYYY

# 开关wifi
sudo nmcli radio wifi on
sudo nmcli radio wifi off

Ubuntu22.04 依赖项整理 #

  • vbox: libqt5opengl5
  • kate: konsole
  • Qt5.12.12: mesa-common-dev, libgl1-mesa-dev
  • OpenCV4.6.0: libgtk2.0-dev, pkg-config, libcanberra-gtk-module
    • 如果没有安装这俩依赖不会影响编译,但是编译后会有功能损失,补充安装后不会修复;
    • 如果想修复,只能安装后再编译一次;

dpkg .deb #

Install #

sudo dpkg -i file.deb

c l r P L s #

  • -c列出内容
  • -l提取包信息
  • -r移除一个已安装的包
  • -P完全清除一个已安装包
  • -L列出安装所有文件清单
  • -s显示已安装包信息

WSL #

wsl问题 因为后面不太喜欢这种东西了,还是上了物理机. 所以就不粘贴过来了.

sudo apt upgrade #

E: Sub-process /usr/bin/dpkg returned an error code (1)

解决 #

sudu下

  1. 备份/var/lib/dpkg/info
  2. 新建/var/lib/dpkg/info
  3. 重新执行更新
  4. 合并/var/lib/dpkg/info 和 备份文件

说明 #

非原理性解决方案, 若解决不了, 另寻他法或者需要直击灵魂.

磁盘操作 #

NTFS #

修复挂载问题 #

ntfsfix /dev/{disk name}

一般发行版 #

在此中可以使用ntfsfix, 不过刚才看了一圈儿, 好像, 这工具就是来源于下面所介绍的

树莓派 #

因为没有预装ntfsfix, 所以

  • 安装 ntfs-3g 很久远的工具: sudo apt install ntfs-3g (看3g就知道年代久远 😄)
  • 取消挂载, sudo umount /dev/sda{N}
  • 重新挂载, mount –t ntfs /dev/sda{n} /media/pi

就可以有读写权限了. 不然只有读的, 挺不好的.

不过在windows放了缓存在里面的话就没办法挂载为可写了, 方法是取消Win的快速启动功能后关机,不使用休眠.

磁盘查询命令 #

fdisk -l
df -h

LVM概要(がいよう)

自弁の理解

  • 将零散的集合起来,再进行动态分组。
  • PV » VG » LV

じゃあ作成(さくせい)#

pvcreat disk1 disk2 di3 ... # 集合
pvs|pvdisplay

vgcreat 集合name 1 2 3 ...  # 集合

vgs|vgdisplay

lvcreat -n name -L size 集name 
lvs|lvdisplay

格式化磁盘: #

mkfs.ext4 /dev/集name/name  # 格式化此(PS:路径为所示)

注: 不过要采用这种方法来给Linux扩容的话需要之前时就选定Linux磁盘管理为LVM,否则主目录在之后不能添加lv组,也就谈不上添加。

LVMの削除(さくじょ): #

LV  lvremove /dev/... 
VG  vgremove 集name
PV(物理卷) pvremove /dev/...

disk LVの追加(ついか): #

lvexpend -L +1G /dev/集name/name
# 增加了空白空间

resize2fs /dev/... 更新文件系统 使空白空间得以有身份(文件系统)

disk VGの追加 #

pvcreat /dev/sdd(new)

vgexpend 集name /dev/sdd

网络 #

SSH 远程终端控制 #

ssh root(usrname)@192.168.^.^ (IP) 输入密码错误之后——就…之前解决过,然而忘了上次怎么解决的了(京东云)反正这次是等着等着突然就能连接了。 以后可得把解决方案记录到这儿ヽ(*。>Д<)o゜

另外,ssh公钥🔑连接方式可以参考makethingseasy中的描写。

ping 测试连通 #

mtr 测试网络+每个路由信息 * + IP

VNC 桌面远程 #

Emmmm 当时还写了这个?现在倒是用这个在链接树莓派o(∩∩)o…哈哈(2021-04-22)

壓縮打包 #

  • tar -zxvf **.tar.gz: .tar.gz
  • tar -jxvf **.tar.bz2: .tar.bz2

tar #

    tar xvzf fileName.tar.gz
    tar cvzf fileName.tar.gz targerName

x: 解压 c : 压缩

exclude #

exclude 后目录不用带/, --exclude需放在-cvf参数之前

tar --exclude='.*' --exclude='.git' --exclude='mysql*' -cvf xxx.tar xxx/

Ubuntu 16.04 升级 Ubuntu 18.04 #

___ 经尝试真的不如备份自我资料后重装……因为太…慢…了… 更新还不稳。

其实还好… 就是更新速度慢了点儿。早不到十点更新到了下午13点38分。不过基于是一键式的所以还是有多点儿好处的。 更新命令

sudo do-release-upgrade
# 提示是没法找到可用更新…
# 所以  之后增加了
-c
# 还是不行
-d 
# 参数完成更新

但是python被重装了!!!! 里面的包都没了…🐎a算了,好在软件级别的东西都还在…另外pip也损坏了,apt安装也失败,后面我就用了.py脚本重新安装,所以apt卸载再重装没试,不知道行不行。 收回前面“软件级别的都还在”,其实软件级别的也待测。

设定系统常量 #

在用户目录下profile文件中可通过export 增加(一般来说是增加路径)

export IAN=/mnt/c/Users/ian
sourse ~/.profile

之后便可通过cd $IAN 来访问win下的用户目录。当然,这个方法是在添加GoPath时注意到的。

emm 其实在/etc/profile 文件下才是系统王道

ps #

今年面试还碰到个问这个问题,说什么是变量….. 把我给整蒙了….. 结果一番问下才发现他想问的就是放在/etc/profile~/.profile里有啥区别,

啥是系统,用户,会话级变量.唉.. 有时候突然听到基本问题就觉得对方是不是有什么深意…

tmux 虚拟多终端 #

类似于vim多窗口编辑一类的东西,emm 或者说图形化ubuntu使用ctrl+alt+t叫出来的东西。这么一对比的话就是无界面化的虚拟终端——那个是界面里的虚拟终端嘛。 用于解决ssh连接远程开启应用,断开后不关闭进程的方案。因为nohup好像并不稳定的样子…… 不过用起来… 不太了解怎么这就能够持久化了…因为毕竟是虚拟窗口,间makethingseasy中,其实…好像…大概…没什么关系吧。这两者。

最大文件数/单进程最大文件数 #

bump fs.nr_open + fs.max-file to their largest possible values

cat /proc/sys/fs/file-max
cat /proc/sys/fs/nr_open

今天(2021-04-22)看epoll的时候好奇看了一下,发现我的fs/file-max居然有9223372036854775807震惊一下.