Back to Posts

Linux学习笔记

Posted in Operation

Linux操作

查看系统版本信息

[root@localhost ~]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 

查看ip

net-tools

安装net-tools就可以使用ifconfig:

yum install net-tools

netstat -tnlp

[root@01 /]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1109/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1384/master
tcp        0      0 0.0.0.0:5000            0.0.0.0:*               LISTEN      20437/python
tcp6       0      0 :::22                   :::*                    LISTEN      1109/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      1384/master

查看进程/服务

ps -aux | grep xxx
chkconfig --list
systemctl list-unit-files

空间

df -h 一看却发现还有挺多没有用 df -i 一看发现是inodes空间满了

fdisk -l

查看/home 占用的空间

du –hs /home

yum

安装:
yum install -y mongodb-org
卸载:
yum -y remove 包名

rpm

卸载:
rpm -qa | grep 包名
rpm -e 文件名

查看安装位置

rpm -qpl  包名
mongodb-org

查看运行报错

journalctl -xn

systemctl status docker.service

安装Ruby

yum源:阿里的base和epel源

Install Dependencies

yum -y groupinstall "Development Tools"
yum -y install gdbm-devel libdb4-devel libffi-devel libyaml libyaml-devel ncurses-devel openssl-devel readline-devel tcl-devel

Download and Build Ruby from Source

mkdir -p rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}

wget http://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.3.tar.gz -P rpmbuild/SOURCES

wget https://raw.githubusercontent.com/tjinjin/automate-ruby-rpm/master/ruby22x.spec -P rpmbuild/SPECS

rpmbuild -bb rpmbuild/SPECS/ruby22x.spec

yum -y localinstall rpmbuild/RPMS/x86_64/ruby-2.2.3-.el7.centos.x86_64.rpm

Test the Install

ruby -v
gem -v

GEM

https://gems.ruby-china.org/

CentOS

192.168.153.181

https://docs.docker.com/registry/#requirements

https://www.digitalocean.com/community/tutorials/how-to-set-up-a-private-docker-registry-on-ubuntu-14-04

ubuntu

vi 方向键乱

vi /etc/vim/vimrc.tiny

将“compatible”改成“nocompatible

再加入set backspace=2  

启用ssh

ssh是一种安全协议,主要用于给远程登录会话数据进行加密,保证数据传输的安全,现在介绍一下如何在Ubuntu 14.04上安装和配置ssh
工具/原料
Ubuntu 14.04
方法/步骤
更新源列表
打开"终端窗口",输入"sudo apt-get update"-->回车-->"输入当前登录用户的管理员密码"-->回车,就可以了。
安装ssh
打开"终端窗口",输入"sudo apt-get install openssh-server"-->回车-->输入"y"-->回车-->安装完成。
查看ssh服务是否启动
打开"终端窗口",输入"sudo ps -e |grep ssh"-->回车-->有sshd,说明ssh服务已经启动,如果没有启动,输入"sudo service ssh start"-->回车-->ssh服务就会启动。
使用gedit修改配置文件"/etc/ssh/sshd_config"
打 开"终端窗口",输入"sudo gedit /etc/ssh/sshd_config"-->回车-->把配置文件中的"PermitRootLoginwithout-password"加一个"#"号,把它注释掉-->再增加一句"PermitRootLogin   yes"-->保存,修改成功。
 
查看Ubuntu 14.04的IP地址
打开"终端窗口",输入"sudo ifconfig"-->回车-->就可以查看到IP地址。
 
6.连接测试
  在另外的机器上输入   ssh  192.168.*.* 回车
  第一次操作会显示如下页面:
  输入密码后即可连接。
  操作完成后,输入quit回车后退出ssh连接

源地址:

http://wiki.ubuntu.org.cn/%E6%A8%A1%E6%9D%BF:16.04source

deb https://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse

https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/

sudo vi /etc/apt/sources.list

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse

https://mirrors.ustc.edu.cn/repogen/

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse


GIT

git安装

yum install git

git更新

  1. git status(查看本地分支文件信息,确保更新时不产生冲突)
  2. git checkout – [file name] (若文件有修改,可以还原到最初状态; 若文件需要更新到服务器上,应该先merge到服务器,再更新到本地)
  3. git branch(查看当前分支情况)
  4. git checkout remote branch
  5. git pull

Docker

docker 指南

http://www.widuu.com/docker/index.html

https://docs.docker.com/

docker 安装

教程:

https://docs.docker.com/engine/installation/

安装docker ce:

https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/#install-docker-ce


sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common
    
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -


sudo apt-key fingerprint 0EBFCD88


sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

sudo apt-get update

sudo apt-get install docker-ce

apt-cache madison docker-ce


sudo apt-get install docker-ce=<VERSION>

sudo apt-get install docker-ce=

docker compose

官方方法:

sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

我在centos下是用

pip install docker-compose
pip install --upgrade backports.ssl_match_hostname

docker-compose.yml:

version: '2'
services:
  rabbitmq:
    image: rabbitmq:latest
    hostname: rabbit
    environment:
        - RABBITMQ_DEFAULT_USER=osprey
        - RABBITMQ_DEFAULT_PASS=osprey
  mongo:
    image: mongo:latest
    hostname: mongo
  osprey:
    image: tophant/osprey
    volumes:
      - ../pocs:/opt/osprey/pocs
    links:
     - rabbitmq
     - mongo
    command: docker/start-osprey.sh
    ports:
     - "5000:5000"

FIX

Couldn't connect to Docker daemon at http docker://localunixsocket - is it r

maybe try running it as sudo docker ... instead of docker .... The user that you are running as may not have permissions to talk to /var/run/docker.sock on that system.

docker-compose加sudo

镜像控制

1)下载镜像:docker pull hub.c.163.com/library/php:latest

2)列出所有镜像:docker images

3)保存容器为镜像:首先使用docker ps -l命令获得安装完ping命令之后容器的id。docker commit 698 learn/ping把这个镜像保存为learn/ping。无需拷贝完整的id,通常来讲最开始的三至四个字母即可区分。

4)上传镜像:docker push learn/ping

5)删除镜像:$ sudo docker rmi training/sinatra

docker commit -a "muhe" -m "muheosprey" 1677 muhe/osprey:v1
docker run -it  tophant/osprey bash

搜索

docker search 192.168.1.205:5000/mysql

加速DockerImage下载

如果你是Centos系统,你可以执行如下命令开启加速 :

sudo sed -i 's|OPTIONS=|OPTIONS=--registry-mirror=http://zbseumga.mirror.aliyun.com |g' /etc/sysconfig/docker

sudo service docker restart

如果你是Ubuntu 系统,你可以执行如下命令开启 :

echo "DOCKER_OPTS=\"$DOCKER_OPTS --registry-mirror=http://zbseumga.mirror.aliyun.com\"" | sudo tee -a /etc/default/docker

sudo service docker restart

容器控制

1)启动容器:

开启并进入容器:docker runlean/ping (learn/ping为镜像名)

2)启动并后台运行:

docker run -idt learn/ping /bin/bash

其中-i是交互模式,t指分配tty设备,-d后台执行。

注意如果没有/bin/bash,那么容器运行结束会自己停止。同时,如果单纯的d没有i和t那么运行完也会自动退出了。

例子:运行一个在后台不断执行的容器,同时带有命令,程序被终止后还能重启继续跑,还能用控制台管理。

$docker run -d–restart=always lean/ping ping www.docker.com

这个容器将永久在后台执行,因为ping这个线程不会停止。如果你把ping这个线程终止了,那么容器会重启继续执行ping功能。

3)启动并映射端口:

$ docker run -d -p 5000:5000 training/webapp python app.py

这里映射了容器的5000端口到Docker的5000端口。

4)查看运行中容器:docker ps

5)查看更详细的容器的信息:docker inspect。

如:$ docker inspectefe

6)停止容器:docker stop

7)结束容器:docker kill

8)启动一个或多少已经被停止的容器:docker start

9)重启容器:docker restart

10)获取容器输出:$ sudo docker logs insane_babbage

11)进入容器:run之后用ps查看再attach进入

例子:

#使用exit退出会stop容器
$docker attach 44fc0f0582d9
#加入--sig-proxy=false才不会
$docker attach --sig-proxy=false 44fc0f0582d9
#使用exec在外面对容器执行命令
$docker exec -it bb2 /bin/sh

12)从Container中拷贝文件出来:

sudo docker cp 7bb0e258aefe:/etc/debian_version .

拷贝7bb0e258aefe中的/etc/debian_version到当前目录下。

13)删除所有容器:

docker rm$(docker ps -aq)

14)删除一个容器:

$sudo docker rm trusting_newton

15)导出容器:

$ sudo dockerexport 7691a814370e > ubuntu.tar

16)导入容器:

$ cat ubuntu.tar sudo docker import - test/ubuntu:v1.0

FIX

解决linux安装软件:/lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录

常用的安装因为系统软件位数问题,如:64位系统中安装了32位程序了,

是因为64位系统中安装了32位程序

解决方法:

yum install glibc.i686

Influence is Power.