update some info about rust
This commit is contained in:
parent
472cf81df1
commit
0175fae291
|
@ -26,11 +26,19 @@
|
|||
|
||||
```rust
|
||||
// 条件编译
|
||||
cfg // 控制条件编译
|
||||
cfg_attr // 有条件地包含属性
|
||||
// 测试
|
||||
// 派生
|
||||
derive // 自动特性实现
|
||||
// 宏
|
||||
macro_use // 扩展宏的可见性,或从其它crate导入宏。
|
||||
// 诊断
|
||||
allow, warn, deny, forbid // 改变默认的检测级别
|
||||
allow(c) // 撤销对c的检查,这样违规行为将不会被报告
|
||||
warn(c) // 对c的违规行为将发出警告,但仍然会继续编译
|
||||
deny(c) // 如遇到c的违规行为,将发出error信号
|
||||
forbid(c) // 类似于deny(c),且禁止更改检测级别
|
||||
// ABI,链接,符号,FFI
|
||||
no_main // 不会加载"main"标记
|
||||
no_mangle // 禁止符号名编码
|
||||
|
@ -41,6 +49,7 @@ no_std // 不会预加载std
|
|||
// 模块
|
||||
// 限制
|
||||
// 运行时
|
||||
global_allocator // 实现了GlobalAlloc特性的静态条目用此属性来设置全局内存分配器.
|
||||
// 性质
|
||||
feature // 使能开发中的,或实验性的编译器属性。
|
||||
// 类型系统
|
||||
|
|
|
@ -1,21 +0,0 @@
|
|||
#### 简介
|
||||
|
||||
格式化字符串或打印字符串的工具。
|
||||
|
||||
#### 宏
|
||||
|
||||
Debug
|
||||
|
||||
#### 结构体
|
||||
|
||||
#### 枚举类型
|
||||
|
||||
#### 特性
|
||||
|
||||
#### 函数
|
||||
|
||||
write
|
||||
|
||||
#### 类型定义
|
||||
|
||||
Result
|
|
@ -0,0 +1,37 @@
|
|||
#### 简介
|
||||
|
||||
使用了buddy系统的裸金属分配器。
|
||||
|
||||
#### 模块
|
||||
|
||||
##### linked_list
|
||||
|
||||
#### 结构体
|
||||
|
||||
##### FrameAllocator
|
||||
|
||||
##### Heap
|
||||
|
||||
次序可配置的堆
|
||||
|
||||
##### LockedFrameAllocator
|
||||
|
||||
##### LockedHeap
|
||||
|
||||
堆的带锁版本
|
||||
|
||||
```rust
|
||||
// 实现
|
||||
pub const fn new() -> Self // 创建一个空堆
|
||||
pub const fn empty9) -> Self // 创建一个堆
|
||||
|
||||
// 来自于Deref<Target = Mutex<Heap<ORDER>>>的方法
|
||||
pub fn is_locked(&self) -> bool // 如果持有锁则返回true
|
||||
pub fn lock(&self) -> MutexGuard<'_, T> // 锁定Mutex并返回guard,使用此guard可以访问内部数据
|
||||
pub unsafe fn force_unlock(&self) // 强制解锁Mutex
|
||||
pub fn try_lock(&self) -> Option<MutexGuard<'_, T>> // 尝试锁定Mutex,如成功则返回一个guard
|
||||
```
|
||||
|
||||
|
||||
|
||||
##### LockedHeapWithRescue
|
|
@ -0,0 +1,15 @@
|
|||
#### 简介
|
||||
|
||||
一个用于延迟静态求值的宏。
|
||||
|
||||
#### 宏
|
||||
|
||||
##### lazy_static
|
||||
|
||||
#### 特性
|
||||
|
||||
##### LazyStatic
|
||||
|
||||
#### 函数
|
||||
|
||||
##### initialize
|
|
@ -0,0 +1,29 @@
|
|||
#### 简介
|
||||
|
||||
提供`std::sync`和`std::lazy`里关于自旋的原语。适用于`no_std`的环境。
|
||||
|
||||
#### 重新导出
|
||||
|
||||
```rust
|
||||
pub use mutex::MutexGuard;
|
||||
```
|
||||
|
||||
#### 模块
|
||||
|
||||
##### mutex
|
||||
|
||||
mutex的锁
|
||||
|
||||
```rust
|
||||
// 模块
|
||||
spin
|
||||
ticket
|
||||
|
||||
// 结构体
|
||||
Mutex // 一个基于自旋的锁,提供对数据的互斥访问
|
||||
MutexGuard // 对数据访问提供通用的保护,使用ticket锁或自旋锁
|
||||
```
|
||||
|
||||
|
||||
|
||||
#### 类型定义
|
|
@ -0,0 +1,63 @@
|
|||
#### 简介
|
||||
|
||||
内存分配APIs。
|
||||
|
||||
#### 结构体
|
||||
|
||||
##### AllocError
|
||||
|
||||
##### Global
|
||||
|
||||
##### Layout
|
||||
|
||||
##### LayoutError
|
||||
|
||||
#### 特性
|
||||
|
||||
##### Allocator
|
||||
|
||||
##### GlobalAlloc
|
||||
|
||||
这是一个内存分配器,可通过`#[global_allocator]`属性注册为标准库的默认值。
|
||||
|
||||
```rust
|
||||
pub unsafe trait GlobalAlloc {
|
||||
pub unsafe fn alloc(&self, layout: Layout) -> *mut u8;
|
||||
pub unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout);
|
||||
|
||||
pub unsafe fn alloc_zeroed(&self, layout: Layout) -> *mut u8 { ... }
|
||||
pub unsafe fn realloc(
|
||||
&self,
|
||||
ptr: *mut u8,
|
||||
layout: Layout,
|
||||
new_size: usize
|
||||
) -> *mut u8 { ... }
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
#### 函数
|
||||
|
||||
##### alloc
|
||||
|
||||
使用全局分配器分配内存
|
||||
|
||||
```rust
|
||||
pub unsafe fn alloc(layout: Layout) -> *mut u8
|
||||
```
|
||||
|
||||
|
||||
|
||||
##### alloc_zeroed
|
||||
|
||||
##### dealloc
|
||||
|
||||
##### handle_alloc_error
|
||||
|
||||
##### realloc
|
||||
|
||||
#### 类型定义
|
||||
|
||||
##### LayoutErr
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
#### 简介
|
||||
|
||||
用于堆分配的指针类型。
|
||||
|
||||
#### 结构体
|
||||
|
||||
##### Box
|
||||
|
||||
用于堆分配的指针类型。
|
|
@ -0,0 +1,17 @@
|
|||
#### 简介
|
||||
|
||||
一个可以持续增长的数组类型,它的内容由堆来分配,写作`Vec<T>`。
|
||||
|
||||
#### 数据结构
|
||||
|
||||
##### DrainFilter
|
||||
|
||||
##### Drain
|
||||
|
||||
##### Intolter
|
||||
|
||||
##### Splice
|
||||
|
||||
##### Vec
|
||||
|
||||
一个可以持续增长的数组类型,写作`Vec<T>`。
|
|
@ -0,0 +1,38 @@
|
|||
#### 简介
|
||||
|
||||
基本的特性和类型,代表了类型的基本属性。
|
||||
|
||||
按照Rust类型的固有属性,可以有多种分类方式。这些分类用特性来表示。
|
||||
|
||||
#### 宏
|
||||
|
||||
```
|
||||
Copy // 派生宏,生成Copy特性
|
||||
```
|
||||
|
||||
|
||||
|
||||
#### 结构体
|
||||
|
||||
```
|
||||
PhantomData // 长度为0的类型,这种类型表现的像它们拥有<T>。
|
||||
pub struct PhantomData<T: ?Sized>;
|
||||
PhantomPinned // 一个marker类型,它不实现Unpin。
|
||||
```
|
||||
|
||||
|
||||
|
||||
#### 特性
|
||||
|
||||
```
|
||||
DiscriminantKind
|
||||
StructuralEq
|
||||
StructuralPartialEq
|
||||
Unsize
|
||||
Copy
|
||||
Send
|
||||
Sized
|
||||
Sync
|
||||
Unpin
|
||||
```
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
#### 简介
|
||||
|
||||
内存分配API
|
||||
|
||||
#### 结构体
|
||||
|
||||
##### AllocError
|
||||
|
||||
##### Layout
|
||||
|
||||
一块内存的布局
|
||||
|
||||
```rust
|
||||
pub struct Layout { /* fields omitted */ }
|
||||
// 实现
|
||||
// 特性实现
|
||||
// 自动特性实现
|
||||
// 空白实现
|
||||
```
|
||||
|
||||
|
||||
|
||||
##### LayoutError
|
||||
|
||||
#### 特性
|
||||
|
||||
##### Allocator
|
||||
|
||||
##### GlobalAlloc
|
||||
|
||||
#### 类型定义
|
||||
|
||||
LayoutErr : 已弃用。
|
|
@ -0,0 +1,37 @@
|
|||
#### 简介
|
||||
|
||||
格式化字符串或打印字符串的工具。
|
||||
|
||||
#### 宏
|
||||
|
||||
Debug
|
||||
|
||||
#### 结构体
|
||||
|
||||
#### 枚举类型
|
||||
|
||||
Alignment
|
||||
|
||||
#### 特性
|
||||
|
||||
Binary
|
||||
|
||||
##### Debug
|
||||
|
||||
`?`格式。即把输出格式化为面向程序员的,要调试的内容。若使用可选格式`#?`,输出会更好看些。
|
||||
|
||||
```rust
|
||||
pub trait Debug {
|
||||
fn fmt(&self, f: &mut Formatter<'_>) -> Result;
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
#### 函数
|
||||
|
||||
write
|
||||
|
||||
#### 类型定义
|
||||
|
||||
Result
|
|
@ -34,6 +34,10 @@ crate::util // 模块路径crate::util,即文件路径./util.rs或util/mod.rs
|
|||
|
||||
##### 6.3使用的声明(use)
|
||||
|
||||
##### 6.10静态条目
|
||||
|
||||
静态条目类似于常量,只不过它代表的是程序中精确的内存位置。所有对静态条目的引用都会指向内存中相同的位置。静态条目有静态的生命周期,即Rust程序中最长的生命周期。静态条目在程序结束的时候不会调用drop。
|
||||
|
||||
##### 6.13外部块
|
||||
|
||||
外部块是基本的Rust外部程序接口,提供了不存在于当前crate中的条目。
|
||||
|
|
|
@ -1,34 +0,0 @@
|
|||
注:不成功
|
||||
|
||||
#### 安装
|
||||
|
||||
##### 0. 环境
|
||||
|
||||
`ubuntu 16.04 x86_64`
|
||||
|
||||
##### 1. 下载源代码
|
||||
|
||||
```shell
|
||||
git clone https://github.com/riscv-rust/riscv-rust-toolchain.git
|
||||
cd riscv-rust-toolchain
|
||||
git submodule update --init --recursive
|
||||
```
|
||||
|
||||
##### 2. 安装依赖
|
||||
|
||||
```shell
|
||||
sudo apt install autoconf automake bash bison cmake coreutils curl device-tree-compiler diffutils doxygen expat file findutils flex gawk git libgmp-dev make grep gzip libedit2 libssh2-1 libtool libusb-1.0-0 libxml2 mpc libmpfr4 ninja libncurses5 openssl patchelf pkg-config python2.7 sed swig tar texinfo zlib1g zsh
|
||||
|
||||
# 需要gcc-6
|
||||
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
|
||||
sudo apt update
|
||||
sudo apt install gcc-6 g++-6
|
||||
```
|
||||
|
||||
##### 3. 编译
|
||||
|
||||
```shell
|
||||
vim build-env.sh # 可选:修改安装目录,否则默认会安装在当前目录
|
||||
sudo make toolchain
|
||||
```
|
||||
|
|
@ -26,6 +26,14 @@
|
|||
|
||||
数组:单一类型的复合,长度固定。使用中括号和逗号定义。数据元素的访问方法为通过数组索引访问。
|
||||
|
||||
```rust
|
||||
let a = [1, 2, 3]; // a是包含1,2,3三个数的数组
|
||||
let a: [i32; 3] = [1, 2, 3]; // a是包含三个数的数组,且元素类型为i32
|
||||
let a = [0; 3]; // 数组a包含三个元素,且这三个元素的值都是0
|
||||
```
|
||||
|
||||
|
||||
|
||||
#### 3_3函数
|
||||
|
||||
以`fn`关键字定义函数。
|
||||
|
@ -34,7 +42,11 @@
|
|||
|
||||
语句是不返回值的指令,以分号结尾;表达式计算并产生一个值,结尾没有分号。
|
||||
|
||||
函数如有返回值,要用箭头`->`声明其类型。`return`用以指明返回值,如没有`return`关键字则最后一个表达式的值为返回值。
|
||||
函数如有**非空**的返回值,要用箭头`->`声明其类型。`return`用以指明返回值,如没有`return`关键字则最后一个表达式的值为返回值。
|
||||
|
||||
函数如有**空**的返回值,则表示为`-> ()`,意思是返回一个没有元素的元组。`-> ()`常常被省略。
|
||||
|
||||
函数如果**不**返回,则表示为`-> !`,这种函数叫发散函数(diverging function)。
|
||||
|
||||
#### 3_5控制流
|
||||
|
||||
|
|
|
@ -0,0 +1,62 @@
|
|||
#### wait, waitpid, waitid
|
||||
|
||||
等待子进程状态改变
|
||||
|
||||
```c
|
||||
pid_t wait(int *wstatus);
|
||||
// 只要有一个子进程终止就不再等待。相当于waitpid(-1, wstatus, 0).
|
||||
// 返回值:成功则返回子进程id,错误返回-1。
|
||||
// wstatus : NULL,则忽略。非NULL,则用于保存子进程的状态信息。
|
||||
|
||||
pid_t waitpid(pid_t pid, int *wstatus, int options);
|
||||
// 只有给定子进程pid状态改变才不再等待。
|
||||
// 返回值:成功则返回子进程id,错误返回-1,某些情况下返回0.
|
||||
// pid : 小于-1则所等待的子进程的组id要等于|pid|,
|
||||
// 等于-1则等待任意子进程即可,
|
||||
// 等于0所等待的子进程的组id要等于父进程,
|
||||
// 大于0则所等待的子进程的id要等于pid。
|
||||
// optons : 所等待的子进程的状态。
|
||||
// WNOHANG : 无子进程退出。
|
||||
// WUNTRACED :
|
||||
// WCONTINUED :
|
||||
|
||||
int waitid(idtype_t idtype, id_t id, siginfo_t *infop, int options);
|
||||
// 提供更精确的控制
|
||||
// 返回值:成功返回0,错误返回-1。
|
||||
// idtype : P_PID , 所等待的子进程的进程号为id。
|
||||
// P_PGID , 所等待的子进程的组id为id。
|
||||
// P_ALL , 等待任意子进程,此时忽略id。
|
||||
struct siginfo_t {
|
||||
pid_t si_pid; // 子进程的id
|
||||
uid_t si_uid; // 子进程的用户id
|
||||
int si_signo; //
|
||||
int si_status; //
|
||||
int si_code; //
|
||||
}
|
||||
// options : WEXITED
|
||||
// WSTOPPED
|
||||
// WCONTINUED
|
||||
// WNOHANG
|
||||
// WNOWAIT
|
||||
|
||||
pid_t wait3(int *wstatus, int options, struct rsuage *rusage);
|
||||
// 返回值 : 与waitpid相同。
|
||||
// rusage : NULL则忽略,非NULL则保存子进程的统计信息。
|
||||
pid_t wait4(pid_t pid, int *wstatus, int options, struct rusage *rusage);
|
||||
// 返回值: 与waitpid相同。
|
||||
```
|
||||
|
||||
|
||||
|
||||
#### gettimeofday
|
||||
|
||||
获取从1970-01-01 00:00:00 +0000(UTC)到现在经历的时间。这个时间记录在`TimeVal`中。
|
||||
|
||||
```c
|
||||
ing gettimeofday(struct timeval *tv, int timezone)
|
||||
struct timeval {
|
||||
time_t sec; // 秒数
|
||||
suseconds_t usec; // 微秒数
|
||||
}
|
||||
```
|
||||
|
|
@ -157,7 +157,6 @@ push
|
|||
rename
|
||||
restart # 重启容器。
|
||||
rmi # 移除一个或多个镜像(最顶层)。可以使用-f来删除中间的只读层。
|
||||
run # 相当于create + start
|
||||
search
|
||||
stats
|
||||
stop # 停止一个或多个运行中的容器。
|
||||
|
@ -239,6 +238,20 @@ docker rm [options] <containers> # 删除容器
|
|||
-v, --volumes # 删除与容器相关的卷(volumes)
|
||||
```
|
||||
|
||||
##### run
|
||||
|
||||
```
|
||||
docker run [options] <image> [cmd] [args]
|
||||
# 在一个新容器里运行命令,相当于create + start
|
||||
# 选项
|
||||
-d, --detach # 在后台运行容器,并打印容器的id
|
||||
--name <string> # 指定容器名
|
||||
--network <network> # 把容器连接到一个network
|
||||
-v, --volume <list> # 绑定并挂载一个卷
|
||||
```
|
||||
|
||||
|
||||
|
||||
##### save
|
||||
|
||||
```
|
||||
|
|
|
@ -10,6 +10,8 @@
|
|||
--global # 修改~/.gitconfig里的配置文件,但如果$XDG_CONFIG_HOME/git/config存在则修改之,而不再修改~/.gitconfig。
|
||||
--system # 修改/etc/gitconfig
|
||||
--local # 修改.git/config里的配置文件
|
||||
-l, --list # 列出配置文件中所有的键值对
|
||||
--unset # 从配置文件中删除与key相匹配的行
|
||||
```
|
||||
|
||||
|
||||
|
@ -38,6 +40,8 @@
|
|||
|
||||
```
|
||||
core.quotePath # 把路径里的不常用字符用反斜杠的方式来编码,当这个变量设置为false的时候,字符均不认为是不常用的。
|
||||
http.proxy # 设置HTTP代理,常使用环境变量http_proxy, https_proxy, all_proxy来设置。
|
||||
http.<url>.* # 让配置http.*仅作用于给定的url。
|
||||
```
|
||||
|
||||
#### 使用示例
|
||||
|
|
|
@ -2,19 +2,86 @@
|
|||
|
||||
把改变保存在一个dirty的工作区。它会把工作区和暂存区的状态都保存起来,但只是保存到本地而不会推送到远程。
|
||||
|
||||
```
|
||||
git stash <subcommand> [options]
|
||||
```
|
||||
|
||||
|
||||
|
||||
#### 子命名
|
||||
|
||||
```
|
||||
apply
|
||||
branch <branch> [stash] # 从stash创建分支
|
||||
clear # 删除所有的stash
|
||||
create
|
||||
drop # 移除stash
|
||||
list # 列出当前stash
|
||||
pop [stash] # 恢复之前的stash,如不给出stash则默认使用stash@{0}
|
||||
# 使用此命令有可能产生冲突,此时需要手动解决冲突,并使用git stash drop命令手动删除对应的stash
|
||||
push [-m <message>] [--] [pathspec...] # 把本地的修改保存起来
|
||||
show # 显示stash的内容
|
||||
store
|
||||
```
|
||||
|
||||
##### apply
|
||||
|
||||
```bash
|
||||
git stash apply [options] [stash] # 把一个stash添加到工作区,但不会从stash列表里删除对应stash
|
||||
|
||||
# 选项
|
||||
--index
|
||||
-q, --quiet
|
||||
```
|
||||
|
||||
##### clear
|
||||
|
||||
```bash
|
||||
clear # 删除所有的stash
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
##### drop
|
||||
|
||||
```bash
|
||||
git stash drop [-q| --quiet] [stash] # 移除stash
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
##### list
|
||||
|
||||
```bash
|
||||
git stash list [options] # 列出当前stash
|
||||
|
||||
```
|
||||
|
||||
##### pop
|
||||
|
||||
```bash
|
||||
git stash pop [options] [stash] # 从stash列表里删除一个stash,并把它添加到工作区,如不给出stash则默认使用stash@{0}
|
||||
# 使用此命令有可能产生冲突,此时需要手动解决冲突,并使用git stash drop命令手动删除对应的stash
|
||||
|
||||
# 选项
|
||||
--index
|
||||
-q, --quiet
|
||||
```
|
||||
|
||||
|
||||
|
||||
##### push
|
||||
|
||||
```bash
|
||||
git stash [push] [options] [--] [pathspec...] # 把本地的修改保存起来,并回滚到HEAD
|
||||
|
||||
# 选项
|
||||
-p, --patch
|
||||
-k, --[no-]keep-index
|
||||
-q, --quiet
|
||||
-u, --include-untracked
|
||||
-a, --all
|
||||
-m, --message <msg>
|
||||
|
||||
```
|
||||
|
||||
##### store
|
||||
|
||||
```bash
|
||||
git stash store
|
||||
```
|
||||
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
#### 选项
|
||||
|
||||
```
|
||||
-C <string> # 配置文件
|
||||
-D # 开启调试日志
|
||||
-F <value> # 设置转发地址,可做成转发链
|
||||
-L <value> # 监听地址,可监听多个端口
|
||||
-V # 打印版本信息
|
||||
-obfs4-distBias # 开启obfs4
|
||||
|
||||
# <value>的格式
|
||||
[scheme://][user:pass@host]:port[?param1=value1¶m2=value2]
|
||||
# scheme : 协议类型或传输类型,或二者的组合,或空
|
||||
# 默认协议类型:-L参数是HTTP&SOCKS5,-F参数是HTTP
|
||||
# 默认传输层类型:原始TCP类型
|
||||
# 组合用法示例:http+tls, socks5+wss
|
||||
```
|
|
@ -0,0 +1,12 @@
|
|||
```
|
||||
gzip [options] [names] # 压缩或解压
|
||||
```
|
||||
|
||||
|
||||
|
||||
#### 选项
|
||||
|
||||
```
|
||||
-d, --decompress, --uncompress # 解压
|
||||
```
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
#### 简介
|
||||
|
||||
显示最近登陆的用户
|
|
@ -13,6 +13,39 @@ tmux使用c/s结构,主要包括如下模块:
|
|||
tmux [options] [command [flags]]
|
||||
```
|
||||
|
||||
|
||||
|
||||
#### 命令
|
||||
|
||||
##### 客户端与会话
|
||||
|
||||
```bash
|
||||
attach, attach-session [-dEr] [-c working-dir] [-t target-session]
|
||||
# 如在tmux外部,则在当前终端创建一个新的client并把它附加到target-session。如在tmux内部,则切换到当前client。
|
||||
|
||||
ls, list-sessions [-F format]
|
||||
# 列出server管理着的所有会话
|
||||
|
||||
new-session [options] [shell-cmd] # 创建一个新的会话。
|
||||
-d # 新会话不附加到当前终端。(默认是附加到当前终端的)
|
||||
|
||||
rename, rename-session [-t target-session] new-name
|
||||
# 给会话重命名
|
||||
```
|
||||
|
||||
|
||||
|
||||
##### 窗口与面板
|
||||
|
||||
```bash
|
||||
renamew, rename-window [-t target-vindow] new-name
|
||||
# 给窗口重命名
|
||||
```
|
||||
|
||||
|
||||
|
||||
##### 键绑定
|
||||
|
||||
#### 选项
|
||||
|
||||
可以通过变量的值来控制tmux的外观和行为。有三类选项:server选项、session选项和window选项。
|
||||
|
@ -27,27 +60,6 @@ show-window-options [-gv] [-t target-window] [option]
|
|||
|
||||
|
||||
|
||||
#### 命令
|
||||
|
||||
##### 窗户端与会话
|
||||
|
||||
```
|
||||
attach, attach-session [-dEr] [-c working-dir] [-t target-session]
|
||||
# 如在tmux外部,则在当前终端创建一个新的client并把它附加到target-session。如在tmux内部,则切换到当前client。
|
||||
|
||||
ls, list-sessions [-F format]
|
||||
# 列出server管理着的所有会话
|
||||
|
||||
new-session [options] [shell-cmd] # 创建一个新的会话。
|
||||
-d # 新会话不附加到当前终端。(默认是附加到当前终端的)
|
||||
```
|
||||
|
||||
|
||||
|
||||
##### 窗口与面板
|
||||
|
||||
##### 键绑定
|
||||
|
||||
#### 激活控制台
|
||||
|
||||
```
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
#### 简介
|
||||
|
||||
显示登陆的用户,以及这些用户做了些什么。
|
|
@ -41,5 +41,23 @@ wget [option] [url]
|
|||
|
||||
##### 递归搜索
|
||||
|
||||
```
|
||||
-r, --recursive # 开启递归搜索,默认深度为5.
|
||||
-k, --convert-links # 下载完成后转换文档中的链接使其适合本地观看。
|
||||
-p, --page-requisites # 下载所有必需的文件,以正确显示给定HTML页。
|
||||
```
|
||||
|
||||
|
||||
|
||||
##### 递归接收/拒绝
|
||||
|
||||
```
|
||||
-np, --no-parent # 不向父目录的方向递归检索。
|
||||
```
|
||||
|
||||
#### 示例
|
||||
|
||||
```bash
|
||||
wget -r -p -np -k <url> # 批量下载url下的所有网页
|
||||
```
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#### 简介
|
||||
|
||||
创建新用户。
|
||||
创建新用户,属于底层命令。一般用高层命令`adduser`即可。
|
||||
|
||||
#### 语法
|
||||
|
||||
|
|
|
@ -1,7 +1,13 @@
|
|||
#### 简介
|
||||
|
||||
nohup的意思是"no hang up",在运行命令的时候忽略hangup信号。
|
||||
|
||||
```
|
||||
nohup <command> [args] # 运行command,忽略hangup信号
|
||||
# 当用户注销或远程连接断开时,终端会收到hangup信号,从而关闭其所有子进程
|
||||
# 一般会在最后加'&'把命令放后台执行
|
||||
# 标准输出和标准错误会默认重定向到nohup.out的文件
|
||||
# 标准输出和标准错误会默认重定向到当前目录的nohup.out的文件,若无法输出到当前目录的nohup.out文件,则输出到$HOME/nohup.out文件。
|
||||
# 可以使用 > 把输出重定向到指定的文件。
|
||||
# 可以使用 2>&1 把标准错误和标准输出都重定向到指定文件。
|
||||
```
|
||||
|
||||
|
|
Loading…
Reference in New Issue