您现在的位置是:首页 >其他 >【备份】使用ubuntu一个月,记录的问题和解决方案网站首页其他

【备份】使用ubuntu一个月,记录的问题和解决方案

跪求指点 2023-06-10 16:00:03
简介【备份】使用ubuntu一个月,记录的问题和解决方案

40.ANSI 转义码

Linux技巧:在代码中设置终端字符显示颜色和移动光标位置

# 获取光标位置
echo -ne "33[6n"            # ask the terminal for the position
read -s -d[ garbage          # discard the first part of the response
read -s -d R foo              # store the position in bash variable 'foo'
echo -n "Current position: "
echo "$foo"                   # print the position
# 输出位置很奇怪


# 获取鼠标位置
printf 'e[?1000;1006;1015h' # 开启跟踪
read -s -d[ garbage          # [ 及之前的丢弃
read -s -d M foo              # store the position in bash variable 'foo'
echo -n "Current position: "
echo "$foo" #按下0;1;1M  抬起m
printf 'e[?1000;1006;1015l' # Disable tracking


# 设置光标位置 # print -n '33[y;xH'
echo -ne "33[3;1H" # 直接将 qwe@tfnmdx移到了xy位置,然后就是新的行了,后面的字符都无了

39.终端鼠标

[小技巧] 在zsh中使用鼠标定位光标,简单直接,节省时间,提升命令行操作效率 - 知乎

单行命令有偏移,而且偏移数随机

复制粘贴的多行命令,只有第一行有错位,解决第一行问题:

这里仍然有一点小问题,因为我只在第一行(界面上的一行)增加了识别,而原程序只识别除第一行(回车符前连续一行)外的,所以在第一个回车之前,一行太长的话,这一部分就不能点击。解决方法就是删掉一些或把终端界面拉长。
    #################################
	# mouse:  mx:lie my:hang		#
	# setCursor:  CURSOR			#
	#  Move cursor.	edited!!!!		#
	# There is still a small issue here, which can be avoided by keeping the command before the first carriage return no more than one line.
	#############################
	 if (( flag == 0 )); then # no 

		if (( my == 1 )); then # 1 hang
	 		CURSOR=$mx-5
		else
		 CURSOR=$((($my-1)*80+$mx-5))
		fi
	else
		if (( my == 1 )); then # 1 hang
	 		CURSOR=$mx-5
		else
	 		CURSOR=$mouse_CURSOR
		fi
	fi

bash的:mouse_xterm

没用

38.键盘映射

优化-键盘和鼠标-其他布局选项

映射capsLock为Esc,目前只发现在终端里有效

37.端口

ubuntu 自带防火墙 ufw

https://www.cnblogs.com/zqifa/p/ubuntu-ufw-1.html

netstat -tanlp 查询所有的端口号

netstat -apn | grep 3306 查询指定的端口号

netstat -apn | grep 3306 关闭指定端口号

36.nmap扫描

1.扫描172.16.88.90这台主机开放了哪些端口:nmap -sT 172.16.88.90

2.nmap -sS -O 172.16.88.190

-sS半开扫描,不会计入被扫描主机日志,较隐蔽

-O操作系统扫描

35.磁盘管理

https://blog.csdn.net/qq_43265072/article/details/112312223

https://blog.csdn.net/qq_34769162/article/details/108051689

sudo apt-get install gparted 
sudo gparted
# /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/sdc4 during installation
UUID=0f5807e4-e612-49e3-9873-2b4a6c8e66b5 /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/sdc2 during installation
UUID=18C9-3988  /boot/efi       vfat    umask=0077      0       1
# /home was on /dev/sdc5 during installation
UUID=9e00b0eb-d57f-4a9d-bffe-528873ba53c2 /home           ext4    defaults        0       2
# swap was on /dev/sdc3 during installation
UUID=718c1f4b-eeea-429b-8059-4d86a4b98e5f none            swap    sw              0       0

34.关机默认等待时间

sudo gedit /etc/systemd/system.conf

sudo systemctl daemon-reload

33.HackBGRT电脑logo

图片必须用win自带的图画改后缀,ubuntu改的都不行

1.查看efi信息
sudo efibootmgr -v
2.添加efi选项HackBGRT
sudo efibootmgr -c -w -L "HackBGRT" -d /dev/sdc -p 2 -l \EFI\HackBGRT\bootx64.efi
3.删除
sudo efibootmgr -b 0005 -B
4.更新
sudo update-grub

32.lsblk

在这里插入图片描述

31.update-initramfs

sudo update-alternatives --config default.plymouth
[sudo] qwe 的密码: 
有 2 个候选项可用于替换 default.plymouth (提供 /usr/share/plymouth/themes/default.plymouth)。

  选择       路径                                                           优先级  状态
------------------------------------------------------------
  0            /usr/share/plymouth/themes/vortex-ubuntu/vortex-ubuntu.plymouth   100       自动模式
  1            /usr/share/plymouth/themes/ubuntu-logo/ubuntu-logo.plymouth       100       手动模式
* 2            /usr/share/plymouth/themes/vortex-ubuntu/vortex-ubuntu.plymouth   100       手动模式

要维持当前值[*]请按<回车键>,或者键入选择的编号:
~ ❯ sudo update-initramfs  -u                                                                                 4m 11s
update-initramfs: Generating /boot/initrd.img-5.4.0-146-generic
I: The initramfs will attempt to resume from /dev/sdc3
I: (UUID=718c1f4b-eeea-429b-8059-4d86a4b98e5f)
I: Set the RESUME variable to override this.

30.fastGithub

在这里插入图片描述

29.rename

i=1; for x in *; do mv $x $i.png; let i=i+1; done

28.设置休眠

https://zhuanlan.zhihu.com/p/464007568

查看swap UUID:

cat /etc/fstab | grep swap
grep swap /etc/fstab

# swap was on /dev/sdc3 during installation
UUID=718c1f4b-eeea-429b-8059-4d86a4b98e5f none            swap    sw              0       0

查看swap信息:

free -m
              总计         已用        空闲      共享    缓冲/缓存    可用
内存:        7843        2450        3067         579        2325        4547
交换:       15258         927       14331

swapon -s
文件名				类型		大小	已用	权限
/dev/sdc3                              	partition	15625212	949504	-2

修改grub:

eedit /etc/default/grub
找到 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 一行,在 quiet splash 后添加:resume=UUID=××××
sudo update-grub         

休眠:

sudo systemctl hibernate

27.小鱼ROS

.zshrc里添加xxx.zsh

检测到系统有1个ROS环境,已为你生成启动选择,修改~/.bashrc可关闭
恭喜你,安装成功了,再附赠你机器人学习宝藏网站:鱼香社区:https://fishros.org.cn/forum

如在使用过程中遇到问题,请打开:https://fishros.org.cn/forum 进行反馈

26.查看磁盘

df -h
iostat [-x] [刷新间隔] [刷新次数]
iostat -x 5 3

25.wmctrl

  1. l 列出窗口
  2. x 使用WM_CLASS名称
  3. a 激活窗口
  4. c 关闭窗口
  5. F 名称完全匹配
  6. r WIN b STAGE((remove|add|toggle),[,])

modal, sticky, maximized_vert, maximized_horz,shaded, skip_taskbar, skip_pager, hidden,fullscreen, above, below

激活:

wmctrl -a qwe

置顶:

wmctrl -r qwe -b add,above

一键置顶终端,设置-键盘-快捷键

wmctrl -rx terminal -b add,above 

24.Typora图片存储

默认存储路径:/home/qwe/.config/Typora/typora-user-images

Typora不上传图床,就一直是相对路径,无论是本地,还是上传到Gitee(图片也在GItee,被相对路径引用)

23.ssh远程登录

https://blog.csdn.net/y22y22y/article/details/120339331

ssh -p 22 user@10.169.2.222

xrdp桌面连接

Ubuntu18.04.4 安装XRDP远程桌面
一键安装官网:Products | c-nergy.be

wget https://www.c-nergy.be/downloads/xRDP/xrdp-installer-1.4.6.zip
unzip xrdp-installer-1.4.6.zip 
该脚本需要以普通用户身份运行。
 ./xrdp-installer-1.4.6.sh
 
--help or -h          => will display a basic help menu
--sound or -s         => will enable sound redirection 
--loginscreen or -l   => will customize the xRDP login screen 
--remove or -r        => will remove the xrdp package 
--custom or -c        => will perform a custom installation (i.e. compiled from sources)
win+r
mstsc

【Linux】tcp缓冲区大小的默认值、最大值

cat /proc/sys/net/ipv4/tcp_wmem 
4096	16384	4194304
最小值 	默认值 	最大值
cat /proc/sys/net/ipv4/tcp_rmem

Xrdp 体验优化 减少/解决画面卡顿

调整 Xrdp 配置参数——非常有用,但还是有点卡
编辑 /etc/xrdp/xrdp.ini

tcp_send_buffer_bytes=4194304
tcp_recv_buffer_bytes=6291456
调整系统参数——貌似没啥用
临时生效
sudo sysctl -w net.core.rmem_max=12582912
sudo sysctl -w net.core.wmem_max=8388608
查看
cat /proc/sys/net/core/rmem_max
cat /proc/sys/net/core/wmem_max
优先使用物理内存,而不是swap分区——好像有点用,还有一点点卡
cat /proc/sys/vm/swappiness
sysctl vm.swappiness=10

调整设置——好像有点用

16色
LAN

注意gnome-shell是否内存泄露

win自带工具,只使用某一固定页面比较顺畅,但是拖动或切换窗口就卡

新建了一个桌面环境,登录了A用户,远程断开连接,但没有注销登录,于是本地登不上A

使用MobaXterm

22.油猴插件

网盘下载助手

网盘识别助手

[油猴脚本开发指南]with解决require引入问题 - 知乎

获取[标题](链接)

写了个脚本,在网页上按 Shift+q 直接复制MD格式的网页标题和链接,[标题](链接),方便写文章

js 复制内容到剪贴板

// ==UserScript==
// @name         获取[标题](链接)
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  try to take over the world!
// @author       tfnmdmx
// @match        *://*/*
// @run-at       document_start
// @grant        unsafeWindow
// @require      https://cdn.jsdelivr.net/npm/sweetalert2@11
// @icon         https://www.google.com/s2/favicons?sz=64&domain=csdn.net
// ==/UserScript==

(function() {
    'use strict';
    async function copyPageUrl(md) {
        try {
            await navigator.clipboard.writeText(md);
            console.log('已复制:'+md);
            Swal.fire({
                toast: true,
                position: 'bottom-end',
                type: 'success',
                title: "已复制!",
                showConfirmButton: false,
                timer: 1500
            });
        } catch (err) {
            try {
                console.log('不安全的链接http');
                // 创建text area
                const textArea = document.createElement('textarea')
                textArea.value = md
                // 使text area不在viewport,同时设置不可见
                document.body.appendChild(textArea)
                textArea.focus()
                textArea.select()
                return new Promise((res, rej) => {
                    // 执行复制命令并移除文本框
                    document.execCommand('copy') ? res() : rej()
                    textArea.remove()
                })
                console.log('已复制:'+md);
                Swal.fire({
                    toast: true,
                    position: 'bottom-end',
                    type: 'success',
                    title: "已复制!",
                    showConfirmButton: false,
                    timer: 1500
                });
            } catch (e) {
                console.error('Failed to copy: ', e);
                Swal.fire({
                    toast: true,
                    position: 'bottom-end',
                    type: 'error',
                    title: "出错了!",
                    showConfirmButton: false,
                    timer: 1500
                });
            }
        }
    }
    window.addEventListener('keydown' , (e) => {
        //console.log(e.keyCode);
        if(e.shiftKey && e.keyCode== 81){
            var url=window.location.href
            var title=document.title
            var md = "["+title+"]("+url+")";
            console.log('title:'+title);
            console.log('url:'+url);
            copyPageUrl(md);
        }
    })
})();

21.配置Git-Gitee

https://www.bilibili.com/video/BV1Jk4y1r7fF

https://blog.csdn.net/tfnmdmx/article/details/130055775

20.zip解压中文乱码

https://blog.csdn.net/qq_42328335/article/details/109217381

**方法1**:在命令行中解压文件设置参数
    通过unzip行命令解压,指定字符集
    unzip -O GBK xxx.zip (用CP936, GB18030也可以)
**方法2**:修改设置环境
    在命令行中输入下面命令,vim打开环境设置
    $sudo vim /var/lib/locales/supported.d/local
    然后编辑,添入下面的中文字符集
    zh_CN.GBK GBK
    zh_CN.GB2312 GB2312
    zh_CN.GB18030 GB18030
    保存退出vim
    使其生效:
    sudo dpkg-reconfigure --force locales
    这样修改完后,使用右键提取文件还是会中文乱码的,但是在命令行中使用命令解压文件就不会乱码了。
**方法3**:替换文件
	在ubuntu10.04下用gnome自带的归档管理器
	解压windows下压缩的zip文件,中文会出现乱码。
	将压缩包中以7z开头的文件全部复制到/usr/lib/p7zip/目录下,
	替换掉原有的文件。这样乱码就解决了。

19.添加win10


### BEGIN /etc/grub.d/40_custom_proxy ###
menuentry "Windows" {
insmod part_gpt
insmod chain
insmod ntfs
set root='(hd0,gpt3)'
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
### END /etc/grub.d/40_custom_proxy ###

18.文件夹英文

export LANG=en_US    #改变支持的语言为英语
xdg-user-dirs-gtk-update   #更新系统语言,按照中文对应的英语进行翻译
export LANG=zh_CN.UTF-8    #重新支持中文
注销,保留旧的

17.xargs

https://ruanyifeng.com/blog/2019/08/xargs-tutorial.html

  • -a file 从文件中读入作为 stdin
  • -e flag ,注意有的时候可能会是-E,flag必须是一个以空格分隔的标志,当xargs分析到含有flag这个标志的时候就停止。
  • -p 当每次执行一个argument的时候询问一次用户。
  • -n num 后面加次数,表示命令在执行的时候一次用的argument的个数,默认是用所有的。
  • -t 表示先打印命令,然后再执行。
  • -i 或者是-I,这得看linux支持了,将xargs的每项名称,一般是一行一行赋值给 {},可以用 {} 代替。
  • -r no-run-if-empty 当xargs的输入为空的时候则停止xargs,不用再去执行了。
  • -s num 命令行的最大字符数,指的是 xargs 后面那个命令的最大命令行字符数。
  • -L num 从标准输入一次读取 num 行送给 command 命令。
  • -l 同 -L。
  • -d delim 分隔符,默认的xargs分隔符是回车,argument的分隔符是空格,这里修改的是xargs的分隔符。
  • -x exit的意思,主要是配合-s使用。。
  • -P 修改最大的进程数,默认是1,为0时候为as many as it can

bash -c

https://www.jianshu.com/p/bb8e9d366a5c

-c 命令表示后面的参数将会作为字符串读入作为执行的命令。

16.Ubuntu没有声音

https://blog.csdn.net/qq_38333041/article/details/105002868

原因:从win重启进入ubuntu,会没有声音

15.后台运行

https://blog.csdn.net/caesar1228/article/details/118853871

https://cloud.tencent.com/developer/article/1722018

(1) nohup:加在一个命令的最前面,表示不挂断的运行命令
(2) &:加载一个命令的最后面,表示这个命令放在后台执行

cmd & : 后台运行,关掉终端会停止运行
nohup cmd & : 后台运行,关掉终端不会停止运行
ps -aux|grep java:a: 显示所有程序 u: 以用户为主的格式来显示  x: 显示所有程序,不以终端机来区分
jobs:查看当前有多少在后台运行的命令,-l选项可显示所有任务的PID。

fg:将后台命令放回前台运行。
bg:将嵌套命令放到后台运行。
ctrl + z:将正在前台执行的命令放到后台,且让命令处于暂停状态。

kill 命令:使用SIGKILL(9)信息尝试强制删除程序,即 kill -9
(1)通过jobs命令查看jobnum,然后执行  kill %jobnum
(2)通过ps命令查看进程号PID,然后执行 kill %PID

nohup+&不起作用

https://blog.csdn.net/qq_34021712/article/details/115587702#t10

nohup,需要用exit退出终端

huponexit配置项:默认关闭(off),使用exit命令退出终端时不会向终端所属任务发SIGHUP信号

shopt:只能在bash下用

查看:shopt | grep huponexit
打开:shopt -s huponexit
关闭:shopt -u huponexit
disown可以将指定任务从"后台任务"列表(jobs命令的返回结果)之中移除

14.录屏

如果是 Gnome3 系用户,可以按 ctrl + shift + alt + r,屏幕右下角有红点出现,则开始录屏,要结束的话再按一次 ctrl + shift + alt + r,录好的视频在 ~/video下

修改默认30秒的问题
gsettings set org.gnome.settings-daemon.plugins.media-keys max-screencast-length 3600
改成1小时

13.高亮关键字

https://blog.csdn.net/qq_33446100/article/details/108880766

tail -f path | perl -pe 's/keyword/e[1;31m$&e[0m/g'

12.Shell变量的初始值

   ${var-初始值} 如果没有定义,则表达式返回默认值
   
   没有定义或者为空字符串,则表达式返回默认值
   ${var:-初始值}	临时调用,变量var并不改变,仍然为空
    
   ${var:=初始值}	调用初始值后,变量var也赋予了一个值
传=${1:-'1.0.0'}
参=${2:-'test demo'}

11.shell中各种括号

https://blog.csdn.net/u013402321/article/details/80333272

$( ) 与` ` (反引号) 都可用做命令替换

用于 ∗ ∗ 变量替换 ∗ ∗ 。一般情况下, { }用于**变量替换**。一般情况下, 用于变量替换。一般情况下,var 与${var} 并没有什么不一样

[ ] 和 []和 [](())是一样的,都是进行数学运算的。

(( ))及[[ ]] 分别是[ ]的针对数学比较表达式字符串表达式的加强版。

10.gedit注释快捷键

ctrl+m ctrl+shift+m

9.LibreOffice

https://www.cnblogs.com/qlqwjy/p/9846904.html

https://blog.csdn.net/weixin_45876766/article/details/118928482

doc转txt:

libreoffice --headless --convert-to txt Linux.docx

Linux.docx ==》 Linux.txt

libreoffice --headless --convert-to pdf srcPath --outdir  desPath

8.terminal打开当前文件夹

nautilus .

7.转换图片类型

webp

dwebp image.webp -o final.png
ls -1 *.webp | xargs -tn 1 bash -c 'dwebp "$0" -o "${0%.webp}.png"'

convert

https://www.cnblogs.com/yymn/p/4479805.html

1.转换图像的格式(JPG, BMP, PCX, GIF, PNG, TIFF, XPM, XWD)

convert input.jpg output.png

2.旋转图像:convert -rotate

convert -rotate 90 input.png output.png

3.裁剪图像:convert -crop

convert -crop 100x100+10+10 input.png output.png

将input.png从(10,10)为起点,裁剪一块100x100像素的部分,保存为output.png。

2.生成缩略图:convert -resize 或 convert -sample

convert -resize 1024x768  xxx.jpg   xxx1.jpg    将图像的像素改为1024*768,注意1024与768之间是小写字母x 
convert -sample 50%x50%  xxx.jpg  xxx1.jpg   将图像的缩减为原来的50%*50% 

批量

----------- 从 PNG 转换到 JPG ----------- 
ls -1 *.png | xargs -n 1 bash -c 'convert "$0" "${0%.png}.jpg"'
 
----------- 从 JPG 转换到 PNG ----------- 
ls -1 *.jpg | xargs -n 1 bash -c 'convert "$0" "${0%.jpg}.png"'

6.开机报错

实际情况并不是Ubuntu容易出现内部错误,而是一旦程序崩溃过一次,就会生成一个.crash文件,记录着崩溃信息,这些崩溃信息保存在目录:

/var/crash/

只要你不去处理,每次开机都会提示你有错误。

无法删除文件,不允许操作

https://blog.csdn.net/qq_41538097/article/details/10765368216.

关闭开机错误报告提示

https://blog.csdn.net/qq_33406883/article/details/111912528

sudo gedit /etc/default/apport
修改 enabled=0,重启生效。

5.开机自启

https://blog.csdn.net/t624124600/article/details/111085234

5.1 tweak

5.2

gnome-session-properties

5.3

sudo gedit /etc/rc.local
sudo systemctl start rc-local.service
sudo systemctl status rc-local.service
sudo systemctl enable rc-local

sudo systemctl enable rc-local感慨INT 2m 7s
单元文件没有安装配置(wanntedby, RequiredBy, Also, Alias)
[Install]部分中的设置,以及模板单元的DefaultInstance)。
这意味着它们不应该使用systemctl来启用。
使用这种单位的可能原因是:
1)一个单元可以通过与另一个单元的符号链接来静态启用
.wants/或.requires/目录。
2)一个单位的目的可能是作为其他单位的帮手
需求依赖于它。
3)一个单元可以在需要时通过激活(套接字,路径,定时器,
D-Bus, udev,脚本化的systemctl调用,…)
4)在模板单元的情况下,该单元意味着启用一些指定的实例名。

检查系统目录/lib/systemd/system/rc-local.service

检查/etc/systemd/system/rc-local.service

#### 文件中本身就有的
[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no

####  需要自己添加
[Install]
WantedBy=multi-user.target
Alias=rc-local.service

报错 Unknown section ‘install’. Ignoring.

4.alias

多条命令:

func(){
        cd ..
        ls
        pwd
}
alias cdd='func'

传参:命令和{花括号中间有空格,且命令结束有;分号

alias ezshrc="nohup sudo gedit /home/qwe/.zshrc >/dev/null 2>&1 & disown"

3.切换zsh、bash

zsh配置:https://linux.cn/article-13030-1.html

查看shell

cat /etc/shells

设为默认 shell

sudo usermod -s /bin/zsh tfnmdmx

或者

chsh -s /bin/zsh

chsh -s whichzsh

如果要切换回去 bash:

chsh -s /bin/bash

  1. exec bash 将命令行从zsh切换为bash
  2. source ~/.bashrc
  3. exec zsh 重新运行zsh命令行工具

2.美化

1.1主题在/usr/share/themes
1.2图标/usr/share/icons
1.3登录界面GDM,文件位置在/usr/share/gnome-shell/theme/ubuntu.css,背景在/usr/share/backgrounds

~/.local/share/nautilus/scripts        /SetAsWallpaper

1.4开机动画(Plymouth Themes),文件位置在/usr/share/plymouth/themes

/usr/share/plymouth/themes/vortex-ubuntu

1.5系统选择界面(GRUB Themes),文件位置在/boot/grub/themes

/boot/grub/themes/tela

修改 grub

sudo gedit /boot/grub/grub.cfg
cd /etc/grub.d

sudo gedit /etc/default/grub
sudo update-grub

参考https://blog.csdn.net/ljw_study_in_CSDN/article/details/120969704

1.修改Ubuntu时间

将UTC改为CST:sudo timedatectl set-local-rtc 1

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。