From 0175fae291a33a862ae62c8445f746e0cfc5ba7b Mon Sep 17 00:00:00 2001 From: shzhxh Date: Fri, 21 May 2021 19:30:00 +0800 Subject: [PATCH] update some info about rust --- Languages/Rust/attribute/attribute.md | 9 ++ Languages/Rust/core_library/mod_fmt.md | 21 ----- .../Rust/crate/buddy-system-allocator.md | 37 +++++++++ Languages/Rust/crate/lazy_static.md | 15 ++++ Languages/Rust/crate/spin.md | 29 +++++++ Languages/Rust/lib_alloc/mod_alloc.md | 63 ++++++++++++++ Languages/Rust/lib_alloc/mod_boxed.md | 9 ++ Languages/Rust/lib_alloc/mod_vec.md | 17 ++++ .../macro_include_str.md | 0 Languages/Rust/lib_core/makrker.md | 38 +++++++++ Languages/Rust/lib_core/mod_alloc.md | 33 ++++++++ Languages/Rust/lib_core/mod_fmt.md | 37 +++++++++ .../{core_library => lib_core}/mod_panic.md | 0 .../{core_library => lib_core}/mod_ptr.md | 0 .../Rust/{std_library => lib_std}/keywords.md | 0 .../{std_library => lib_std}/macro_vec.md | 0 .../Rust/{std_library => lib_std}/mod_cell.md | 0 .../{std_library => lib_std}/mod_clone.md | 0 .../Rust/{std_library => lib_std}/mod_env.md | 0 .../Rust/{std_library => lib_std}/mod_fs.md | 0 .../Rust/{std_library => lib_std}/mod_io.md | 0 .../Rust/{std_library => lib_std}/mod_iter.md | 0 .../Rust/{std_library => lib_std}/mod_ops.md | 0 .../{std_library => lib_std}/mod_result.md | 0 .../{std_library => lib_std}/mod_string.md | 0 .../{std_library => lib_std}/mod_thread.md | 0 .../Rust/{std_library => lib_std}/mod_time.md | 0 .../Rust/{std_library => lib_std}/mod_vec.md | 0 Languages/Rust/reference.md | 4 + Languages/Rust/riscv-rust-toolchain.md | 34 -------- Languages/Rust/rust_lang_basic.md | 14 +++- OS/Linux/系统调用接口.md | 62 ++++++++++++++ Software/docker.md | 15 +++- Software/git命令/git-config.md | 4 + Software/git命令/git-stash.md | 83 +++++++++++++++++-- Software/gost.md | 17 ++++ Software/gzip.md | 12 +++ Software/last.md | 3 + Software/tmux.md | 54 +++++++----- Software/w.md | 3 + Software/wget.md | 18 ++++ Software/用户管理/useradd.md | 2 +- Software/进程管理/nohup.md | 8 +- 43 files changed, 553 insertions(+), 88 deletions(-) delete mode 100644 Languages/Rust/core_library/mod_fmt.md create mode 100644 Languages/Rust/crate/buddy-system-allocator.md create mode 100644 Languages/Rust/crate/lazy_static.md create mode 100644 Languages/Rust/crate/spin.md create mode 100644 Languages/Rust/lib_alloc/mod_alloc.md create mode 100644 Languages/Rust/lib_alloc/mod_boxed.md create mode 100644 Languages/Rust/lib_alloc/mod_vec.md rename Languages/Rust/{core_library => lib_core}/macro_include_str.md (100%) create mode 100644 Languages/Rust/lib_core/makrker.md create mode 100644 Languages/Rust/lib_core/mod_alloc.md create mode 100644 Languages/Rust/lib_core/mod_fmt.md rename Languages/Rust/{core_library => lib_core}/mod_panic.md (100%) rename Languages/Rust/{core_library => lib_core}/mod_ptr.md (100%) rename Languages/Rust/{std_library => lib_std}/keywords.md (100%) rename Languages/Rust/{std_library => lib_std}/macro_vec.md (100%) rename Languages/Rust/{std_library => lib_std}/mod_cell.md (100%) rename Languages/Rust/{std_library => lib_std}/mod_clone.md (100%) rename Languages/Rust/{std_library => lib_std}/mod_env.md (100%) rename Languages/Rust/{std_library => lib_std}/mod_fs.md (100%) rename Languages/Rust/{std_library => lib_std}/mod_io.md (100%) rename Languages/Rust/{std_library => lib_std}/mod_iter.md (100%) rename Languages/Rust/{std_library => lib_std}/mod_ops.md (100%) rename Languages/Rust/{std_library => lib_std}/mod_result.md (100%) rename Languages/Rust/{std_library => lib_std}/mod_string.md (100%) rename Languages/Rust/{std_library => lib_std}/mod_thread.md (100%) rename Languages/Rust/{std_library => lib_std}/mod_time.md (100%) rename Languages/Rust/{std_library => lib_std}/mod_vec.md (100%) delete mode 100644 Languages/Rust/riscv-rust-toolchain.md create mode 100644 OS/Linux/系统调用接口.md create mode 100644 Software/gost.md create mode 100644 Software/last.md create mode 100644 Software/w.md diff --git a/Languages/Rust/attribute/attribute.md b/Languages/Rust/attribute/attribute.md index 0271ce6..a52bc5c 100644 --- a/Languages/Rust/attribute/attribute.md +++ b/Languages/Rust/attribute/attribute.md @@ -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 // 使能开发中的,或实验性的编译器属性。 // 类型系统 diff --git a/Languages/Rust/core_library/mod_fmt.md b/Languages/Rust/core_library/mod_fmt.md deleted file mode 100644 index 8956319..0000000 --- a/Languages/Rust/core_library/mod_fmt.md +++ /dev/null @@ -1,21 +0,0 @@ -#### 简介 - -格式化字符串或打印字符串的工具。 - -#### 宏 - -Debug - -#### 结构体 - -#### 枚举类型 - -#### 特性 - -#### 函数 - -write - -#### 类型定义 - -Result \ No newline at end of file diff --git a/Languages/Rust/crate/buddy-system-allocator.md b/Languages/Rust/crate/buddy-system-allocator.md new file mode 100644 index 0000000..89d7c96 --- /dev/null +++ b/Languages/Rust/crate/buddy-system-allocator.md @@ -0,0 +1,37 @@ +#### 简介 + +使用了buddy系统的裸金属分配器。 + +#### 模块 + +##### linked_list + +#### 结构体 + +##### FrameAllocator + +##### Heap + +次序可配置的堆 + +##### LockedFrameAllocator + +##### LockedHeap + +堆的带锁版本 + +```rust +// 实现 +pub const fn new() -> Self // 创建一个空堆 +pub const fn empty9) -> Self // 创建一个堆 + +// 来自于Deref>>的方法 +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> // 尝试锁定Mutex,如成功则返回一个guard +``` + + + +##### LockedHeapWithRescue \ No newline at end of file diff --git a/Languages/Rust/crate/lazy_static.md b/Languages/Rust/crate/lazy_static.md new file mode 100644 index 0000000..98c3c7b --- /dev/null +++ b/Languages/Rust/crate/lazy_static.md @@ -0,0 +1,15 @@ +#### 简介 + +一个用于延迟静态求值的宏。 + +#### 宏 + +##### lazy_static + +#### 特性 + +##### LazyStatic + +#### 函数 + +##### initialize \ No newline at end of file diff --git a/Languages/Rust/crate/spin.md b/Languages/Rust/crate/spin.md new file mode 100644 index 0000000..eb84ca4 --- /dev/null +++ b/Languages/Rust/crate/spin.md @@ -0,0 +1,29 @@ +#### 简介 + +提供`std::sync`和`std::lazy`里关于自旋的原语。适用于`no_std`的环境。 + +#### 重新导出 + +```rust +pub use mutex::MutexGuard; +``` + +#### 模块 + +##### mutex + +mutex的锁 + +```rust +// 模块 +spin +ticket + +// 结构体 +Mutex // 一个基于自旋的锁,提供对数据的互斥访问 +MutexGuard // 对数据访问提供通用的保护,使用ticket锁或自旋锁 +``` + + + +#### 类型定义 \ No newline at end of file diff --git a/Languages/Rust/lib_alloc/mod_alloc.md b/Languages/Rust/lib_alloc/mod_alloc.md new file mode 100644 index 0000000..892f84f --- /dev/null +++ b/Languages/Rust/lib_alloc/mod_alloc.md @@ -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 + diff --git a/Languages/Rust/lib_alloc/mod_boxed.md b/Languages/Rust/lib_alloc/mod_boxed.md new file mode 100644 index 0000000..03d15f3 --- /dev/null +++ b/Languages/Rust/lib_alloc/mod_boxed.md @@ -0,0 +1,9 @@ +#### 简介 + +用于堆分配的指针类型。 + +#### 结构体 + +##### Box + +用于堆分配的指针类型。 \ No newline at end of file diff --git a/Languages/Rust/lib_alloc/mod_vec.md b/Languages/Rust/lib_alloc/mod_vec.md new file mode 100644 index 0000000..70b3d1f --- /dev/null +++ b/Languages/Rust/lib_alloc/mod_vec.md @@ -0,0 +1,17 @@ +#### 简介 + +一个可以持续增长的数组类型,它的内容由堆来分配,写作`Vec`。 + +#### 数据结构 + +##### DrainFilter + +##### Drain + +##### Intolter + +##### Splice + +##### Vec + +一个可以持续增长的数组类型,写作`Vec`。 \ No newline at end of file diff --git a/Languages/Rust/core_library/macro_include_str.md b/Languages/Rust/lib_core/macro_include_str.md similarity index 100% rename from Languages/Rust/core_library/macro_include_str.md rename to Languages/Rust/lib_core/macro_include_str.md diff --git a/Languages/Rust/lib_core/makrker.md b/Languages/Rust/lib_core/makrker.md new file mode 100644 index 0000000..d04b198 --- /dev/null +++ b/Languages/Rust/lib_core/makrker.md @@ -0,0 +1,38 @@ +#### 简介 + +基本的特性和类型,代表了类型的基本属性。 + +按照Rust类型的固有属性,可以有多种分类方式。这些分类用特性来表示。 + +#### 宏 + +``` +Copy // 派生宏,生成Copy特性 +``` + + + +#### 结构体 + +``` +PhantomData // 长度为0的类型,这种类型表现的像它们拥有。 + pub struct PhantomData; +PhantomPinned // 一个marker类型,它不实现Unpin。 +``` + + + +#### 特性 + +``` +DiscriminantKind +StructuralEq +StructuralPartialEq +Unsize +Copy +Send +Sized +Sync +Unpin +``` + diff --git a/Languages/Rust/lib_core/mod_alloc.md b/Languages/Rust/lib_core/mod_alloc.md new file mode 100644 index 0000000..ce5b610 --- /dev/null +++ b/Languages/Rust/lib_core/mod_alloc.md @@ -0,0 +1,33 @@ +#### 简介 + +内存分配API + +#### 结构体 + +##### AllocError + +##### Layout + +一块内存的布局 + +```rust +pub struct Layout { /* fields omitted */ } +// 实现 +// 特性实现 +// 自动特性实现 +// 空白实现 +``` + + + +##### LayoutError + +#### 特性 + +##### Allocator + +##### GlobalAlloc + +#### 类型定义 + +LayoutErr : 已弃用。 \ No newline at end of file diff --git a/Languages/Rust/lib_core/mod_fmt.md b/Languages/Rust/lib_core/mod_fmt.md new file mode 100644 index 0000000..d13d8f6 --- /dev/null +++ b/Languages/Rust/lib_core/mod_fmt.md @@ -0,0 +1,37 @@ +#### 简介 + +格式化字符串或打印字符串的工具。 + +#### 宏 + +Debug + +#### 结构体 + +#### 枚举类型 + +Alignment + +#### 特性 + +Binary + +##### Debug + +`?`格式。即把输出格式化为面向程序员的,要调试的内容。若使用可选格式`#?`,输出会更好看些。 + +```rust +pub trait Debug { + fn fmt(&self, f: &mut Formatter<'_>) -> Result; +} +``` + + + +#### 函数 + +write + +#### 类型定义 + +Result \ No newline at end of file diff --git a/Languages/Rust/core_library/mod_panic.md b/Languages/Rust/lib_core/mod_panic.md similarity index 100% rename from Languages/Rust/core_library/mod_panic.md rename to Languages/Rust/lib_core/mod_panic.md diff --git a/Languages/Rust/core_library/mod_ptr.md b/Languages/Rust/lib_core/mod_ptr.md similarity index 100% rename from Languages/Rust/core_library/mod_ptr.md rename to Languages/Rust/lib_core/mod_ptr.md diff --git a/Languages/Rust/std_library/keywords.md b/Languages/Rust/lib_std/keywords.md similarity index 100% rename from Languages/Rust/std_library/keywords.md rename to Languages/Rust/lib_std/keywords.md diff --git a/Languages/Rust/std_library/macro_vec.md b/Languages/Rust/lib_std/macro_vec.md similarity index 100% rename from Languages/Rust/std_library/macro_vec.md rename to Languages/Rust/lib_std/macro_vec.md diff --git a/Languages/Rust/std_library/mod_cell.md b/Languages/Rust/lib_std/mod_cell.md similarity index 100% rename from Languages/Rust/std_library/mod_cell.md rename to Languages/Rust/lib_std/mod_cell.md diff --git a/Languages/Rust/std_library/mod_clone.md b/Languages/Rust/lib_std/mod_clone.md similarity index 100% rename from Languages/Rust/std_library/mod_clone.md rename to Languages/Rust/lib_std/mod_clone.md diff --git a/Languages/Rust/std_library/mod_env.md b/Languages/Rust/lib_std/mod_env.md similarity index 100% rename from Languages/Rust/std_library/mod_env.md rename to Languages/Rust/lib_std/mod_env.md diff --git a/Languages/Rust/std_library/mod_fs.md b/Languages/Rust/lib_std/mod_fs.md similarity index 100% rename from Languages/Rust/std_library/mod_fs.md rename to Languages/Rust/lib_std/mod_fs.md diff --git a/Languages/Rust/std_library/mod_io.md b/Languages/Rust/lib_std/mod_io.md similarity index 100% rename from Languages/Rust/std_library/mod_io.md rename to Languages/Rust/lib_std/mod_io.md diff --git a/Languages/Rust/std_library/mod_iter.md b/Languages/Rust/lib_std/mod_iter.md similarity index 100% rename from Languages/Rust/std_library/mod_iter.md rename to Languages/Rust/lib_std/mod_iter.md diff --git a/Languages/Rust/std_library/mod_ops.md b/Languages/Rust/lib_std/mod_ops.md similarity index 100% rename from Languages/Rust/std_library/mod_ops.md rename to Languages/Rust/lib_std/mod_ops.md diff --git a/Languages/Rust/std_library/mod_result.md b/Languages/Rust/lib_std/mod_result.md similarity index 100% rename from Languages/Rust/std_library/mod_result.md rename to Languages/Rust/lib_std/mod_result.md diff --git a/Languages/Rust/std_library/mod_string.md b/Languages/Rust/lib_std/mod_string.md similarity index 100% rename from Languages/Rust/std_library/mod_string.md rename to Languages/Rust/lib_std/mod_string.md diff --git a/Languages/Rust/std_library/mod_thread.md b/Languages/Rust/lib_std/mod_thread.md similarity index 100% rename from Languages/Rust/std_library/mod_thread.md rename to Languages/Rust/lib_std/mod_thread.md diff --git a/Languages/Rust/std_library/mod_time.md b/Languages/Rust/lib_std/mod_time.md similarity index 100% rename from Languages/Rust/std_library/mod_time.md rename to Languages/Rust/lib_std/mod_time.md diff --git a/Languages/Rust/std_library/mod_vec.md b/Languages/Rust/lib_std/mod_vec.md similarity index 100% rename from Languages/Rust/std_library/mod_vec.md rename to Languages/Rust/lib_std/mod_vec.md diff --git a/Languages/Rust/reference.md b/Languages/Rust/reference.md index f863a27..e2e66cf 100644 --- a/Languages/Rust/reference.md +++ b/Languages/Rust/reference.md @@ -34,6 +34,10 @@ crate::util // 模块路径crate::util,即文件路径./util.rs或util/mod.rs ##### 6.3使用的声明(use) +##### 6.10静态条目 + +静态条目类似于常量,只不过它代表的是程序中精确的内存位置。所有对静态条目的引用都会指向内存中相同的位置。静态条目有静态的生命周期,即Rust程序中最长的生命周期。静态条目在程序结束的时候不会调用drop。 + ##### 6.13外部块 外部块是基本的Rust外部程序接口,提供了不存在于当前crate中的条目。 diff --git a/Languages/Rust/riscv-rust-toolchain.md b/Languages/Rust/riscv-rust-toolchain.md deleted file mode 100644 index 860411e..0000000 --- a/Languages/Rust/riscv-rust-toolchain.md +++ /dev/null @@ -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 -``` - diff --git a/Languages/Rust/rust_lang_basic.md b/Languages/Rust/rust_lang_basic.md index 53227e3..1f5f29d 100644 --- a/Languages/Rust/rust_lang_basic.md +++ b/Languages/Rust/rust_lang_basic.md @@ -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控制流 diff --git a/OS/Linux/系统调用接口.md b/OS/Linux/系统调用接口.md new file mode 100644 index 0000000..121c6fc --- /dev/null +++ b/OS/Linux/系统调用接口.md @@ -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; // 微秒数 +} +``` + diff --git a/Software/docker.md b/Software/docker.md index f187356..2311ab3 100644 --- a/Software/docker.md +++ b/Software/docker.md @@ -157,7 +157,6 @@ push rename restart # 重启容器。 rmi # 移除一个或多个镜像(最顶层)。可以使用-f来删除中间的只读层。 -run # 相当于create + start search stats stop # 停止一个或多个运行中的容器。 @@ -239,6 +238,20 @@ docker rm [options] # 删除容器 -v, --volumes # 删除与容器相关的卷(volumes) ``` +##### run + +``` +docker run [options] [cmd] [args] + # 在一个新容器里运行命令,相当于create + start +# 选项 +-d, --detach # 在后台运行容器,并打印容器的id +--name # 指定容器名 +--network # 把容器连接到一个network +-v, --volume # 绑定并挂载一个卷 +``` + + + ##### save ``` diff --git a/Software/git命令/git-config.md b/Software/git命令/git-config.md index 86bb879..3529392 100644 --- a/Software/git命令/git-config.md +++ b/Software/git命令/git-config.md @@ -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..* # 让配置http.*仅作用于给定的url。 ``` #### 使用示例 diff --git a/Software/git命令/git-stash.md b/Software/git命令/git-stash.md index 4cd770f..ba3b8a9 100644 --- a/Software/git命令/git-stash.md +++ b/Software/git命令/git-stash.md @@ -2,19 +2,86 @@ 把改变保存在一个dirty的工作区。它会把工作区和暂存区的状态都保存起来,但只是保存到本地而不会推送到远程。 +``` +git stash [options] +``` + + + #### 子命名 ``` -apply branch  [stash] # 从stash创建分支 -clear # 删除所有的stash create -drop # 移除stash -list # 列出当前stash -pop [stash] # 恢复之前的stash,如不给出stash则默认使用stash@{0} - # 使用此命令有可能产生冲突,此时需要手动解决冲突,并使用git stash drop命令手动删除对应的stash -push [-m ] [--] [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 + +``` + +##### store + +```bash +git stash store ``` diff --git a/Software/gost.md b/Software/gost.md new file mode 100644 index 0000000..61fdae0 --- /dev/null +++ b/Software/gost.md @@ -0,0 +1,17 @@ +#### 选项 + +``` +-C # 配置文件 +-D # 开启调试日志 +-F # 设置转发地址,可做成转发链 +-L # 监听地址,可监听多个端口 +-V # 打印版本信息 +-obfs4-distBias # 开启obfs4 + +# 的格式 +[scheme://][user:pass@host]:port[?param1=value1¶m2=value2] +# scheme : 协议类型或传输类型,或二者的组合,或空 +# 默认协议类型:-L参数是HTTP&SOCKS5,-F参数是HTTP +# 默认传输层类型:原始TCP类型 +# 组合用法示例:http+tls, socks5+wss +``` diff --git a/Software/gzip.md b/Software/gzip.md index e69de29..a3c8db6 100644 --- a/Software/gzip.md +++ b/Software/gzip.md @@ -0,0 +1,12 @@ +``` +gzip [options] [names] # 压缩或解压 +``` + + + +#### 选项 + +``` +-d, --decompress, --uncompress # 解压 +``` + diff --git a/Software/last.md b/Software/last.md new file mode 100644 index 0000000..053c3f6 --- /dev/null +++ b/Software/last.md @@ -0,0 +1,3 @@ +#### 简介 + +显示最近登陆的用户 \ No newline at end of file diff --git a/Software/tmux.md b/Software/tmux.md index 3c4ad2a..6c173ad 100644 --- a/Software/tmux.md +++ b/Software/tmux.md @@ -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 # 新会话不附加到当前终端。(默认是附加到当前终端的) -``` - - - -##### 窗口与面板 - -##### 键绑定 - #### 激活控制台 ``` diff --git a/Software/w.md b/Software/w.md new file mode 100644 index 0000000..8e4e41a --- /dev/null +++ b/Software/w.md @@ -0,0 +1,3 @@ +#### 简介 + +显示登陆的用户,以及这些用户做了些什么。 \ No newline at end of file diff --git a/Software/wget.md b/Software/wget.md index 5f7c6f7..55a6b6c 100644 --- a/Software/wget.md +++ b/Software/wget.md @@ -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下的所有网页 +``` + diff --git a/Software/用户管理/useradd.md b/Software/用户管理/useradd.md index 0b84b2f..5493277 100644 --- a/Software/用户管理/useradd.md +++ b/Software/用户管理/useradd.md @@ -1,6 +1,6 @@ #### 简介 -创建新用户。 +创建新用户,属于底层命令。一般用高层命令`adduser`即可。 #### 语法 diff --git a/Software/进程管理/nohup.md b/Software/进程管理/nohup.md index 88b8d49..a1a4cef 100644 --- a/Software/进程管理/nohup.md +++ b/Software/进程管理/nohup.md @@ -1,7 +1,13 @@ +#### 简介 + +nohup的意思是"no hang up",在运行命令的时候忽略hangup信号。 + ``` nohup [args] # 运行command,忽略hangup信号 # 当用户注销或远程连接断开时,终端会收到hangup信号,从而关闭其所有子进程 # 一般会在最后加'&'把命令放后台执行 - # 标准输出和标准错误会默认重定向到nohup.out的文件 + # 标准输出和标准错误会默认重定向到当前目录的nohup.out的文件,若无法输出到当前目录的nohup.out文件,则输出到$HOME/nohup.out文件。 + # 可以使用 > 把输出重定向到指定的文件。 + # 可以使用 2>&1 把标准错误和标准输出都重定向到指定文件。 ```