Linux 基本工具(wget/curl)
wget
/curl
用于访问网络上的资源, 如下载某些程序源码包.
wget
使用 wget
下载某个资源
wget https://www.debian.org/releases/stable/example-preseed.txt
下载整个网站
wget --wait=9 --recursive --level=2 https://www.debian.org
wget
/curl
用于访问网络上的资源, 如下载某些程序源码包.
wget
使用 wget
下载某个资源
wget https://www.debian.org/releases/stable/example-preseed.txt
下载整个网站
wget --wait=9 --recursive --level=2 https://www.debian.org
rsync
是个远程同步工具, 允许单向复制或者更新内容到远程服务器,要求远程服务器也必须安装rsync
,Linux平台上发行版默认都自带.
拷贝 ~/backup
复制到远程用户目录下
rsync -z -a -v -t --delete --rsh="ssh -l linuxcoming" ~/backup/ root@192.168.56.10:~/
-a
归档模式, 将文档所有元信息(所有者/权限/时间)同步到远程服务器-z
开启压缩选项, 压缩后在传输到远端-v
开启详细日志(verbose), 打印正在执行的内容-t
将时间戳同步到远端, 如果不添加该参数, rsync
将更新文件的时间戳, rsync
使用时间戳来检查文件是否需要更新.--delete
如果文件/目录在原始目录中不存在, 将删除它.Linux
平台上不同发行版的包管理不一样, 因此工具的使用也有区别, 这里我们介绍下常见的一些发行版系统包管理的流程, 顺带也介绍下 FreeBSD
的包管理机制.
Debian/Ubuntu
在基于 Debian
的发行版上一般使用 apt-get
工具来对软件包进行管理, 当然也有些变种, 比如 apt
/aptitute
, 使用起来有些区别, 但是核心功能基本一致, 一般还需要配合 apt-cache
, dpkg
等等工具
apt-get install package_name
卸载的过程中, 不清理配置文件
apt-get remove package_name
或者
卸载时同时卸载软件和其配置文件
apt-get purge package_name
分割字符串是一种非常常见的操作,本教程主要介绍一些我们可以在Java中简单使用的API。
让我们从核心库开始,String类本身提供了一个split()方法——这对于大多数场景都非常方便和充分。它只是根据分隔符分割给定的字符串,返回字符串数组。
String[] splitted = "peter,james,thomas".split(",");
String[] splitted = "car jeep scooter".split(" ");
String[] splitted = "192.168.1.178".split("\\.")
String[] splitted = "b a, e, l.d u, n g".split("\\s+|,\\s*|\\.\\s*"));
我们在查看系统所有进程的进程树可以使用 pstree
, 例如:
root@server:/etc/X11# pstree
systemd─┬─VBoxService─┬─{automount}
│ ├─{control}
│ ├─{cpuhotplug}
│ ├─{memballoon}
│ ├─{timesync}
│ ├─{vminfo}
│ └─{vmstats}
├─accounts-daemon─┬─{gdbus}
│ └─{gmain}
├─acpid
├─atd
├─cgmanager
├─cron
├─dbus-daemon
├─dhclient
├─dhcpd
├─dnsmasq───dnsmasq
├─3*[dynomite───2*[{dynomite}]]
├─epmd
├─in.tftpd
├─irqbalance
├─2*[iscsid]
......
而对于某个目录, 我们想知道目录树下的大致结构以及目录下的文件布局信息, 我们可以使用 tree
命令, tree
非系统核心包, 需要手动安装:
在Linux环境下, 经常会接触到一些压缩文件, 常见的有 tar/tar.gz/xz/zip等等,这些文件我们到底该如何解压文件和压缩文件呢? 下面我们介绍下不同工具的使用方式.
tar
tar
将目录归档为一个文件,其自身并不压缩内容,因此一般 tar
文档偏大.
tar cvf filename.tar dirname
tar xvf filename.tar
常用的一些可选项的含义:
c
创建归档文件v
输出详细信息f
指定归档文件tar
命令能解压压缩后的归档文件,需要指定不同的参数
gzip
压缩文件解压 tar xvfz filename.tar.gz
bz2
压缩文件解压 tar xvfj filename.tar.bz2
xz
压缩文件解压 tar xvfJ filename.tar.xz
当我们要统计目录的使用情况时, du
工具专门用于统计目录的磁盘使用情况, 接下来我们就看看 du
命令的一些常规使用场景
统计当前目录的磁盘使用情况
du --si -s .
--si
以便于人阅读的单位来统计大小,-s
递归统计目录下的所有内容统计当前目录下的一级目录的大小
du --si -d1 | sort -h
-d
选项指定统计深度, 这里仅统计1级目录-h
sort命令的 -h
选项, 已便于使用者阅读的格式排序我们在命令行下,有时候需要了解两个文件的异同,比如和配置文件的备份文件对比. Linux
的 diff
工具将非常方便的来解决我们的需求.
对于二进制文件的对比, diff
仅仅只是提示两个文件是否异同, 如果相同, 将不输出任何内容, 实验环境是 Ubuntu 18.04
, 我们对比下 /bin/sh
、 /bin/bash
、/bin/dash
, Ubuntu
最新版本 /bin/sh
使用的是 /bin/dash
, 而不是早前的 /bin/bash
.
root@server:~# diff /bin/sh /bin/bash
/bin/sh and /bin/bash differ
root@server:~# diff /bin/sh /bin/dash
Redis提供了不同级别的持久化方式:
最重要的事情是了解RDB和AOF持久化方式的不同,让我们以RDB持久化方式开始:
sort命令用于对文本行进行排序, 这里介绍下经常使用的场景:
sort filename
对本中的行按自然顺序排序sort -n filename
对行首内容已数值方式排序sort -r filename
对行按自然顺序降序排列以第N列排序, 示例以第2列按文本自然顺序排序
sort -k 2 myFile