0%

Linux

In Brief, Android is a Java System running on Linux

Basic Concept

Install Software

Linux(继承自Unix)的文件系统构架中,用户手动选择安装目录是不必要的。这套系统是很聪明滴,她更了解什么东西该放在什么位置,根本不用操心。若是非要操心,非要自己指定位置,指错了说不定会出故障欧!——因为提供软件的人也信任这套系统最佳,呵呵~这种规范已经实行几十年了,事实证明这就是最好的!所以就不需要我们操心安装位置了(事实上安装时也没提示你选择安装目录)

通常情况下,linux会这样放软件的组件:

程序的文档->/usr/share/doc; /usr/local/share/doc
程序->/usr/share; /usr/local/share
程序的启动项->/usr/share/apps; /usr/local/share
程序的语言包->/usr/share/locale; /usr/local/share/locale
可执行文件->/usr/bin; /usr/local/bin

而有的软件为了和系统组件分隔开,选择栖息于 /opt,但目录结构往往是一样的,把/usr或/usr/local 替换为了/opt/“软件名”

Linux软件包管理基本操作入门
大多数现代类 Unix 操作系统都提供了一个集中的软件包管理机制,以帮助用户搜索、安装和管理软件。而软件通常以「包」的形式存储在仓库「repository」中,对软件包的使用和管理被称为包管理。而 Linux 包的基本组成部分通常有:共享库、应用程序、服务和文档。

包管理通常不仅限于软件的一次性安装,还包括了对已安装软件包进行升级的工具。「包仓库」有助于确保代码已经在你使用的系统上进行了审核,并由软件开发者或包维护者进行管理。

在配置 Linux 服务器或开发环境时,通常都不仅限于使用官方源。相较于现如今软件版本快速更新迭代而言,虽然官方源所使用的稳定版软件包很可能已过时,但对于系统管理员和开发人员来说,掌握常见 Linux 包管理基本操作还是一项必备的常用技能。

大多数包管理系统是建立在包文件上的集合,包文件通常包含编译好的二进制文件和其它资源组成的:软件、安装脚本、元数据及其所需的依赖列表。

Debian 及其衍生产品如:Ubuntu、Linux Mint 和 Raspbian 的包格式为.deb文件,APT 是最常见包操作命令,可:搜索库、安装包及其依赖和管理升级。而要直接安装现成.deb包时需要使用dpkg命令。

CentOS、Fedora 及 Red Hat 系列 Linux 使用RPM包文件,并使用yum命令管理包文件及与软件库交互。

在最新的 Fedora 版本中,yum命令已被dnf取代进行包管理。

amd64的说法,可以google一下,大约就是amd最先推出64位机,于是乎后来者比如因特尔在推出64位CPU时也沿用了此叫法。

更新本地包数据库列表

大多数 Linux 都使用本地数据库来存储远程可用的包仓库列表,所以在安装或升级包之前最好更新一下这个数据库。

系统 命令
Debian / Ubuntu sudo apt-get update
CentOS yum check-update
Fedora dnf check-update

升级已安装的包

在没有包管理方式时,要升级并保持 Linux 已装软件处在最新版本是一个巨大的工程,管理员和用户不得不手动跟踪上游软件版本变化及安全警告。在有了包管理系统之后,只需几条命令便可保持软件最新。

系统 命令 备注
Debian / Ubuntu sudo apt-get upgrade 仅升级已安装的软件包
sudo apt-get dist-upgrade 可添加或删除程序包,以满足新的依赖。
CentOS sudo yum update
Fedora sudo dnf upgrade

查找/搜索软件包

大多数 Linux 桌面版本都提供用户可搜索和安装软包的界面,这是找寻和安装软件的最佳方法。但对于追求效率和服务器管理员来说,使用命令行工具查找/搜索软件包才是正途。

系统 命令 备注
Debian / Ubuntu apt-cache search 搜索内容
CentOS yum search 搜索内容
yum search all 搜索内容 搜索所有内容,包括包描述。
Fedora dnf search 搜索内容
dnf search all 搜索内容 搜索所有内容,包括包描述。

查看某个软件包信息

在决定安装哪个包之前,我们往往都需要查看该软件包的详细说明。包的说明文件中通常包括:包名、版本号及依赖列表等元数据,可以使用如下命令来查看。

系统 命令 备注
Debian / Ubuntu apt-cache show 包名 显示有关软件包的本地缓存信息
dpkg -s 包名 显示包的当前安装状态
CentOS yum info 包名
yum deplist 包名 列出包的以来
Fedora dnf info 包名
dnf repoquery –requires 包名 列出包的以来

从软件仓库安装包

一旦我们知道某个软件包的名称之后,便可以使用如下命令从软件仓库安装包。

系统 命令 备注
Debian / Ubuntu sudo apt-get install 包名
sudo apt-get install 包1 包2 … 安装所有列出的包
sudo apt-get install -y 包名 无需提示直接安装
CentOS sudo yum install 包名
sudo yum install 包1 包2 … 安装所有列出的包
sudo yum install -y 包名 无需提示直接安装
Fedora sudo dnf install 包名
sudo dnf install 包1 包2 … 安装所有列出的包
sudo dnf install -y 包名 无需提示直接安装

从本地文件系统直接安装包

很多时候,我们在进行测试或从某个地方直接拿到软件包之后需要从本地文件系统直接安装包。Debian 及衍生系统可以使用 dpkg 进行安装,CentOS 和 Fedora 系统使用 yum 和 dnf 命令进行安装。

系统 命令 备注
Debian / Ubuntu sudo dpkg -i 包名.deb
sudo apt-get install -y gdebi&& sudo gdebi 包名.deb 使用gdebi检索缺少的依赖关系
CentOS sudo yum install 包名.rpm
Fedora sudo dnf install 包名.rpm

移除已安装的包

由于包管理器知道哪些文件是由哪个包提供的,所以在卸载不需要的软件包之后通常可以获得一个干净的系统。

系统 命令 备注
Debian / Ubuntu sudo apt-get remove 包名
sudo apt-get autoremove 自动移除已知不需要的包
CentOS sudo yum remove 包名
Fedora sudo dnf erase 包名

Basic Command

Directory

pwd 查看当前目录

回到上级目录
与 Windows 一样,使用 cd .. 即可。如果要在父目录的各文件夹之间进行切换,使用 ../文件夹名 即可。

回到上个目录
如果你操作到一半时,需要返回上个进入过的目录,可以使用 – 破折号:cd -

其它目录导航操作
cd 返回Home目录
cd / 回到Root目录(需要有权限)

Bird Brother’s Linux Experience

Useful Tools of Linux

在Ubuntu 16.04如何安装Java

VIM

vi(vim)是上Linux 非常常用的编辑器,很多Linux发行版都默认安装了vi(vim)。vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率。vi是 “visual interface”的缩写,vim是vi IMproved(增强版的vi)。在一般的系统管理维护中vi就够用,如果想使用代码加亮的话可以使用vim。

Vim is a highly configurable text editor built to make creating and changing any kind of text very efficient. It is included as “vi” with most UNIX systems and with Apple OS X.

Vim is rock stable and is continuously being developed to become even better. Among its features are:

  1. persistent, multi-level undo tree
  2. extensive plugin system
  3. support for hundreds of programming languages and file formats
  4. powerful search and replace
  5. integrates with many tools

安装 sudo apt-get install vim
启动Vim后,vim在 Normal 模式下。
让我们进入 Insert 模式,请按下键 i 。(vim左下角有一个–insert–字样)
想返回 Normal 模式,请按 ESC 键

在VIM的Normal模式下,所有的键就是功能键
x → 删当前光标所在的一个字符。
dd → 删除当前行,并把删除的行存到剪贴板里
p → 粘贴剪贴板
:wq → 存盘 + 退出 (:w 存盘, :q 退出) :w 后可以跟文件名


Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。
连 vim 的官方网站 (http://www.vim.org) 自己也说 vim 是一个程序开发工具而不是文字处理软件。

vi/vim 的使用
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),插入模式(Insert mode)和底线命令模式(Last line mode)。 这三种模式的作用分别是:

命令模式:

用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

以下是常用的几个命令:
i 切换到插入模式,以输入字符。
x 删除当前光标所在处的字符。
: 切换到底线命令模式,以在最底一行输入命令。

若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。

输入模式

在命令模式下按下i就进入了输入模式。
在输入模式中,可以使用以下按键:

字符按键以及Shift组合,输入字符
ENTER,回车键,换行
BACK SPACE,退格键,删除光标前一个字符
DEL,删除键,删除光标后一个字符
方向键,在文本中移动光标
HOME/END,移动光标到行首/行尾
Page Up/Page Down,上/下翻页
Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
ESC,退出输入模式,切换到命令模式

底线命令模式

在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
q 退出程序
w 保存文件
按ESC键可随时退出底线命令模式。

简单的说,我们可以将这三个模式想成底下的图标来表示:

Linux上vi(vim)编辑器使用教程

一、打开文件、保存、关闭文件(vi命令模式下使用)
vi filename //打开filename文件
:w //保存文件
:w vpser.net //保存至vpser.net文件
:q //退出编辑器,如果文件已修改请使用下面的命令
:q! //退出编辑器,且不保存
:wq //退出编辑器,且保存文件

二、插入文本或行(vi命令模式下使用,执行下面命令后将进入插入模式,按ESC键可退出插入模式)
a //在当前光标位置的右边添加文本
i //在当前光标位置的左边添加文本
A //在当前行的末尾位置添加文本
I //在当前行的开始处添加文本(非空字符的行首)
O //在当前行的上面新建一行
o //在当前行的下面新建一行
R //替换(覆盖)当前光标位置及后面的若干文本
J //合并光标所在行及下一行为一行(依然在命令模式)

三、移动光标(vi命令模式下使用)
1、使用上下左右方向键

2、命令模式下:h 向左、j 向下 、k 向上、l 向右。
空格键 向右、Backspace 向左、Enter 移动到下一行首、- 移动到上一行首。

四、删除、恢复字符或行(vi命令模式下使用)
x //删除当前字符
nx //删除从光标开始的n个字符
dd //删除当前行
ndd //向下删除当前行在内的n行
u //撤销上一步操作
U //撤销对当前行的所有操作

五、搜索(vi命令模式下使用)
/vpser //向光标下搜索vpser字符串
?vpser //向光标上搜索vpser字符串
n //向下搜索前一个搜素动作
N //向上搜索前一个搜索动作

六、跳至指定行(vi命令模式下使用)
n+ //向下跳n行
n- //向上跳n行
nG //跳到行号为n的行
G //跳至文件的底部

七、设置行号(vi命令模式下使用)
:set nu //显示行号
:set nonu //取消显示行号

八、复制、粘贴(vi命令模式下使用)
yy //将当前行复制到缓存区,也可以用 “ayy 复制,”a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。
nyy //将当前行向下n行复制到缓冲区,也可以用 “anyy 复制,”a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。
yw //复制从光标开始到词尾的字符。
nyw //复制从光标开始的n个单词。
y^ //复制从光标到行首的内容。 VPS侦探
y$ //复制从光标到行尾的内容。
p //粘贴剪切板里的内容在光标后,如果使用了前面的自定义缓冲区,建议使用”ap 进行粘贴。
P //粘贴剪切板里的内容在光标前,如果使用了前面的自定义缓冲区,建议使用”aP 进行粘贴。

九、替换(vi命令模式下使用)
:s/old/new //用new替换行中首次出现的old
:s/old/new/g //用new替换行中所有的old
:n,m s/old/new/g //用new替换从n到m行里所有的old
:%s/old/new/g //用new替换当前文件里所有的old

十、编辑其他文件
:e otherfilename //编辑文件名为otherfilename的文件。

十一、修改文件格式
:set fileformat=unix //将文件修改为unix格式,如win下面的文本文件在linux下会出现^M。

Nmon ( Nigel’s Monitor)

非常常用的系统性能监视工具,由 IBM 工程师 Nigel Griffiths 开发,适用于 AIX 和 Linux 操作系统。该工具可以直接在屏幕上显示当前操作系统的资源利用率,以帮助大家找出系统瓶颈和协助系统调优。使用 Nmon 大家便可以轻松监控系统 CPU、内存、网络、磁盘、文件系统、NFS、Top 进程等信息。

sudo apt-get install nmon

一旦安装完成,则可以通过在终端执行 nmon 命令启动它。

从上图中大家可以看到,Nmon 命令行工具是一个用户交互的应用程序,大家可以非常方便地使用键盘快捷键来查看相关统计信息。

q : 停止并退出Nmon
h : 查看帮助信息
c : 查看 CPU 统计信息
m : 查看内存统计信息
d : 查看磁盘统计信息
k : 查看内核统计信息
n : 查看网络统计信息
N : 查看 NFS 统计信息
j : 查看文件系统统计信息
t : 查看 Top 进程统计信息
V : 查看虚拟内存统计信息
v : 详细输出模式

w

使用该命令我们可以查看到当前登录系统的用户是谁,以及执行了哪些命令。

dstat

dstat 是一个可以非常灵活使用和进行组合使用的工具,它可用于监控内存、进行、网络及磁盘性能,可用于替代 ifstat、iostat、dmstat等工具。使用之前需先执行如下命令进行安装:

apt-get install dstat

执行如下命令可以看到所有监控数据:

dstat


其可选参数非常多,常用的有:

dstat -c : 监控CPU
dstat -cdl -D sda1 :监控CPU详细信息
dstat -d :监控磁盘

saidar

saidar 是另一个 CLI 系统数据监控和统计工具,可提供有关磁盘、网络、存储和 SWAP 的监控信息。使用之前需先使用如下命令进行安装:

sudo apt-get install saidar

安装完成后可直接执行 saidar 进行输出,但我们通常使用带参数的命令生成带颜色输出:

saidar -c

ss

ss 全称 socket statistics,是一个可以替代 netstat 的网络连接查看工具。
直接执行 ss 即可进行查看:

常用参数有:
ss -A tcp :指定查看协议
ss -ltp :显示进程名称和 PID

ccze

ccze 非常有用,它可以用不同颜色高亮日志,协助管理员进行区分和查看分析。使用之前需先使用如下命令进行安装:

apt-get install ccze

我们可以使用类似如下方式进行使用:

tailf /var/log/syslog | ccze

而使用 ccze -l 参数可以查看其支持的日志类型。

sl

sl是什么?ls?,呵呵,你会经常把ls 打成sl吗?如果是的话,这个东西可以让你娱乐一下,你会看到一辆火车呼啸而过~~,相当拉风。你可以使用sudo apt-get install sl 安装。

Reference


鸟哥的Linux私房菜

简明 VIM 练级攻略
10大好用的Linux实用工具推荐
28个UNIX/LINUX的命令行神器
软件安装指南
Ubuntu 安装 Android Studio 的步骤

欢迎关注我的其它发布渠道