Linux常用操作
ArchLinux
optimus-manager
- 在终端使用命令切换显卡
- 先运行 prime-offload
切换为英伟达显卡 |
无效 |
journalctl -p 3 -xb 查看系统日志
- glxinfo命令可以查看当前正在使用的显卡。
切换前默认Intel |
- 查看驱动版本信息
ls /usr/src | grep nvidia |
- 查看显卡
lspci -k | grep -A 2 -E "(VGA|3D)" |
切换nvidia驱动后重启无法进入图形界面
按ctrl+alt+f2进入命令行,输入用户名密码进入(建议),输入命令nvidia-smi查看显卡是否运行正常
运行nvidia-xconfig生成配置
输入lspci | grep -E "VGA|3D"查看你的显卡PCI地址,
将类似图中每行最前面的00.02.0转换成PCI:0:2:0,填在下面代码块中BusID那里,我使用的是NVIDIA,按照图中应该为PCI:1:0:0。将下面代码块添加到/etc/X11/xorg.conf文件中(同理,如果你是使用nvidia-xconfig后无法进入图形界面,你可以(删除/etc/X11/xorg.conf来重新进入图形界面)谨慎操作!!!):
Section "Module"
Load "modesetting"
EndSection
Section "Device"
Identifier "nvidia"
Driver "nvidia"
BusID "PCI:1:0:0"
Option "AllowEmptyInitialConfiguration"
EndSection
编辑/usr/share/sddm/scripts/Xsetup文件,将下列内容添加到文件中
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
切换回intel
sudo vim /etc/optimus-manager/optimus-manager.conf
修改 startup_mode=integrated 后 注销
登录选择位置
/usr/share/xsessions
nmcli 连接wifi
nmcli dev 查看网络设备
nmcli r wifi on 打开wifi
nmcli r wifi off 关闭wifi
nmcli dev wifi 扫描wifi
- 创建wifi连接
$ nmcli device wifi connect {wifi名} password {密码}
- 删除wifi连接
$ nmcli con del {wifi名}
- 启用wifi连接
$ nmcli connection up {wifi名}
$ nmcli device con {网卡名}
- 查看已有连接
$ nmcli con
- 若报错
Error: Connection activation failed: (7) Secrets were required, but not provided.删除连接记录
nmcli c |
但是隐藏了SSID的则需要额外操作,如下:
nmcli c add type wifi con-name "自定义连接名称" ifname "无线网卡名称" ssid "WiFi的名字" |
查看网卡信息:
查看网卡信息: |
创建证书连接
nmcli connection add \
type wifi con-name "IMUNET-NG" ifname wlp7s0 ssid "IMUNET-NG" -- \
wifi-sec.key-mgmt wpa-eap 802-1x.eap ttls \
802-1x.phase2-auth mschapv2 802-1x.identity "32309140" \
802-1x.password "131539"
启动时(第一次):
nmcli --ask connection up IMUNET-NG
nmcli 创建网桥
注意: 仅有线网卡可以
- 添加新的网桥:
nmcli connection add type bridge con-name virbr0 ifname virbr0 autoconnect yes - 创建子网卡:
nmcli con add type bridge-slave ifname ${网卡名} master ${网桥名} - 打开 br0:
nmcli con up br0
查看端口
netstat -anp | grep 端口号
lsof -i: 端口号
ps -ef 查看进程
w , tty
pkill 命令:杀死终端中所有命令 - pkill -9 -t pts/0
patch补丁
Reversed (or previously applied) patch detected! Assume -R? [n]
-t:该参数遇到这种情况直接将打过补丁的文件恢复原样,即未打补丁之前的状态-f:该参数遇到这种情况则继续打补丁,当然一般情况下会报错,毕竟对比不一致了-N:忽略该文件
基本命令语法:
patch [-R] {-p(n)} [–dry-run] < patch_file_name
p:为path的缩写。
n:指将patch文件中的path第n条’/’及其左边部分取消。
-R:卸载patch包。
–dry-run:尝试patch软件,并不真正修改软件。
例如:
$ patch -p1 < /home/sense/patch-2.6.19.1 安装补丁
$ patch -p1 -R < /home/sense/patch-2.6.19.1 卸载补丁
DPI设置
~/.Xresources |
应用程序缩放:
–force-device-scale-factor=2
双屏设置
xrandr –output eDP-1-1 –primary –mode 3840x2160 –scale 1x1 –output DP-0 –mode 1920x1080 –scale 2x2 –left-of eDP-1-1
向日葵启动
sudo systemctl start runsunloginclient.service
sudo systemctl enable runsunloginclient.service
chrome 代理
sudo google-chrome --proxy-server="127.0.0.1:8080" --no-sandbox- 使用代理插件
调整透明度
- xprop 点击窗口获取窗口信息 WM_CLASS(STRING) 后的内容
- vim ~/.config/picom/picom.conf
- 在透明度中新加一行更改指定透明度
调节音量
alsamixer
pgup/pgdowm 增减音量
1~9 调节音量到 10%-90%
调节屏幕亮度
手动切换 |
切换内核
修改 grub 配置不是必须的,下面那个才是必须的。 |
救援模式
linux系统奔溃后的紧急救援模式
当 Linux 系统奔溃时,可以进入紧急救援模式(emergency mode)来检查和修复系统问题。以下是进入紧急救援模式的步骤:
在启动 GRUB 时,选择要启动的 Linux 内核。
按下 e 键进入编辑模式,在 kernel 行的末尾添加 single 或 emergency。
按下 Ctrl + X 启动系统。
系统会自动进入救援模式,此时会提示输入 root 用户密码,输入密码后即可进入救援模式。
在救援模式下,可以进行以下操作:
检查文件系统:使用 fsck 命令检查文件系统,并修复错误。
挂载文件系统:使用 mount 命令挂载文件系统,使得可以访问文件系统中的文件。
修改密码:使用 passwd 命令修改用户密码。
网络配置:使用 ifconfig 命令配置网络。
安装软件:使用 yum 或 apt-get 命令安装软件。
退出救援模式:使用 exit 命令退出救援模式,重新启动系统。
系统
- 关机
shutdown -h 0 #<==O秒后关机 |
- 重启
shutdown -r now #<==现在重启 |
- 注销
logout #<==立马注销 |
切换java版本
查看archlinux-java使用说明 |
crontab脚本
- -e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
- -r : 删除目前的时程表
- -l : 列出目前的时程表
min hour day mon week program
每分钟定时执行一次 * * * * * 每小时定时执行一次 0 * * * * 每天定时执行一次 0 0 * * * 每周定时执行一次 0 0 * * 0 每月定时执行一次 0 0 1 * * 每月最后一天定时执行一次 0 0 L * * 每年定时执行一次 0 0 1 1 *
- 要确保有对目标文件的权限
- 命令要使用绝对路径
Top
c: 显示完整的命令 |
scp
#上传本地文件夹到Linux |
ln 软链接
ln -s 【目标目录】 【软链接地址】
目标目录】指软连接指向的目标目录下,【软链接地址】指“快捷键”文件名称,该文件是被指令创建的。
rm -rf 【软链接地址】
ln -snf 【新目标目录】 【软链接地址】
ROFI Script
格式
rofi -show [mine] -modi “mine:~/scripts/rofi.sh”
返回选中的文本
ls | rofi -dmenu
history | rofi -dmenu. h=$(history | rofi -dmenu)
屏蔽磁盘
1 启动后的禁用 无需重启
(sdx是你的磁盘 udev的更新可能会导致磁盘重新出现 在向系统添加/删除磁盘也可能会改变)
echo 1>/sys/block/sdx/device/delete
2 基本上你创建一个文件/etc/udev/rules.d/99-hide-disks.rules ,你在其中放置该行
KERNEL=="sda1", ENV{UDISKS_PRESENTATION_HIDE}="1"
其中sda1是您要隐藏的分区的名称。 在某些系统中它也可以
KERNEL=="sda1", ENV{UDISKS_IGNORE}="1"
然后你重新启动。
QQ闪退
文件问题: sudo chattr +i ~/.config/QQ/crash_files/
代理问题: 不要走代理
pacman
强制安装
pacman -S –overwrite ‘‘ 要覆盖的文件模式*
在 Arch Linux 上安装 Debtap
要安装 Debtap,启动终端并使用 AUR 助手安装它:
>yay -S debtap
>sudo debtap -u使用 cd 命令进入 DEB 文件的目录并使用 Debtap 开始转换包。
>cd ~/Downloads
>debtap yourfile.debDebtap 将创建一个“你的文件.zst” 文件,您可以使用包管理器轻松安装,在本例中为 pacman。
>sudo pacman -U yourfile.zst
使用dpkg
- 安装dpkg
- 使用dpkg安装deb包
>yay -S dpkg
>dpkg -i .deb包名
安装
pacmam -U package.pkg.tar.gz 从安装本地package包
多线程编译
sudo vim /etc/makepkg.conf |
找到 MAKEFLAGS 参数,修改 -j 后面的参数为想要用多少个核编译,保持并退出
MAKEFLAGS="-j8" |
代理问题
设置 http 代理 |
Shell
注意
带多个参数的命令 要加 command 修饰,例如
command gcc -g main.c -o main
内核编译
qemu安装
- i386: qemu-system-i386
- x86_64: qemu-system-x86_64
- arm : qemu-system-arm
- arm64: qemu-system-aarch64
交叉编译链安装
- arm-linux-gnueabihf-
- aarch64-linux-gnu-
编译linux内核
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- menuconfig
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j 8
制作跟文件系统 busybox
- 下载源码,并设置对应目标的架构,编译。
- qemu-img create xxx.img 4g 创建4g磁盘,使用mkfs.ext4 xxx.img 格式化
创建 1g (这个根据实际需要进行配置) 的 raw 格式的空镜像磁盘
qemu-img create rootfs.img 1g
将创建的磁盘格式化成 ext4 类型的文件系统
mkfs.ext4 rootfs.img
创建一个文件用来挂载该镜像(用来将编译好的内容装入磁盘,载体)
mkdir rootfs
将 rootfs.img 挂载到 rootfs 文件夹
sudo mount -o loop rootfs.img rootfs
将在 busybox 中编译的内容移动到刚新建的文件夹 rootfs 中(等价于拷贝到了 rootfs.img 磁盘中)
cd rootfs
sudo cp -r ../busybox/_install/* .
补充一些必要的文件夹
sudo mkdir proc sys dev etc etc/init.d
cd etc/init.d/ sudo touch rcS sudo vi rcS
文件内容如下
!/bin/sh
mount -t proc none /proc # 挂载文件系统到 /proc 目录, 它提供了一个接口来访问内核和进程信息
mount -t sysfs none /sys # 挂载sysfs文件系统到 /sys 目录, 提供了一种方式来访问和调整内核的运行时信息
/sbin/mdev -s # 使用mdev(是BusyBox的一部分)来初始化/dev目录,它负责创建设备节点
# -s 告诉 mdev 启动是扫描 /sys 目录并创建设备节点
# /sys中包含了当前系统中硬件设备的详细信息
sudo chmod +x rcS
cd ../..
sudo umount rootfs
qemu启动系统
qemu-system-aarch64 -M virt -cpu cortex-a57 -m 256M -nographic -kernel ../linux-6.7/arch/arm64/boot/Image -drive file=rootfs.img,format=raw,id=hd0,if=none -device virtio-blk-device,drive=hd0 -append "root=/dev/vda rw console=ttyAMA0"
