gnome-terminal

gnome-terminal -- bash -c "your_command; exec bash"

在新终端中执行指令后关闭

常用

printenv # 显示环境变量
lspci|grep nvidia # 是否有nvidia的显卡
lscpu # CPU的相关信息
free -h # 显示内存大小
ps -ef | grep 123 # 搜索123相关的线程
sudo netstat -tulnp | grep 8080 # 查看端口号为8080的进程

SSH连接服务器后台运行指令

命令1(记录所有日志): nohup python -u app.py > test.log 2>&1 &
命令2(只记录错误日志):nohup python -u app.py >/dev/null 2>error.log 2>&1 &
命令3(不记录任何日志):nohup python -u app.py >/dev/null 2>&1 &
&:后台运行
nohup:不挂断的运行
-u 代表程序不启用缓存,也就是把输出直接放到log中,没这个参数的话,log文件的生成会有延迟
test.log:这是重定向标准输出(STDOUT)到名为test.log的文件。这意味着脚本运行时产生的任何输出都将被保存在这个文件中,而不是打印到终端。
2>&1:这部分将标准错误(STDERR)重定向到同一个位置,也就是test.log文件。2代表标准错误,&1表示将错误输出与标准输出(1)合并。
&:最后的&字符将整个命令放入后台执行。这样你就可以立即返回命令提示符,而无需等待Python脚本完成。

整个命令的意思是:在无缓冲模式下运行udp_server.py这个Python脚本,将其所有输出(包括正常输出和错误信息)都记录到test.log文件中,并且即使你关闭了终端,脚本也会继续运行。

修改环境变量

全局

vim /etc/profile
export PATH=/home/yan/share/usr/local/arm/3.4.1/bin:$PATH
source /etc/profile # 使生效

单用户

# 打开配置文件
sudo gedit ~/.bashrc
# 将以下语句写入文件
export PATH="/home/cts/miniconda3/bin:$PATH"
# source一下
source ~/.bashrc

terminal

ubuntu 20.04中,terminal默认没有菜单栏,可以通过这个指令调出菜单栏

gsettings set org.gnome.Terminal.Legacy.Settings headerbar false

系统相关

apt: advanced packaging tool 包管理工具

apt update # 只检查,不更新(已安装的软件包是否有可用的更新,给出汇总报告)
apt upgrade # 更新已安装的软件包
apt install <package_name>  # 安装指定包
apt show <package_name>  # 显示包具体信息
apt --purge remove 包名  # purge是可选项,写上这个属性是将软件及其配置文件一并删除

dpkg

dpkg -i <package.deb>  # 安装已下载好的软件
dpkg --list  # 显示已经安装的所有软件
dpkg --get-selections|grep XXX # 查找包含xxx的已安装软件

update-alternatives
用于默认版本的快速更换

update-alternatives --config <name> # 配置默认的版本
update-alternatives --install /usr/bin/python python /usr/bin/python3.11 num数值 

升级版本

# 检查Ubuntu版本
lsb_relase -a

# 更新包
sudo apt update&&sudo apt upgrade

# 重启
sudo reboot

# 安装do-release-upgrade
sudo apt install update-manager-core

# 开始升级
sudo do-release-upgrade

问题

  1. Software Updater - Not all updates can be installed
sudo apt-get dist-upgrade
  1. E: Sub-process /usr/bin/dpkg returned an error code (1)
sudo rm -f /etc/alternatives/mpi* /var/lib/dpkg/alternatives/mpi*
sudo apt install openmpi-bin
  1. 删除python后,系统不能进入图形界面
# 1.无网络连接时
sudo dhclient eth0 # 尝试连接默认网卡
dmsg|grep eth # 还是无法联网时,查看网卡是否改名
$ eno1:renamed from eht0 # 说明改名了
sudo dhclient eno1 # 尝试连接此网卡

# 2. 安装桌面
sudo apt install ubuntu-desktop

区分

1. /bin,/sbin,/usr/bin,/usr/sbin

这些目录都是存放命令的,
从命令功能看,/sbin 下的命令属于超级用户指令,如shutdown,reboot,用于启动系统,修复系统,/bin下存放一些普通的系统命令,如ls,chmod等,这些命令在Linux系统里的配置文件脚本里经常用到。
从用户权限看,/sbin目录下的命令通常只有管理员才可以运行,/bin下的命令管理员和一般的用户都可以使用。
/usr/sbin存放的一些非必须的系统命令;/usr/bin存放一些用户命令,如led(控制LED灯的)。

2. /lib,/usr/lib,/usr/local/lib

简单说,/lib是内核级的,/usr/lib是系统级的,/usr/local/lib是用户级的
/lib/ — 包含许多被 /bin/ 和 /sbin/ 中的程序使用的库文件。
/usr/lib/ 中含有更多用于用户程序的库文件。

3. 系统目录

/bin/ — 用来贮存用户命令。目录 /usr/bin 也被用来贮存用户命令。
/sbin/ — 许多系统命令(例如 shutdown)的贮存位置。目录 /usr/sbin 中也包括了许多系统命令。
/root/ — 根用户(超级用户)的主目录。
/mnt/ — 该目录中通常包括系统引导后被挂载的文件系统的挂载点。譬如,默认的光盘挂载点是 /mnt/cdrom/.
/boot/ — 包括内核和其它系统启动期间使用的文件。
/lost+found/ — 被 fsck 用来放置零散文件(没有名称的文件)。
/lib/ — 包含许多被 /bin/ 和 /sbin/ 中的程序使用的库文件。目录 /usr/lib/ 中含有更多用于用户程序的库文件。
/dev/ — 贮存设备文件。
/etc/ — 包含许多配置文件和目录。
/var/ — 用于贮存variable(或不断改变的)文件,例如日志文件和打印机假脱机文件。
/usr/ — 包括与系统用户直接有关的文件和目录,例如应用程序及支持它们的库文件。
/proc/ — 一个虚拟的文件系统(不是实际贮存在磁盘上的),它包括被某些程序使用的系统信息。
/initrd/ — 用来在计算机启动时挂载 initrd.img 映像文件的目录以及载入所需设备模块的目录。