Linux/Ubuntu问题汇总

修改环境变量

  • 查看变量,比如PATH:
echo $PATH
  • 给变量赋值(如果变量已经存在则覆盖,不存在则定义):
LONGNAME='testlog'
  • 向变量增添新的值(仅在当前终端生效):
export PATH=~/test:$PATH

注意PATH变量中,路径以:间隔。

  • 如果想维持某个更改,在每个终端中都生效,需要将命令添加到~/.bashrc文件,保存并重新读取:
. ~/.bashrc

.bashrc文件

  • 为了加载用户首选项,bash 在每次启动时都会自动载入 bashrc 配置文件中的内容,这个 .bashrc 隐藏配置文件可以在每个用户的主目录中找到,它用于保存和加载不同用户的终端首选项和环境变量。终端首选项可以包含许多不同的内容,最常见的使用方式就是,可以在 bashrc 中写入命令的别名「Aliases」,以使用更短或替代名称的引用命令,这对经常使用终端来执行特定命令的用户来说可以大大节省时间并提高效率。
  • .bash_profile的区别:
    当shell是交互式登录shell时,读取.bash_profile文件,如在系统启动、远程登录或使用su -切换用户时;
    当shell是交互式登录和非登录shell时都会读取.bashrc文件,如:在图形界面中打开新终端或使用su切换用户时,均属于非登录shell的情况。
    简单的说,.bash_profile只在会话开始时被读取一次,而.bashrc则每次打开新的终端时,都会被读取。

Ubuntu解压中文名文件夹出现乱码

由于zip格式中并没有指定编码格式,Windows下生成的zip文件中的编码是GBK/GB2312等。因此,导致这些zip文件在Linux下解压时出现乱码问题,因为Linux下的默认编码是UTF8。

unzip -O CP936  xxx.zip 

其中字符可以是CP936、GBK、GB18030三种中的任一一种

为应用程序添加desktop快捷启动

一般所有的desktop的保存目录为/usr/share/applications,复制该目录下一个现有的desktop文件,相应的修改为自己需要的应用即可。如建立matlab.desktop:

[Desktop Entry]
Name=Matlab
Exec=~/MATLAB/R2018a/bin/matlab -desktop %f
Icon=matlab
Terminal=False
Type=Application
Categories=Development;Matlab;

命令行启动应用程序

启动该应用程序的脚本所在的目录应该在PATH变量中,所以一般有以下几种选择:

/usr/bin
/usr/local/bin

在其中一个目录下建立一个到应用程序的软链接即可:

ln -s xxx /xx/xx/xx

升级cmake

ubuntu 16.04 默认安装的 cmake 版本为 3.5,但有时编译一些包时需要更高的版本,所以需要升级一下 cmake。
千万别傻乎乎地随便找个帖子执行下面的命令:

sudo apt-get autoremove cmake

这样会把之前用 cmake 编译好的包都给卸载掉。

比较简单的方法是下载 cmake 压缩包,直接建立软链接覆盖掉系统的 cmake,压缩包网址:cmake.org
以 3.13.0 版本为例:

cd ~/Download
wget https://cmake.org/files/v3.13/cmake-3.13.0-Linux-x86_64.tar.gz
tar -xzvf cmake-3.13.0-Linux-x86_64.tar.gz

# 解压出来的包,将其放在 /opt 目录下,其他目录也可以,主要别以后不小心删了
sudo mv cmake-3.13.0-Linux-x86_64 /opt/cmake-3.13.0

# 建立软链接
sudo ln -sf /opt/cmake-3.13.0/bin/*  /usr/bin/

# 查看 cmake 版本
cmake --version

无sudo权限以及非root的用户apt安装软件

一般来说使用apt安装软件,必须要有root权限,因为apt安装时需要写/usr/bin /usr/lib /usr/share等目录,而这些目录只有root用户(或有sudo权限)才有写入权限的,所以没有sudo权限的普通要用apt安装软件的话,就只能以源码安装方式 来安装了,具体操作如下:

apt source package	# package是要安装的软件名,包名和sudo apt instal package 中的一样
cd package 	        # 进入下载的package目录,这个目录不一定就是package,名字中可能有版本号

# 使用--prefix是最关键的,它是用于指定安装目录的,如果没有它就可能要安装到/usr下了,此时需要sudo
# 必须是绝对路径,不能用~代表home,即必须以/开头,路径可以用双引号括起来
./configure --prefix=/path/to/install  # 该目录可以是不存在的,会自动创建
									  						  
make -j && make install # -j选项是make并行加速,&&是指只有前一条命令成功后才运行后一条

注意: 执行第一条命令可能出现如下错误:

E: You must put some 'source' URIs in your sources.list

这是因为你的/etc/apt/source.list中将所有deb-src的条目给注释掉了,所以apt命令找不到源码安装的地址,如果出现此错误并且你有sudo权限,则将所有deb-src前面的#去掉即可,但是很有可能你没有sudo权限,这个时候就需要自己手动去下载软件的源码,然后解压,然后从上面的第二条命令开始执行就可以了。
最后: 软件安装完成后,shell解释器可能找不到该软件,此时需要将该软件安装目录添加到PATH中,并且需要注意的是,必须是添加该软件(命令)的直接父目录,比如说我刚才的/path/to/install是写的$HOME/local,则安装好后一般会在local目录下生成bin目录,此时刚才安装好的软件就是在~/local/bin目录里,所以需要将 ~/local/bin添加到PATH中,而不是 ~/local。

# 添加bin目录到PATH中
vim ~/.bashrc # 打开shell的配置文件.bashrc

# 按shift+G,再按o,然后输入下面的命令
export PATH=$PATH:~/local/bin # 输入后,按ESC,然后按shift ZZ 即可保存并退出

# 使刚才的修改生效即可使用了
source ~/.bahsrc

如果没有vim编辑器,或者不太会使用vim,可以将上面的命令中的vim替换成gedit,就可以使用gedit来修改bashrc文件了。

其他教程https://tlanyan.me/work-with-linux-without-root-permission/

使用微信

参考教程:
https://zhuanlan.zhihu.com/p/73033900

  • 可能会出现微信版本不支持wine版本的问题,注意参照wine仓库上的介绍安装最新版的wine:
    https://github.com/wszqkzqk/deepin-wine-ubuntu

  • 微信打开以后有个小黑块关不掉
    在手机打开表情商店,随便下载一个表情包。
    在PC端微信输入表情提示语(可以在手机上随便发一个表情查看文字提示)
    输入提示语后等待表情弹出,黑块就会消失了,然后再删除文字即可

  • 汉字显示黑块
    解决方案:https://www.chengxuzhilu.com/2249.html

    • 下载“微软雅黑”字体。到 https://www.lanzous.com/i5wivmd 下载字体,然后解压,得到字体文件 msyh.ttc 。

    • 將字体复制到指定的位置:

      cp /path/to/msyh.ttc ~/.deepinwine/Deepin-WeChat/drive_c/windows/Fonts
      
    • 將字体注册到 Wine。打开font.reg文件,键入下面的内容,并保存。

      vim ~/.deepinwine/Deepin-WeChat/font.reg
      
      REGEDIT4
      [HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionFontSubstitutes]
      "MS Shell Dlg"="msyh"
      "MS Shell Dlg 2"="msyh"
      
      [HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionFontLinkSystemLink]
      "Lucida Sans Unicode"="msyh.ttc"
      "Microsoft Sans Serif"="msyh.ttc"
      "MS Sans Serif"="msyh.ttc"
      "Tahoma"="msyh.ttc"
      "Tahoma Bold"="msyhbd.ttc"
      "msyh"="msyh.ttc"
      "Arial"="msyh.ttc"
      "Arial Black"="msyh.ttc"
      
    • 注册 font.reg。在终端执行:

      WINEPREFIX=~/.deepinwine/Deepin-WeChat/ deepin-wine regedit ~/.deepinwine/Deepin-WeChat/font.reg
      
    • 重新运行微信。

查看CPU信息

总核数 = 物理CPU个数 X 每颗物理CPU的核数
总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
查看物理CPU个数

cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

查看每个物理CPU中core的个数(即核数)

cat /proc/cpuinfo| grep "cpu cores"| uniq

查看逻辑CPU的个数

cat /proc/cpuinfo| grep "processor"| wc -l

查看CPU信息(型号)

cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

X Window和Wayland

X Window

  • X Window在1984年由MIT研发,它的设计哲学之一是:提供机制,而非策略。举个最简单的例子吧:X Window提供了生成窗口(Window)的方法,但它没规定窗口要怎么呈现(map)或摆放(place),这个策略是由外部程序——窗口管理器 (Window Manager)所决定的。另外一个X Window的主要特点便是:Server/Client网络模型。不论是本地、远程的应用程序,都统一通过Server/Client模型来运作,比如:让远程的应用程序跑在本地上。
  • X Window在推出之后快速演化,在1987年时候,其核心协议已经是第11版本了,简称:x11。这个版本已经将“提供机制,而非策略”这个哲学贯彻地 非常彻底,以致于核心协议基本稳定,不需要特别大的改动。于是乎,你看到了,现在是2010年,整整23年了,X Window依然是X11。

Wayland

  • Wayland是一个简单的“显示服务器”(Display Server),与X Window属于同一级的事物,而不是仅仅作为X Window下X Server的替代(注:X Window下分X Server和X Client)。也就是说,Wayland不仅仅是要完全取代X Window,而且它将颠覆Linux桌面上X Client/X Server的概念,以后将没有所谓的“X Client”了,而是“Wayland Client”。
  • 更确切的说,Wayland只是一个协议(Protocol),就像X Window当前的协议——X11一样,它只定义了如何与内核通讯、如何与Client通讯,具体的策略,依然是交给开发者自己。所以Wayland依然是贯彻“提供机制,而非策略”的Unix程序。
  • Wayland没有传统的Server/Client的模式,取而代之的是:Compositor/Client.
  • Wayland的“直接渲染架构”彻底结束了传统X Window在渲染图形时需要不停的向Server请求、确认再绘制这个繁琐的过程,理论上响应速度有了“爆发式”增长;
  • Wayland从根本上消除了“Server+Compositor”的重复劳动,仅有且只需要有一个“Compositor”合成器而已。Compostior,就是Wayland上的“X Server”,但是它更纯粹,它不像X Server一样,像个大家长,什么都要管。

参考

https://zhuanlan.zhihu.com/p/93480024
https://blog.csdn.net/qq_24406903/article/details/88376829

原文地址:https://www.cnblogs.com/tofengz/p/13450556.html