关于Linux应该知道的那些事儿
尽管有些windows软件没有对应的linux版本,比如QQ、wechat等,但作为开发工具和日常办公而言,Linux功能强大且速度飞快。
0. 安装Ubuntu
- 选择最小安装
- 分区时有个启动分区设置,那个不要动
1. 更换源
sudo vi /etc/apt/sources.list
将如下内容替换原有内容,保存退出。特别注意要检查源与ubuntu版本是否一致,下面focal是20.04的代号。
检查ubuntu版本的命令:cat /etc/lsb-release或cat /etc/issue
检查内核版本:uname -a
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
清华源也可以,它默认注释掉了源文件,旨在加快update速度,如有需要自行打开(不打开也没影响使用)
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse multiverse
替换完后执行sudo apt-get update,如果提示lock错误可能是有其他程序正在下载,尤其是系统自带的update程序,等一会儿重新执行就好。
2. 软件包的安装与卸载
sudo apt-get install package-name
sudo apt-cache search package-name #搜索特定软件包
sudo apt-cache show package-name #查看特定软件包信息
sudo apt-cache show depends package-name #查看依赖信息
sudo apt-cache dump #查看每个软件包简要信息
sudo apt-get --purge remove package-name #卸载软件同时删除配置文件
sudo apt-get clean #删除备份
sudo apt-get autoremove #删除没用的包
所有通过apt安装的包都可以通过dpkg -l命令查看,同样对下载到本地硬盘的deb包安装命令如下
sudo dpkg -i package-name.deb
# 对所有rc状态的包做最后清理
dpkg -l | grep ^rc | awk '{print $2}' | sudo xargs dpkg -P
# 查看特定软件安装的目录和文件
dpkg -L package-name
# 查看特定软件的版本信息
dpkg -s package-name
3. 安装nvidia显卡驱动及CUDA
- 在左下角程序列表中点选Software & Updates,选择Additional Drivers,选择带有proprietary,tested标志的单选框,然后点击Apply Changes
- 执行nvidia-smi命令可查看已安装驱动版本和所支持的CUDA版本
- Cuda需要到官网下载,注意与Pytorch版本的配合,当前Pytorch只支持到cuda11.0,所以最好下载cuda11.0这个版本
- Cuda下载后是个run文件,执行即可,提示安装驱动时选NO,安装后在~/.bashrc中添加如下命令。
export PATH=/usr/local/cuda/bin:$PATH
- .bashrc文件每次开启terminal时自动执行,PATH是terminal对可执行程序的搜索路径。让PATH生效有2个办法,一是关掉terminal重新打开,二是在已打开terminal的命令行显示执行一次这个命令。无论哪种方式,可通过echo $PATH或which nvcc进行核验。
4. 安装vim/ctags
- 系统自带的vi不好用,没有高亮功能,所以需要更新,以后在命令行输入vi或vim指向的都是vim。
sudo apt-get install vim - 配置文件在/etc/vim/vimrc,在末尾加入
set tabstop=4 " 调整tab为4个空格,默认是8个空格不好看 - ctags用于阅读源代码,可以实现前后跳转,首先执行sudo apt-get install ctags,然后在源文件目录执行ctags -R src/或ctags --recursive src/,会生成ctags文件,然后用vim打开某一源文件,并设置set catgs=ctags,set autochdir。用ctrl+]前进,ctrl+t返回
注:vim设置ctags时可指定绝对路径,以免找不到
5. 安装sogou输入法
- 登录https://pinyin.sogou.com/linux/,点击下载64bit版本,默认保存在~/Downloads目录下
- 点击下载后官网会自动跳转到安装步骤,根据指令执行安装即可,需要重启, 基本流程如下:
1) setting -> region&language -> manage installed languages -> Install/Remove Languages... -> Chinese Simplified -> Apply
2) key method select fictx
3) sudo dpkg -i sogoupinyin_版本号_amd64.deb
4) if encounted error, run sudo apt -f install
5) after reboot, click the keyboard icon in the top-right corner, and click 'Configure current input method' , select '+' in the bottom-left corner, first deselect the checkbox 'Only show current language', and type 'sogoupinyin' in the search bar, select sogoupinyin finally
6) use ctrl-space to switch the input method
6. 用conda管理虚拟环境
wget -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86\_64.sh
bash Miniconda3-latest-Linux-x86\_64.sh
注: -c 代表自动断点续传
管理环境命令,建议直接写入~/.bashrc中,这样开启terminal后会自动进入py385环境
conda create -n py385 python=3.8 #创建环境
conda activate py385 #激活环境
conda remove -n py385 --all #删除环境
conda config --show #查看conda配置
建立conda环境,建议根据所安装python版本命名,比如所安装python为python3.8.5
注: conda会建立新目录~/.conda/envs/py385,并在其中建立一份独立的python可执行程序,与系统自带的/usr/bin/下那份无关
添加国内镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/fastai/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda管理package
conda list
conda install xxx
conda install xxx=版本号
conda update xxx
conda remove xxx
pip管理package
pip list
pip install xxx
pip uninstall xxx
7. 交换密钥错误
- 第一次使用git或sftp或ssh,有时会提示错误,用如下方法解决
- 要么修改/etc/ssh/ssh_config文件,在Host *下面添加KexAlgorithms +diffie-hellman-group1-sha1
- 要么增加~/.ssh/config文件,添加如下2行
Host *
KexAlgorithms +diffie-hellman-group1-sha1
8. Windows文本转换为Unix文本
- windows下文本换行符通常用LRCF表示,即\n\r,而unix下只是\r,这会导致用grep "xxx$"匹配时失败,因此需要转换为unix格式
方法是vim打开,然后set ff=unix - 或者用dos2unix、unix2dos命令,但需要额外安装
9. grep-sed-awk
grep -r xxx:可从当前路径向下迭代搜索
grep -v 排除输出
grep -i 忽略大小写
cat filename | uniq -c | wc -l,-c选项是去重的同时在留下的行前标识重复次数
awk -F, '{print $1}' filename,-F选项用于指定分割符
10. 打开文档图片
- xdg-open filename即可
- 事实上xdg-open只是一个高层接口,它会自动调用文件对应的打开程序
- pdf对应打开程序是evince
- jpg、png等对应打开程序是eog
- 办公类软件用Linux版wps,下载网址:https://www.wps.cn/product/wpslinux,下载后用sudo dpkg -i安装
- 还需要安装字体,下载地址:链接: https://pan.baidu.com/s/1fn2sTNaqNmbK8BcS9iMSGw 提取码: n9xc,用如下命令解压
sudo unzip wps_symbol_fonts.zip -d /usr/share/fonts/wps-office
- 解压后要在上述目录下依次点击各文件并点击窗口上部的install按钮,在terminal下打开窗口目录的命令是nautilus /usr/share/fonts/wps-office
- 至此直接调用xdg-open打开文件即可,也可以用wps自己的命令,et、wps、wpp、wpspdf,分别对应excel,word和powerpoint。
11. 观看网页视频
- Ubuntu自带的firefox打开视频网址会提示缺少flash插件,可以安装ffmpeg解决,sudo apt-get install ffmpeg
- 或者直接下载chrome浏览器,没有Flash插件烦恼,还可以使用有道云笔记网页版,该浏览器对应命令行命令是google-chrome
12. 播放mp3文件
- sudo apt-get mpg123,轻量级mp3播放器,不足之处是没有图形界面(所以才轻嘛),但快进、暂停等各种功能都有,键入h可查看各种对应命令
13. 播放视频文件
- 我暂时没这需求
14. Markdown编辑器
- 登录官网typora.io,有安装提示
# optional, but recommended
# sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE
wget -qO - https://typora.io/linux/public-key.asc | sudo apt-key add -
# add Typora's repository
sudo add-apt-repository 'deb http://typora.io linux/'
sudo apt-get update
# install typora
sudo apt-get install typora
15. 文件压缩
- 自带zip、gzip、xz,对于filename.tar.gz文件用tar xzvf filename.tar.gz解压,用tar czvf filename.tar.gz filename/压缩
- rar解压需安装sudo apt-get install unrar,使用方法unrar -x
16. ssh-scp-ftp
- ssh可远程登录运行了sshd的主机,命令格式为ssh remote_usr@remote_ip
- 从本地复制到远程主机,scp -r local_folder remote_usr@remote_ip:remote_folder,如果不是目录只是文件,可以不用-r选项
- 从远程复制到本地主机,调换顺序即可,scp -r remote_usr@remote_ip:remote_folder local_folder
- 推荐用sftp,登录命令为sftp remote_usr@remote_ip,上传文件是put -r,获取文件是get;sftp属于openssh的一个应用,可以用dpkg -l | grep ssh查看
- 建议卸载自带的ftp命令,没啥用,sudo apt-get --purge remove ftp
17. Matlab
- 建议使用octave,兼容Matlab,只有几百MB,只是没有图形界面,sudo apt-get install octave,有问题就先执行下面这两句然后再重新安装
sudo apt-add-repository ppa:octave/stable
sudo apt-get update
- 有些函数在别的package里,需要特别安装,比如sudo apt-get install octave-communications包含了与通信相关的大量函数
18. 常用管理命令
- 查看文件或目录大小,du -sh file_folder,-s选项是只打印最后结果,-h选项是适合人类的单位
- 查看磁盘使用情况,df -lh
- 查看内存使用情况,free,要以MB为单位用-m,以GB为单位用-g
- 系统动态链接库搜索位置,/etc/ld.so.conf
- 挂载文件系统,比如iso文件,可以直接sudo mount filename.iso /media/szu,然后直接到挂载目录获取内容即可,卸载执行sudo umount /media/szu
- 查看ip地址,没有ifconfig就用ip addr,前者需要安装net-tools