Linux踩坑记录

Linux踩坑记录

随着使用 deepin 的时间越来越久,自己也渐渐习惯于在 Linux 下的生活和学习。喜欢它强大的终端命令、便捷的包管理工具 apt和自己编写 CMakeLists.txt 去构建 C++ 程序的快感。但是不得不承认的一点就是,Linux 系统下的坑要比 Windows 要多得多得多,故单独建一篇文章来记录我在使用 deepin 过程中所遇到的坑。

运维

1
htop # 强大的系统信息显示工具

软件包管理

1
2
3
4
5
6
7
sudo apt install <package-name> #安装软件包
sudo apt search <part-of-package-name> #搜索软件包
sudo apt purge <package-name> #卸载软件包
sudo dpkg -l #显示已安装的软件包列表
sudo dpkg -i <package-name>.deb #安装软件包
sudo dpkg -r <package-name> #仅卸载软件包
sudo dpkg -P <package-name> #卸载软件包并删除其配置文件

用户管理(User)

1
2
3
4
w #查看当前活跃的用户列表
sudo adduser lolimay #新建用户 lolimay
sudo userdel -r guest #删除 guest 用户,并删除它的工作目录
sudo passwd root #启用 root 用户(即给 root 用户设置一个密码即可)

用户组管理(Groups)

1
2
3
4
5
6
groups #查看当前用户所在的用户组
cat /etc/group #查看用户组列表
sudo groupadd group #添加用户组
sudo gpasswd -a user group #将用户添加进用户组
sudo gpasswd -d user group #将用户从特定组中移除
sudo usermod -g groupname #指定用户的用户组

删除烦人的 mail 提醒

1
echo "unset MAILCHECK">> /etc/profile

sudoer 权限控制

1
2
3
4
5
6
7
8
[Commands]
sudo visudo -f /etc/sudoers.d/lolimay #编辑 lolimay 的 sudoers 权限
chmod 440 /etc/sudoers.d/lolimay #指定440权限

[Problem1]
sudo: unable to stat /etc/sudoers.d/README: No such file or directory
[Solution]
sudo chmod 755 /etc/sudoers.d #赋予 /etc/sudoers.d 755 权限

service

1
2
service --status-all #查看所有服务
service x2goserver status #查看 x2goserver 的状态

文件管理

mkdir

1
mkdir -p  ~/folder1/folder2 #创建多级目录

进程和端口

进程

1
2
ps -A #显示系统中的所有进程
ps 2649 #查看进程号为 2649 的进程信息

删除 ubuntu ssh 登录法律信息

1
sudo rm /etc/legal

添加开机自启脚本

一种思路是将脚本作为系统的开机自启服务,主要步骤如下: 1. 将脚本拖至 /etc/init.d 目录下,设置权限 775 2. 将脚本添加到初始化执行队列中

1
sudo update-rc.d <script-name> defaults 95 #请将 <script-name> 换成你具体的脚本名

自定义ssh登录欢迎信息

  1. 删除登录前显示 ubuntu 版本信息

    1
    2
    rm /etc/issue #目测没什么用
    rm /etc/issue.net #删除类似于 Ubuntu 16.04.5 LTS 的提示

  2. 自定义登陆后显示消息

    1
    2
    cd /etc/update-motd.d/ #该目录下的所有脚本登录ssh后都会被执行
    sudo run-parts /etc/update-motd.d

修改hosts文件

1
2
sudo vim /etc/hosts
sudo /etc/init.d/networking restart #重启网络

Ubuntu 18.04修改hosts方法

加快vim启动速度

首先要通过

1
vim --startuptime vim.log

生成 log 日志看影响启动速度的瓶颈在哪,然后对症下药。

附上我的 .vimrc 中的优化方法:

1
2
3
syntax on "打开代码高亮
set viminfo= "禁用viminfo
set clipboard=exclude:.* "有效解决通过ssh登录打开vim速度慢的问题

tar打包解包

1
2
tar -zcvf test.tar.gz test.txt #打包后以 gzip 压缩
tar -zxvf test.tar.gz #解压 test.tar.gz
  • -z 通过 gzip 指令处理归档文件
  • -c 创建新的归档文件
  • -x 解压归档文件
  • -v 显示操作过程
  • -f 指定归档文件

卸载系统自带vim重装最新vim

1
2
3
4
5
6
7
8
9
10
11
12
13
sudo apt purge vim -y #卸载 vim
rm ~/.vimrc ~/.viminfo ~/.vim -rf #清理相关配置文件
cd ~/Downloads #进入临时文件夹
wget https://github.com/vim/vim/archive/v8.1.0451.tar.gz #下载最新发布版本
tar -zxvf v8.1.0451.tar.gz #解压
cd vim-8.1.0451/src/ && make distclean #进入源代码目录并清理文件
cd .. #返回项目根目录

./configure --prefix=/usr --with-features=huge --enable-rubyinterp --enable-pythoninterp \
--enable-luainterp --with-lua-prefix=/usr/local #配置编译参数

make VIMRUNTIMEDIR=/usr/share/vim/vim81 -j8
sudo make install -j8 #编译安装

备注:如果需要增加 vim 对 lua 的支持,则在编译前需要提前安装 lualuajit

查看Linux版本信息

1
lsb_release -a

禁用终端中的声音

  1. 编辑 /etc/inputrc 文件
  2. 找到 #set bell-style none 这行,删除前面的注释符号

新的命令

  • type 常看命令的类型
    例子
    1
    2
    3
    4
    5
    6
    7
    type cd
    cd 是函数
    cd ()
    {
    builtin cd "$@"
    ls --color=auto
    }

参考链接

1.Linux禁止普通用户切换至 root 用户