Linux使用笔记

Linux常用操作

创建sudo和ssh用户

创建用户并设置sudo权限

1
2
3
4
5
6
7
8
# 使用adduer添加用户会在home目录中添加用户,并设置shell环境(/bin/bash),而useradd不会
sudo adduser username #username是你要创建的用户名
# 使用usermod将新用户添加进sudo用户组
sudo usermod -G sudo username # username是刚才新建的用户名
# 添加sudo权限
sudo vim /etc/sudoers
# 添加如下行
username ALL=(ALL:ALL) ALL # username就是刚才新建用户名

设置ssh登录权限

1
2
3
4
# 打开ssh配置文件
sudo vim /etc/ssh/sshd_config
# 添加如下代码行
AllowUsers username # username就是刚才新建用户名

npm换源

1
2
# 使用一下命令换源,会将配置写入.npmrc
npm config set registry https://registry.npm.taobao.org

Conda换源

1
2
3
4
5
6
7
8
# 会将配置写入.condarc
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
# 查看镜像源
conda config --show channels
# 移除镜像源,source-address就是要移除的源地址
conda config --remove-key channels source-address

pip换源

1
2
3
# 打开~/.config/pip/pip.conf,并写入以下内容,换成清华源
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

ubuntu16.04换源

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 先备份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 修改/etc/apt/sources.list,添加如下内容
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse

deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse

deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse

deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse

deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# 更新源
sudo apt update

显卡驱动卸载及安装(ubuntu16.04)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 禁用图形界面,也就是关闭屏幕显示
sudo service lightdm stop
# 之前的显卡驱动全部清除,根据提示选yes
sudo apt-get --purge remove nvidia-\*
# 从官网下载驱动(这里以435.21为例,可以从链接中直接替换自己想要的版本)
wget http://cn.download.nvidia.com/XFree86/Linux-x86_64/435.21/NVIDIA-Linux-x86_64-435.21.run
# 赋予运行权限
sudo chmod a+x NVIDIA-Linux-x86_64-435.21.run
# 运行run文件, 全都按照默认进行选择
sudo ./NVIDIA-Linux-x86_64-435.21.run
# 查看是否安装成功
nvidia-smi
# 若是上一步显示没有,则需要进行显卡驱动挂载
modprobe nvidia

linux使用常用命令

查看系统负载

  • top
    • 动态监视进程活动以及系统负载等信息
  • uptime
    • 查看当前系统时间、系统已运行时间、启动终端数量以及平均负载(过去1分钟/5分钟/15分钟)

内存使用状况

  • top

    • 同上
  • /proc/目录查看系统运行时信息

    1
    $ cat /proc/meminfo
  • free

    • 显示当前系统中内存的使用量信息

磁盘使用情况

  • df
    • 查看磁盘空间的使用状态以及文件系统
  • du
    • 查看目录或者文件的磁盘占用量,可以递归查询目录

查看cpu统计信息

  • top
    • 同上
  • iostat
    • 监控系统输入输出设备负载状况,cpu占用量

文件操作

  • head
    • 查看文件前n行
  • tail
    • 查看文件后n行
  • tailf
    • 动态监控log文件的增长;
    • 弃用,推荐tail -f,更加安全;
  • more
    • 分页显示的文件查看工具;
  • less
    • 和more相似,比more更加强大,不用非得从文件开头查看数据,可以指定起始行;
    • 二者区别如下:
      • less可以按键盘上下方向键显示上下内容(或者ctrl+f/crtl+b上下翻页),more不能通过上下方向键控制显示
      • less不必读整个文件,加载速度会比more更快
      • less退出后shell不会留下刚显示的内容,而more退出后会在shell上留下刚显示的内容
  • cat
    • 查看文件的内容
  • touch
    • 新建文件
  • dd
    • 根据选项来进行转换以及copy文件的内容;

查看打开的文件

  • lsof

上传/下载

  • rz/sz
    • 基于XMODEM协议的异步文件传输工具,简化开发效率;
  • scp
    • ssh文件传输工具,使用安全验证;
  • rsync
    • 远程文件同步工具,功能较为强大;
  • sync
    • 刷新缓冲区,写脏数据到磁盘,也即进行持久化;

网络工具

  • ip
    • 可以操作路由表、网卡、隧道等,也可以打印以上的相关信息,十分有用;
  • tcpdump
    • 将网络中指定的内容dump成文件;
  • tc
    • 非常强大的流量控制工具,一般用来调整网卡的带宽等参数;
  • netcat
    • TCP/IP瑞士军刀,一般用来测带宽;
  • netstat
    • 打印网络相关的各种状态信息,包括路由表,端口是否在监听等(ss命令的功能类似,但是更加强大);
  • traceroute
    • 通过自增设置ttl的方式,不断的向外探测节点,最终打印路由经过的节点信息;

查询工具

  • find
    • 根据pattern在指定的路径中查询名称匹配该pattern的文件及目录;
  • grep
    • 根据给定的pattern匹配文件中的行,非常强大,可以搜索某个路径下匹配该pattern的所有文件中的行,并可标明来自于哪个文件;
  • pgrep
    • 可以基于系统中当前正在运行的进程查询目标进程并列出进程pid;
  • which
    • 定位一个命令的二进制文件的位置;
  • whereis
    • 可以定位指定命令的二进制文件、源文件以及帮助文档;

其他常用工具

  • md5sum
    • 可以计算以及检查md5信息摘要
  • watch
    • 周期执行一个程序,并且全屏输出,动态监控
  • tmux
    • tmux是一个终端复用器,非常有用,linux中的终端窗口与会话绑定,关闭终端(比如断开ssh连接)之后,在该终端运行的程序就会中断(非后台进程),tmux可以做到会话与窗口“解绑”;
  • uname
    • 查看系统信息
    • 经典用法 : uname -a
  • tee
    • 读取标准输入,并将该内容同时输出到标准输出以及文件;
  • tree
    • 查看路径的层级结构
  • sort
    • 行级排序工具
  • cut
    • 按照一定的模式切分每一行,并选择其中某部分
  • wc
    • 可以打印一个文件中或者标准输入(也是文件)中的换行的数量(即行数)、词的数量以及总的字节数;
  • uniq
    • 打印重复的行

linux三剑客

  • sed
    • 强大文本替换工具,主要依赖正则表达式
  • awk
    • 强大的文本处理语言
  • grep
    • 模式匹配工具

有用的链接

linux手册