Linux运维小王子诞生记

1. apt 命令

1.1. apt-get报错

  • 错误为:media change: please insert the disc labeled
  • 解决方案:sudo sed -i '/cdrom/d' /etc/apt/sources.list

1.2. 设置 apt-get 源

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 操作sources.list文件
sudo vim /etc/apt/sources.list

# 在sources.list中添加阿里云的源
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse

1.3. apt命令举例

1
2
3
4
5
6
7
8
9
10
apt install
apt remove
apt purge # 删除软件和配置文件
apt update
apt upgrade
apt autoremove
apt full-upgrade
apt search
apt show # 显示安装细节
apt list # 安装软件列表

1.4. 与dpkg之间的比较

  • dpkg用来安装deb文件,不解决模块依赖关系,不关心ubuntu软件仓库内的软件。
  • apt解决安装模块依赖问题,会咨询软件仓库,不能安装本地deb文件,建立在dpkg之上。

2. Anaconda安装

  • 清华源中下载sh文件。
  • 执行bash xxx.sh进行安装,一路回车+yes安装成功。

3. 设置ssh服务器

1
2
3
4
5
6
7
8
9
10
# 安装openssh-server
sudo apt-get install openssh-server

# 启动ssh
/etc/init.d/ssh restart

# 确认ssh-server已经工作
netstat -tlp

# 在别的机器上使用ssh登录

4. 先安装win10 再安装ubuntu后,找不到win10引导

1
2
# 参考 http://blog.csdn.net/JUNJUN_ZHAO/article/details/52103455
sudo update-grub

5. teamviewer的使用

1
2
3
4
5
6
7
8
9
10
11
12
# 1. 安装
sudo dpkg -i xxx.deb
sudo apt-get -f install

# 2. 使用
# 695870910
sudo teamviewer daemon stop
sudo teamviewer passwd zyydcyy
sudo teamviewer daemon start
teamviewer info

# 3. 进入win的teamviewer后,点击ctrl+alt+f2进入命令行模式

6. ngrok

1
2
3
4
5
6
7
8
9
10
# http://e064d436.ngrok.io

# 1. 在官网中下载 https://ngrok.com/
# 2. unzip
# 3. 授权
./ngrok authtoken

# 4. 启用
./ngrok http 80
./ngrok tcp 22

7. 配置pip源

1
2
3
4
5
# 修改文件 ~/.pip/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=mirrors.aliyun.com

8. 开放端口

  • 文件:/etc/sysconfig/iptables

  • 需要添加的数据:

    1
    2
    # 开启8080端口
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
  • 其他操作:

    1
    2
    # 重启防火墙
    service iptables restart

9. 设置DNS服务器

  • 2.1. 治标不治本的方法

    • 文件:/etc/resolv.conf
    • 问题:在服务器重启后,会重置该文件,因此该方法治标不治本。
    • 需要添加的内容:
      1
      2
      3
      # nameserver就是设置DNS服务器
      nameserver 10.0.30.1
      nameserver 10.0.30.7
  • 2.2. 根本解决方法

    • 文件:/etc/sysconfig/network-scripts/ifcfg-eth0
    • 参考
    • 需要添加的内容:
      1
      2
      3
      # 在文件末尾添加以下内容,设置DNS服务器
      DNS1=10.0.30.1
      DNS2=10.0.30.7

10. 查看centos版本

1
cat /proc/version

11. 开机启动脚本

1
2
3
4
5
6
7
vim /etc/rc.local

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

12. 查看进程相关

  • 查看进程命令:ps aux
  • 查看进程对应端口:
    • 先要找到进程对应的PID
    • 再运行下面命令:netstat -nap | grep {PID}
  • 查找运行进程更多信息:查看路径/proc/{PID}
    • cwd链接到执行进程的运行目录。
    • exe链接到命令的完整路径。
    • 通过cat cmdline可以查看当前进程的启动命令。

13. 查询

  • 在某目录下查找某文件:find . -name *.c

14. 压缩/解压

  • tar:
    • -v:可视化过程
    • -f:指定文件名还是啥,反正必须放最后一位
    • -x:解压
    • -c:创建文件
    • -z:gz文件
  • 解压
    • 解压tar文件:tar xvf file.tar
    • 解压tar.gz文件:tar zxvf file.tar.gz
    • 解压tar.bz2文件:tar xjvf file.tar.bz2
    • 解压tar.Z文件:tar Zxvf file.tar.Z
    • 解压zip文件:unzip file.zip
    • 解压rar文件:unrar e file.rar
  • 压缩
    • 将所有jpg文件压缩为名为file.tar的文件:tar cvf file.tar *.jpg
    • 将所有jpg文件压缩为名为file.tar.gz的文件:tar zcvf file.tar.gz *.jpg
    • 将所有jpg文件压缩为名为file.zip的文件:zip file.zip *.jpg
    • 将所有jpg文件压缩为名为file.rar的文件:rar a file.rar *.jpg

15. ssh

  • 通过 ssh-copy-id username@ip 来将本地公钥复制到对应服务器。

16. 查看端口被那个进程占用

  • 简单说:lsof -i
  • lsof 命令概述
    • lsof是 list openfiles 的缩写。
    • 中文翻译就是“列出当前系统打开文件的工具”,需要注意的是,在Linux中所有事物都以文件的形式存在(包括网络连接等)。
    • 可以用来替代 psnetstat 的功能。
  • lsof 命令举例
    • 查看谁在使用某个文件 lsof /path/to/file
    • 显示与指定端口相关的网络信息 lsof -i:port