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
线程是在一个进程里,一个并发执行的顺序的流程。
例如,考虑一个文本编辑器,它在输入特定长度的文本后执行自动保存操作。
现在有两个任务,首先显示输入到编辑器中的文本,然后执行自动保存。
因为这两个任务应该并行执行,所以它们在不同的线程中执行。如果两个操作都在同一个线程上执行,那么当线程忙于保存时,它就不能执行输入过程,并且会显示一个延迟,直到保存操作完成。
创建线程有两种方法。
每个线程都是线程的一个实例。因此,可以通过扩展thread类来创建一个新线程。扩展Thread的类应该运行其中定义的方法。Run方法包含要在线程中执行的任务。通过调用start方法启动新线程。
快捷键有助于我们提升工作效率,减少对鼠标的依赖,让编码过程更加协调.
Ctrl + 左键
或者 Ctrl 右键
光标向左/向右跳过一个单词Ctrl + Shift + 左键
或者 Ctrl + Shift + 右键
光标向左/向右选中一个完整单词Alt + 上键
或者 Alt + 下键
将光标所在行上移/下移Alt + Shift + 上键
或者 Alt + Shift + 下键
将光标所在行内容复制到上一行或者下一行Ctrl + q
光标移动到最后编辑的地方Home/End
光标移动到行首或者行尾Ctrl + k
查找下一个和选中内容相同的内容Ctrl + o
列出类的属性视图在java中,我们经常需要将数组转换为List。这主要是由于以下原因:
在需要将数组转换为列表的代码中,可能会出现上述任何场景。这篇文章将提供一些可以使用的方法。
当我们要统计目录的使用情况时, du
工具专门用于统计目录的磁盘使用情况, 接下来我们就看看 du
命令的一些常规使用场景
统计当前目录的磁盘使用情况
du --si -s .
--si
以便于人阅读的单位来统计大小,-s
递归统计目录下的所有内容统计当前目录下的一级目录的大小
du --si -d1 | sort -h
-d
选项指定统计深度, 这里仅统计1级目录-h
sort命令的 -h
选项, 已便于使用者阅读的格式排序