备份一下
- 40.ANSI 转义码
- 39.终端鼠标
- 38.键盘映射
- 37.端口
- 36.nmap扫描
- 35.磁盘管理
- 34.关机默认等待时间
- 33.HackBGRT电脑logo
- 32.lsblk
- 31.update-initramfs
- 30.fastGithub
- 29.rename
- 28.设置休眠
- 27.小鱼ROS
- 26.查看磁盘
- 25.wmctrl
- 24.Typora图片存储
- 23.ssh远程登录
- xrdp桌面连接
- 22.油猴插件
- 获取\[标题]\(链接)
- 21.配置Git-Gitee
- 20.zip解压中文乱码
- 19.添加win10
- 18.文件夹英文
- 17.xargs
- bash -c
- 16.Ubuntu没有声音
- 15.后台运行
- nohup+&不起作用
- 14.录屏
- 13.高亮关键字
- 12.Shell变量的初始值
- 11.shell中各种括号
- 10.gedit注释快捷键
- 9.LibreOffice
- 8.terminal打开当前文件夹
- 7.转换图片类型
- webp
- convert
- 6.开机报错
- 无法删除文件,不允许操作
- 5.开机自启
- 4.alias
- 3.切换zsh、bash
- 查看shell
- 2.美化
- 修改 grub
- 1.修改Ubuntu时间
40.ANSI 转义码
Linux技巧:在代码中设置终端字符显示颜色和移动光标位置
# 获取光标位置
echo -ne "\033[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 '\033[y;xH'
echo -ne "\033[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 \n
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
- l 列出窗口
- x 使用WM_CLASS名称
- a 激活窗口
- c 关闭窗口
- F 名称完全匹配
- 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
- exec bash 将命令行从zsh切换为bash
- source ~/.bashrc
- 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