============
== 白菜 ==
============
一个勤奋的代码搬运工!

上传公钥实现ssh登录

linux ssh-copy-id ssh

生成密钥和公钥

如果之前已经存在就不用重新生成了

$ ssh-keygen -t rsa

上传公钥

$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

其中root 服务器用户, 192.168.0.1 是服务器ip。之后按照提示输入密码即可

连接到服务器

直接使用ssh直接连接服务器,无需输入密码

在 Linux 命令行中使用的 6 个元字符

在 Linux 命令行上使用元字符是提高生产力的一个好方法。

许多 Linux 电脑是无头运行的,你可以在命令行上完成所有的管理任务。它使用许多所有人都熟悉的基本命令,如 ls、ls-l、ls-l、cd、pwd、top 等等。

Linux 上的 Shell 元字符

你可以通过使用元字符来扩展这些命令。

管道符 |

假设我想知道我的系统上运行的 Firefox 的所有实例。我可以使用带有 -ef 参数的 ps 命令来列出我系统上运行的所有程序实例。现在我想只看那些涉及 Firefox 的实例。我使用了我最喜欢的元字符之一,管道符 |,将其结果送到 grep,用它来搜索模式:

$ ps -ef | grep firefox

输出重定向 >

另一个我最喜欢的元字符是输出重定向 >。我用它来打印 dmesg 命令结果中所有 AMD 相关的结果。你可能会发现这在硬件故障排除中很有帮助:

$ dmesg | grep amd > amd.txt
$ cat amd.txt
[ 0.897] amd_uncore: 4 amd_df counters detected
[ 0.897] amd_uncore: 6 amd_l3 counters detected
[ 0.898] perf/amd_iommu: Detected AMD IOMMU #0 (2 banks, 4 counters/bank).

星号 *

星号 *(通配符)是寻找具有相同扩展名的文件时我的最爱,如 .jpg 或 .png。我首先进入我的系统中的 Picture 目录,并使用类似以下的命令:

Read more...

ubuntu上安装微信(wechat)

ubuntu wechat weixin

介绍

由于微信官网 https://weixin.qq.com/ 没有linux版本的下载和安装方法,但微信确实提供了优麒麟发行版的官方版本,所以就有了下面的安装方法。

安装方法

打开优麒麟应用商店官网,然后下载应用,就看到微信了 https://www.ubuntukylin.com/applications/106-cn.html 下载deb包,用命令sudo dpkg -i ,就能安装上了,而且可以用。 这是linux原生的,功能少点,但比wine的要轻巧不少。

安装方法2

下载链接在方法1中,优麒麟应用商店微信应用页面右键 “64位下载” ——> “复制链接” 终端下载Deb安装:

    wget  -O ~/weixin.deb "http://archive.ubuntukylin.com/software/pool/partner/weixin_2.1.1_amd64.deb"

    sudo dpkg -i ~/weixin.deb

Docker 运行 postgreSQL

Docker postgres

简单步骤

  1. 安装docker,可参考 安装docker及简单的使用 或 百度解决;

  2. 拉取postgreSQL的docker镜像文件:

    docker pull postgres
  1. 创建 docker volume,名字为“dv_pgdata"(其实可以省略手动创建,直接跑下一步,docker也会自动创建的):
    docker volume create dv_pgdata
  1. 启动容器,用-v来指定把postgres的数据目录映射到上面创建的dv_pgdata里面:
docker run --name my_postgres -v dv_pgdata:/var/lib/postgresql/data -e POSTGRES_PASSWORD=xxxxxx -p 5432:5432 -d postgres
  1. 这时候查看已存在的docker volume:
docker volume ls
  1. 查看volume信息:
cn2d6@navxin-desktop:~$ docker inspect dv_pgdata
  1. 在宿主机,也可以直接查看volume里的内容:
cn2d6@navxin-desktop:~$ cd /var/lib/docker/volumes/dv_pgdata/_data
cn2d6@navxin-desktop:~$ ll
  1. 查看postgresql:
cn2d6@navxin-desktop:~$docker exec -it 618 bash
root@618f1a4128ee:/# psql -U postgres -d postgres -p 5432 -h 127.0.0.1
  1. 更多的时候,我们希望能用图形界面来管理和操作数据库,可以部署pgadmin工具(例如下面),然后在浏览器中访问宿主机的5080端口,便能打开pgadmin。
docker pull dpage/pgadmin4
docker run --name pgadmin -p 5080:80 \
    -e '[email protected]' \
    -e 'PGADMIN_DEFAULT_PASSWORD=xxxxxx' \
    -e 'PGADMIN_CONFIG_ENHANCED_COOKIE_PROTECTION=True' \
    -e 'PGADMIN_CONFIG_LOGIN_BANNER="Authorised users only!"' \
    -e 'PGADMIN_CONFIG_CONSOLE_LOG_LEVEL=10' \
    -d dpage/pgadmin4

用docker-compose部署postgresql和pgAdmin4

准备步骤

安装docker-compose

Read more...

Ubuntu使用systemd配置开机运行service

ubuntu

systemd

Systemd 是 Linux 系统工具,用来启动守护进程,已成为大多数发行版的标准配置。

由来

历史上,Linux 的启动一直采用init进程。

下面的命令用来启动服务。

    $ sudo /etc/init.d/apache2 start
    # 或者
    $ service apache2 start

这种方法有两个缺点。

一是启动时间长。init进程是串行启动,只有前一个进程启动完,才会启动下一个进程。

二是启动脚本复杂。init进程只是执行启动脚本,不管其他事情。脚本需要自己处理各种情况,这往往使得脚本变得很长。

Systemd 概述

Systemd 就是为了解决这些问题而诞生的。它的设计目标是,为系统的启动和管理提供一套完整的解决方案。

根据 Linux 惯例,字母d是守护进程(daemon)的缩写。 Systemd 这个名字的含义,就是它要守护整个系统。

使用了 Systemd,就不需要再用init了。Systemd 取代了initd,成为系统的第一个进程(PID 等于 1),其他进程都是它的子进程。

    $ systemctl --version

上面的命令查看 Systemd 的版本。

使用 systemd 实现开机执行 Shell 脚本

通用操作步骤

创建希望开机马上执行的脚本,本文举例脚本存放位置为 /home/navxin/Example/startup.sh,脚本内容如下:

#!/bin/bash
# 开机时在脚本的同级目录下创建一个名为 StartupTouch.txt 的文件
touch /home/navxin/Example/startup.sh.txt

开机执行的脚本需增加可执行权限才能被 systemd 运行,使用如下命令

chmod u+x /home/navxin/Example/startup.sh
chmod g+x /home/navxin/Example/startup.sh

进入 systemd 放置 service 的目录,在该目录下可看到大量服务配置文件,命令如下

# 进入 systemd 的 service 目录
cd /usr/lib/systemd/system
# 查看文件列表
ls -al
在该目录创建一个新的 .service 文件用于配置开机启动脚本,本例中的文件名为 StartupExample.service,所执行命令和文件中的配置内容如下:

创建服务配置文件

sudo touch /usr/lib/systemd/system/StartupExample.service

以下为 StartupExample.service 配置文件的内容

Read more...

安装docker及简单的使用

Docker

docker的介绍,里面包括了3个基本概念

1.1 docker主要由镜像和容器构成

镜像(Image):docker镜像好比一个模板,相当于一个文件系统

容器(Container):容器需要通过镜像来创建。镜像和容器就像是面向对象中的类和实例一样。容器可以被创建/启动/停止/删除等

仓库(Repository):仓库就是存放镜像的地方,分为私有仓库和公有仓库。类似git

1.2 docker的运行原理

docker是一个Client-Server结构的系统,docker的守护进程运行在主机上,通过socket从客户端访问。dockerServer接收到docker-Client的指令,就会执行这个命令。

一. Mac 系统 docker 的安装

1.1 homebrew的cask应支持Docker for Mac,所以可以直接安装 brew cask install docker

1.2 也可以直接到官网下载,https://download.docker.com/mac/stable/Docker.dmg

1.3 docker的参考文档:https://docs.docker.com

1.4 dockerhub查找镜像源地址:https://hub.docker.com

二. docker的使用

1.1 查看版本

docker --version

docker-compose --version 

docker-machine --version

1.2 查看docker系统信息(包括镜像和容器的数量等)

docker info

1.3 帮助命令

docker help

1.4 查看 cpu的状况

docker stats

三. docker的基本命令

镜像相关命令:

1.1 查看镜像可用版本(nginx为例)

docker search nginx

1.2 下载一个镜像

docker pull nginx:latest #(:后面跟镜像版本)

1.3 运行一个nginx服务器

docker run -d -p 81:80 --name webserver nginx

可选项:

Read more...

ubuntu上安装firefox

firefox ubuntu

卸载原来Firefox

sudo apt-get purge firefox

或 sudo apt-get remove firefox

下载最新Firefox二进制压缩包

wget -O ~/firefox.tar.bz2 "https://download.mozilla.org/?product=firefox-latest&os=linux64"

解压并移动到/opt目录

sudo tar xjf ~/firefox.tar.bz2 -C /opt/

创建软链接

sudo ln -s /opt/firefox/firefox /usr/lib/firefox/firefox

在/usr/lib/中创建一个firefox可执行链接文件,该文件指向/opt中firefox可执行主程序位置。

启动firefox

终端启动Firefox

firefox

创建桌面快捷方式

进入/usr/share/applications目录

touch firefox.desktop

nano firefox.desktop

添加内容:

[Desktop Entry]
Name=firefox
Comment=firefox
Exec=/opt/firefox/firefox
Icon=/opt/firefox/browser/chrome/icons/default/default128.png
Terminal=false
Type=Application
Categories=Application;
Encoding=UTF-8
StartupNotify=true

卸载Firefox

通过上面方法安装的Firefox,如果想删除,可以在终端种输入以下命令:

sudo rm -rf /opt/firefox
sudo rm /usr/share/applications/firefox.desktop

如何知道谁在ping我?

tcpdump linux Ubuntu

tcpdump 是 Linux 上可用的最强大和使用最广泛的 命令行 数据包嗅探器(包分析器)工具。

在您要监控的计算机的终端应用程序中:

sudo tcpdump -i ethX icmp and icmp[icmptype]=icmp-echo

选项:

-n avoid a (potentially slow) reverse DNS query
−i interface
icmp[icmptype]=icmp-echo    To print all ICMP packets that are echo requests/replies

它将开始侦听 ethX 并等待到达的数据包。

示例:我有 2 台 pc win7 192.168.0.8 , Ubuntu 192.168.0.57 它将监控到达的数据包: 在Win上:

ping 192.168.0.57

在 Ubuntu 上:

tcpdump -i eth0 icmp and icmp[icmptype]=icmp-echo -n

参考:nixCraft[1]

使用 df 命令查看 Linux 上的可用磁盘空间

df

磁盘空间已经不像计算机早期那样珍贵,但无论你有多少磁盘空间,总有耗尽的可能。计算机需要一些磁盘空间才能启动运行,所以为了确保你没有在无意间用尽了所有的硬盘空间,偶尔检查一下是非常必要的。在 Linux 终端,你可以用 df 命令来做这件事。

df 命令可以显示文件系统中可用的磁盘空间。

要想使输出结果易于阅读,你可以加上 –human-readable(或其简写 -h)选项:

$ df --human-readable
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       1.0T  525G  500G  52% /

在这个例子中,计算机的磁盘已经用了 52%,还有 500 GB 可用空间。

由于 Linux 从整体上看待所有挂载设备的文件系统,df 命令会展示出连接到计算机上的每个存储设备的详细信息。如果你有很多磁盘,那么输出结果将会反映出来:

$ df --human-readable
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       110G   45G   61G  43% /
devtmpfs         12G     0   12G   0% /dev
tmpfs            12G  848K   12G   1% /run
/dev/sda1       1.6T  1.3T  191G  87% /home
/dev/sdb1       917G  184G  687G  22% /penguin
/dev/sdc1        57G   50G  4.5G  92% /sneaker
/dev/sdd1       3.7T  2.4T  1.3T  65% /tux

在这个例子中,计算机的 /home 目录已经用了 87%,剩下 191 GB 的可用空间。

Read more...

Ubuntu安装 Zlib

Zlib linux Ubuntu

如果你尝试在 Ubuntu 上安装 zlib,它会抛出 “unable to locate package zlib” 错误。

Zlib 是一个用于数据压缩的开源库。

作为使用者,你可能会遇到需要安装 zlib(或 zlib-devel 包)作为另一个应用程序的依赖项的情况。

但问题来了,如果你尝试在 Ubuntu 上安装 zlib,它会抛出 “unable to locate package zlib” 错误。

    sudo apt install zlib
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    E: Unable to locate package zlib

为什么会看到这个 Ubable to locate package 错误呢?因为没有名为 zlib 的包。

如果你 使用 apt search 命令,你会发现有几个包可以让你安装:zlib 1g 和 zlib 1g-dev。当你知道这些后,只需一个 apt 命令就可以安装它们。

Read more...
Previous Page 6 of 9 Next Page