压缩和解压缩

zip和unzip命令

语法格式为:zip[选项] 参数

zip命令 可以用来解压缩文件,或者对文件进行打包操作。zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有“.zip”扩展名的压缩文件

-A:调整可执行的自动解压缩文件;
-b<工作目录>:指定暂时存放文件的目录;
-c:替每个被压缩的文件加上注释;
-d:从压缩文件内删除指定的文件;
-D:压缩文件内不建立目录名称;
-f:此参数的效果和指定“-u”参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中;
-F:尝试修复已损坏的压缩文件;
-g:将文件压缩后附加在已有的压缩文件之后,而非另行建立新的压缩文件;
-h:在线帮助;
-i<范本样式>:只压缩符合条件的文件;
-j:只保存文件名称及其内容,而不存放任何目录名称;
-J:删除压缩文件前面不必要的数据;
-k:使用MS-DOS兼容格式的文件名称;
-l:压缩文件时,把LF字符置换成LF+CR字符;
-ll:压缩文件时,把LF+cp字符置换成LF字符;
-L:显示版权信息;
-m:将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中;
-n<字尾字符串>:不压缩具有特定字尾字符串的文件;
-o:以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同;
-q:不显示指令执行过程;
-r:递归处理,将指定目录下的所有文件和子目录一并处理;
-S:包含系统和隐藏文件;
-t<日期时间>:把压缩文件的日期设成指定的日期;
-T:检查备份文件内的每个文件是否正确无误;
-u:更换较新的文件到压缩文件内;
-v:显示指令执行过程或显示版本信息;
-V:保存VMS操作系统的文件属性;
-w:在文件名称里假如版本编号,本参数仅在VMS操作系统下有效;
-x<范本样式>:压缩时排除符合条件的文件;
-X:不保存额外的文件属性;
-y:直接保存符号连接,而非该链接所指向的文件,本参数仅在UNIX之类的系统下有效;
-z:替压缩文件加上注释;
-$:保存第一个被压缩文件所在磁盘的卷册名称;
-<压缩效率>:压缩效率是一个介于1~9的数值。


实例:

将/home/Blinux/html/这个目录下所有文件和文件夹打包为当前目录下的html.zip:
zip -q -r html.zip /home/Blinux/html上面的命令操作是将绝对地址的文件及文件夹进行压缩,以下给出压缩相对路径目录,比如目前在Bliux这个目录下,执行以下操作可以达到以上同样的效果:
zip -q -r html.zip html压缩效率选择:
zip -9 (1-9) faster->better创建 public_html 目录下忽略所有文件和文件夹,排除包括文本 backup 的所有文件。
$ zip -r public_html.zip public_html -x *backup*httpdocs 目录忽略 .svn 文件或 git 的文件和目录下创建所有文件的归档。
$ zip -r httpdocs.zip httpdocs --exclude *.svn* --exclude *.git*httpdocs 目录忽略的所有文件,并与 .log 结尾的目录下创建所有文件的归档。
$ zip -r httpdocs.zip httpdocs --exclude "*.log"


例:使用zip压缩文件test1.txt


例:压缩率为最高压缩test2.txt

例:将当前目录dir2连同目录下文件一起压缩

例:向压缩文件中test1.zip中添加test2. txt文件

例:查看压缩文件里的内容

例: 删除压缩文件中的文件

例: 压缩文件时排除某个文件


语法格式为:unzip[选项] 参数

unzip命令 用于解压缩由zip命令压缩的“.zip”压缩包。

-c:将解压缩的结果显示到屏幕上,并对字符做适当的转换;
-f:更新现有的文件;
-l:显示压缩文件内所包含的文件;
-p:与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换;
-t:检查压缩文件是否正确;
-u:与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中;
-v:执行时显示详细的信息;
-z:仅显示压缩文件的备注文字;
-a:对文本文件进行必要的字符转换;
-b:不要对文本文件进行字符转换;
-C:压缩文件中的文件名称区分大小写;
-j:不处理压缩文件中原有的目录路径;
-L:将压缩文件中的全部文件名改为小写;
-M:将输出结果送到more程序处理;
-n:解压缩时不要覆盖原有的文件;
-o:不必先询问用户,unzip执行后覆盖原有的文件;
-P<密码>:使用zip的密码选项;
-q:执行时不显示任何信息;
-s:将文件名中的空白字符转换为底线字符;
-V:保留VMS的文件版本信息;
-X:解压缩时同时回存文件原来的UID/GID;
-d<目录>:指定文件解压缩后所要存储的目录;
-x<文件>:指定不要处理.zip压缩文件中的哪些文件;
-Z:unzip-Z等于执行zipinfo指令。


例: 解压文件test2.zip

例: 将压缩文件text.zip在指定目录dir2下解压缩

例: 查看压缩文件目录,但不解压


gzip和gunzip命令

语法格式为:gzip[选项] 参数

注意:默认压缩后不会保留源文件

gzip命令 用来压缩文件。gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多处“.gz”扩展名。
gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。gzip不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式。据统计,gzip命令对文本文件有60%~70%的压缩率。减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。

-a或——ascii:使用ASCII文字模式;
-d或--decompress或----uncompress:解开压缩文件;
-f或——force:强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接;
-h或——help:在线帮助;
-l或——list:列出压缩文件的相关信息;
-L或——license:显示版本与版权信息;
-n或--no-name:压缩文件时,不保存原来的文件名称及时间戳记;
-N或——name:压缩文件时,保存原来的文件名称及时间戳记;
-q或——quiet:不显示警告信息;
-r或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
-S或<压缩字尾字符串>或----suffix<压缩字尾字符串>:更改压缩字尾字符串;
-t或——test:测试压缩文件是否正确无误;
-v或——verbose:显示指令执行过程;
-V或——version:显示版本信息;
-<压缩效率>:压缩效率是一个介于1~9的数值,预设值为“6”,指定愈大的数值,压缩效率就会愈高;
--best:此参数的效果和指定“-9”参数相同;
--fast:此参数的效果和指定“-1”参数相同。
-num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6。
-c或--stdout或--to-stdout:保留原始文件,生成标准输出流(结合重定向使用)。


例: 使用gzip压缩文件

例: 使用gzip压缩目录下文件

目录不压缩

例: 压缩但保留原始文件


语法格式为:gunzip[选项] 参数

gunzip命令 用来解压缩文件。gunzip是个使用广泛的解压缩程序,它用于解开被gzip压缩过的文件,这些压缩文件预设最后的扩展名为.gz。事实上gunzip就是gzip的硬连接,因此不论是压缩或解压缩,都可通过gzip指令单独完成。

-a或——ascii:使用ASCII文字模式;
-c或--stdout或--to-stdout:把解压后的文件输出到标准输出设备;
-f或-force:强行解开压缩文件,不理会文件名称或硬连接是否存在以及该文件是否为符号连接;
-h或——help:在线帮助;
-l或——list:列出压缩文件的相关信息;
-L或——license:显示版本与版权信息;
-n或--no-name:解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其忽略不予处理;
-N或——name:解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其回存到解开的文件上;
-q或——quiet:不显示警告信息;
-r或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
-S或<压缩字尾字符串>或----suffix<压缩字尾字符串>:更改压缩字尾字符串;
-t或——test:测试压缩文件是否正确无误;
-v或——verbose:显示指令执行过程;
-V或——version:显示版本信息;


实例:

首先将/etc目录下的所有文件以及子目录进行压缩,备份压缩包etc.zip到/opt目录,然后对etc.zip文件进行gzip压缩,设置gzip的压缩级别为9。zip –r /opt/etc.zip /etc
gzip -9v /opt/etc.zip
查看上述etc.zip.gz文件的压缩信息。gzip -l /opt/etc.zip.gz
compressed        uncompressed ratio uncompressed_name
11938745            12767265   6.5% /opt/etc.zip
解压上述etc.zip.gz文件到当前目录。[root@mylinux ~]#gzip –d /opt/etc.zip.gz
或者执行
[root@mylinux ~]#gunzip /opt/etc.zip.gz
通过上面的示例可以知道gzip –d等价于gunzip命令。


bzip2、bunzip2命令

语法格式为:bzip2[选项] 参数

注意:默认压缩后不会保留源文件

bzip2命令 用于创建和管理(包括解压缩)“.bz2”格式的压缩包。

bzip2 采用 Burrows-Wheeler 块排序文本压缩算法和 Huffman 编码方式压缩文件。 压缩率一般比基于 LZ77/LZ78 的压缩软件好得多,其性能接近 PPM 族统计类压缩软件。

命令行参数有意设计为非常接近 GNU gzip 的形式,但也不完全相同。

bzip2 从命令行读入文件名和参数。 每个文件被名为 “原始文件名.bz2” 的压缩文件替换。 每个压缩文件具有与原文件相同的修改时间、 权限, 如果可能的话,还具有相同的属主, 因此在解压缩时这些特性将正确地恢复。 在某些文件系统中, 没有权限、 属主或时间的概念, 或者对文件名的长度有严格限制, 例如 MSDOS,在这种情况下,bzip2 没有保持原文件名、 属主、 权限以及时间的机制, 从这个意义上说,bzip2 对文件名的处理是幼稚的。

bzip2 和 bunzip2 在缺省情况下不覆盖已有的文件。 如果想覆盖已有的文件,要指定 -f 选项。

如果未指定文件名, bzip2 将压缩来自标准输入的数据并写往标准输出。在这种情况下, bzip2 会拒绝将压缩结果写往终端,因为这完全无法理解并且是没有意义的。

bunzip2 (以及 bzip2 -d) 对所有指定的文件进行解压缩处理。不是由 bzip2 产生的文件将被忽略,同时发出一个警告信息。 bzip2 按下列方式由压缩文件名确定解压后的文件名:

filename.bz2 解压成 filename
filename.bz 解压成 filename
filename.tbz2 解压成 filename.tar
filename.tbz 解压成 filename.tar
anyothername 解压成 anyothername.out
如果文件名的后缀不是下列之一: .bz2, .bz, .tbz2 或 .tbz, .bzip2 将抱怨无法确定原始文件名,并采用原文件名加 .out 作为解压缩文件名。

在压缩时,如果不提供文件名,bzip2 将从标准输入读取数据,压缩结果写往标准输出。

bzip2 采用 32 位 CRC 校验码作自我检查,以确认解压后的文件与原始文件相同。 这可用于检测压缩文件是否损坏,并防止 bzip2 中未知的缺陷(运气好的话这种可能性非常小)。 数据损坏而未检测到的几率非常之小, 对于每个被处理的文件大约是四十亿分之一。 检查是在解压缩时进行的,因此它只能说明某个地方出问题了。 它能帮助恢复原始未压缩的数据。可以用 bzip2recover 来尝试从损坏的文件中恢复数据。

返回值:正常退出返回 0, 出现环境问题返回 1 (文件未找到,非法的选项,I/O错误等), 返回 2 表明压缩文件损坏,出现导致 bzip2 紧急退出的内部一致性错误(例如缺陷)时返回 3。

-c --stdout# 将数据压缩或解压缩至标准输出。-d --decompress# 强制解压缩。 bzip2, bunzip2 以及 bzcat 实际上是同一个程序,进行何种操作将根据程序名确定。  指定该选项后将不考虑这一机制,强制 bzip2 进行解压缩。-z --compress# -d 选项的补充:强制进行压缩操作,而不管执行的是哪个程序。-t --test# 检查指定文件的完整性,但并不对其解压缩。 实际上将对数据进行实验性的解压缩操作,而不输出结果。-f --force# 强制覆盖输出文件。通常 bzip2 不会覆盖已经存在的文件。该选项还强制 bzip2 打破文件的硬连接,缺省情况下 bzip2 不会这么做。-k --keep# 在压缩或解压缩时保留输入文件(不删除这些文件)。-s --small# 在压缩、解压缩及检查时减少内存用量。采用一种修正的算法进行压缩和测试,每个数据块仅需要 2.5 个字节。这意味着任何文件都可以在 2300k# 的内存中进行解压缩, 尽管速度只有通常情况下的一半。# 在压缩时,-s将选定 200k 的块长度,内存用量也限制在 200k 左右, 代价是压缩率会降低。 总之,如果机器的内存较少(8兆字节或更少),# 可对所有操作都采用-s选项。参见下面的内存管理。-q --quiet# 压制不重要的警告信息。属于 I/O 错误及其它严重事件的信息将不会被压制。-v --verbose# 详尽模式 -- 显示每个被处理文件的压缩率。 命令行中更多的 -v 选项将增加详细的程度, 使 bzip2 显示出许多主要用于诊断目的信息。-L --license -V --version# 显示软件版本,许可证条款及条件。-1 to -9# 在压缩时将块长度设为 100 k、200 k ..  900 k。 对解压缩没有影响。参见下面的内存管理。-- # 将所有后面的命令行变量看作文件名,即使这些变量以减号"-"打头。 可用这一选项处理以减号"-"打头的文件名, 例如:bzip2 -- -myfilename.--repetitive-fast --repetitive-best# 这些选项在 0.9.5 及其以上版本中是多余的。 在较早的版本中,这两个选项对排序算法的行为提供了一些粗糙的控制,有些情况下很有用。 0.9.5# 及其以上版本采用了改进的算法而与这些选项无关。


实例: 压缩文件file3.txt

实例: 强制压缩文件file

实例:指定压缩率

语法格式为:bunzip2[选项] 参数

bunzip2命令 解压缩由bzip2指令创建的”.bz2"压缩包。对文件进行压缩与解压缩。此命令类似于“gzip/gunzip”命令,只能对文件进行压缩。对于目录只能压缩目录下的所有文件,压缩完成后,在目录下生成以“.bz2”为后缀的压缩包。bunzip2其实是bzip2的符号链接,即软链接,因此压缩解压都可以通过bzip2实现。

-f或--force:解压缩时,若输出的文件与现有文件同名时,预设不会覆盖现有的文件;
-k或——keep:在解压缩后,预设会删除原来的压缩文件。若要保留压缩文件,请使用此参数;
-s或——small:降低程序执行时,内存的使用量;
-v或——verbose:解压缩文件时,显示详细的信息;
-l,--license,-V或——version:显示版本信息。


实例:解压缩文件


xz、unxz命令

语法格式为:xz[选项] 参数

压缩文件后,源文件消失

xz命令 XZ Utils 是为 POSIX 平台开发具有高压缩率的工具。它使用 LZMA2 压缩算法,生成的压缩文件比 POSIX 平台传统使用的 gzip、bzip2 生成的压缩文件更小,而且解压缩速度也很快。最初 XZ Utils 的是基于 LZMA-SDK 开发,但是 LZMA-SDK 包含了一些 WINDOWS 平台的特性,所以 XZ Utils 为以适应 POSIX 平台作了大幅的修改。XZ Utils 的出现也是为了取代 POSIX 系统中旧的 LZMA Utils。

-z, --compress    # 强制压缩
-d, --decompress, --uncompress# force decompression
-t, --test        # 测试压缩文件的完整性
-l, --list        # 列出有关.xz文件的信息
-k, --keep        # 保留(不要删除)输入文件
-f, --force       # 强制覆盖输出文件和(解)压缩链接
-c, --stdout, --to-stdout# 写入标准输出,不要删除输入文件
-0 ... -9         # 压缩预设; 默认为6; 取压缩机*和*# 使用7-9之前解压缩内存使用量考虑在内!
-e, --extreme     # 尝试通过使用更多的CPU时间来提高压缩比;# 要求不影响解压缩存储器
-T, --threads=NUM # 最多使用NUM个线程; 默认值为1;  set to 0# 设置为0,使用与处理器内核一样多的线程
-q, --quiet       # 抑制警告; 指定两次以抑制错误
-v, --verbose     # 冗长; 指定两次更详细
-h, --help        # 显示这个简洁的帮助并退出
-H, --long-help   # 显示更多帮助(还列出了高级选项)
-V, --version     # 显示版本号并退出


实例:压缩文件

实例:压缩dir2目录下文件
不能压缩目录

显示压缩文件的内容:zcat、zless、bzcat、bzless
不解压显示压缩文件的内容:zcat、zless、bzcat、bzless。


语法格式为:unxz[选项] 参数

实例:解压文件


tar归档命令

格式:tar [选项] 打包文件名 被打包的源文件或目录列表.

-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。

将许多文件一起保存至一个单独的磁带或磁盘归档,并能从归档中单独还原所需文件。

tar命令 可以为linux的文件和目录创建档案。利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。

首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。

为什么要区分这两个概念呢?这源于Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)。

-A, --catenate, --concatenate   追加 tar 文件至归档
-c, --create               创建一个新归档
-d, --diff, --compare      找出归档和文件系统的差异--delete               从归档(非磁带!)中删除
-r, --append               追加文件至归档结尾
-t, --list                 列出归档内容--test-label           测试归档卷标并退出
-u, --update               仅追加比归档中副本更新的文件
-x, --extract, --get       从归档中解出文件


tar打包时排除:
–exclude=PATTERN 排除以 PATTERN 指定的文件
-X, --exclude-from=FILE 排除 FILE 中列出的模式串


实例: 使用gzip方式对文件进行压缩,并指定压缩名为 tar_gzip.tar.gz

实例: 使用bzip2方式对文件夹进行压缩,并指定压缩名为 tar_bzip2.tar.bz2

实例: 使用xz方式对文件进行压缩,并指定压缩名为 tar_xz.tar.xz

实例: 新建文件file1.txt,file2.txt,file3.txt对文件file1.txt和file2.txt,进行压缩(使用gzip方式),排除file3.txt(即不对file3进行压缩)并指定压缩名为tar_file.tar.gz

实例: 新建文件file4.txt,将file4.txt添加到tar_file.tar(自己创建下)中

实例: 查看压缩包tar_file.tar.gz有哪些文件及目录(不解压,只查看)

实例: 解压tar_gzip.tar.gz到指定目录tar_test(没有这个目录就创建)

解压tar_xz.tar.xz


文件上传下载

sftp是一个交互式文件传输程式
它类似于ftp传输协议,属于ssh, 但它进行加密传输,相对FTP来讲有更高的安全性。
sftp用法
如果有服务器的端口不是默认的22,请在sftp后面加-P 端口号 即可。

#sftp root@223.6.6.6
The authenticity of host ‘223.6.6.6 (223.6.6.6)’ can’t be established. ECDSA key fingerprint is SHA256:Hl/dKTFzL4lOlF8DIG5itaV4OAsZunC2AWlFGLjLfsg. Are you sure you want to continue connecting (yes/no)? yes【输入yes回车】 Warning: Permanently added ‘223.6.6.6’ (ECDSA) to the list of known hosts. root@223.6.6.6’s password:【输入223.6.6.6的root密码并回车】 Connected to 223.6.6.6. sftp

将223.6.6.6服务器文件下载到223.5.5.5的home目录;
sftp> get /var/www/renwole.txt /home/将223.5.5.5服务器文件上传到223.6.6.6服务器的mnt目录;
sftp> put /home/renwole.txt /mnt/你如果不知道远程主机的目录是什么样, ls命令可以列出223.6.6.6服务器的当前目录列表。例如:
sftp> ls //和查看本地操作命令一样 sftp> pwd //查询223.6.6.6的当前工作目录改变路径可以用cd ,改变本机路径可以用 cd.. 例如;
sftp> cd如果想退出,例如:
# exit //退出机器,返回你原始机器界面。


实例:通过sftp的 get和put命令,将windows上的windows.txt推送到linux上
通过sftp的 get和put命令,将linux上的linux.txt推送到windows上


scp具有和ssh一样的验证机制,从而可以实现2台机器安全的远程拷贝文件

scp可以概括为:scp -P 端口 文件路径 用户名@主机地址:远程目录

如果想拷贝本地文件到另外一台ssh终端,可以使用以下命令;

#scp /renwole/mariadb.tar.gz root@223.6.6.6:/renwole123/ root@223.6.6.6’s password:【输入密码回车】 mariadb.tar.gz 8% 37MB 1.3MB/s 05:29 ETA

如果你反过来操作,把远程主机的文件拷贝到当前系统,操作命令以下;

#scp root@223.6.6.6:/renwole123/mariadb.tar.gz /renwole

如果你想拷贝文件夹以及文件夹内的所有文件,就加参数 -r 如果你的端口号不是22,那么需要在scp后加个 -P (区分大小写)端口号。建议加-C选项,因为这样可以启用SSH的压缩功能;传输速度更快,例如

#scp -P 6632 -C /renwole/mariadb root@223.6.6.6:/renwole123/


rz命令与sz命令

1.rz命令

rz命令(Receive ZMODEM),使用ZMODEM协议,将本地文件批量上传到远程Linux/Unix服务器,注意不能上传文件夹。

当我们使用虚拟终端软件,如Xshell、SecureCRT或PuTTY来连接远程服务器后,使用rz命令可以上传本地文件到远程服务器。输入rz回车后,会出现文件选择对话框,选择需要上传文件,一次可以指定多个文件,上传到服务器的路径为当前执行rz命令的目录。

此外,可以在虚拟终端软件设置上传时默认加载的本地路径和下载的路径。如SecureCRT软件 ->Options -> session options -> X/Y/Zmodem 下可以设置上传和下载的目录。

命令格式:rz [选项]

选项说明:
-+, --append:将文件内容追加到已存在的同名文件
-a,--ascii:以文本方式传输
-b, --binary:以二进制方式传输,推荐使用
--delay-startup N:等待N秒
-e, --escape:对所有控制字符转义,建议使用
-E, --rename:已存在同名文件则重命名新上传的文件,以点和数字作为后缀
-p, --protect:对ZMODEM协议有效,如果目标文件已存在则跳过 -
q, --quiet:安静执行,不输出提示信息
-v, --verbose:输出传输过程中的提示信息
-y, --overwrite:存在同名文件则替换
-X, --xmodem:使用XMODEM协议
--ymodem:使用YMODEM协议
-Z, --zmodem:使用ZMODEM协议
--version:显示版本信息
--h, --help:显示帮助信息

2.sz命令

sz命令(Send ZMODEM)通过ZMODEM协议,可将多个文件从远程服务器下载到本地。注意不能下载文件夹,如果下载文件夹,请先打包再下载

rz [选项] [filelist]

命令选项基本与rz相同,请参考上文rz的命令选项或者sz的manual,或者运行命令sz -h查看。

下载多个文件
sz file1 file2 file3
sz和rz命令在实际应用开发中非常实用,有时候我们会经常跑脚本统计数据,需要上传和下载一些大数
据量的数据,这时候这两个命令就非常有用了
有的机器可能不能使用 rz/sz 命令,这个时候我们就需要安装 lrzsz
执行以下命令:

yum install lrzsz -y


实例:使用rz上传文件windows.txt到linux上
使用sz下载文件linux.txt到windows上

环境变量

变量可分为两类:环境变量(全局变量)和普通变量(局部变量)

环境变量也可称为全局变量,可以在创建它们的Shell 及其派生出来的任意子进程 Shell 中使用,环境变量又可分为自定义环境变量和 bash 内置的环境变量。

普通变量也可称为局部变量,只能在创建它们的Shell函数或Shell脚本中使用,普通变量一般由开发者在开发脚本程序时创建。

1.环境变量
环境变量一般是指用 export 内置命令导出的变量,用于定义 Shell 的运行环境,保证 Shell 命令的正确执行,Shell 通过环境变量来确定登录用户名、命令路径、终端类型、登录目录等,所有的环境变量都是系统全局变量,可用于所有子进程中,这包括编辑器、Shell 脚本和各类应用。

环境变量可以在命令行中设置和创建,但用户退出o命令时这些变量值就会丢失,因此,如果希望永久保存环境变量,可在用户家目录下的 .bash_profile.bashrc(非用户登录模式特有,例如远程SSH)文件中,或者全局配置/etc/bashrc (非用户登录模式特有,例如远程 SSH)或 /etc/profile文件中定义,在将环境变量放入上述的文件中后,每次用户登录时这些变量都将被初始化。

按照系统规范,所有环境变量的名字均采用大写形式,在将环境变量应用于用户进程程序之前,都应该用 expirt命令导出定义,例如:正确的环境变量定义方法为exprot OLDGIRL=1

(1)设置环境变量

如果想要设置环境变量,就要在给变量赋值之后或在设置变量时使用 export 命令,另外,除了 export命令。带 -x 选项的 declare 内置命令也可以完成同样的功能(注意:此处不要再前面加 $)

export 变量名=value
变量名=value ; export
变量名 declare -x 变量名=value

(2)设置环境变量(永久生效)

用户的环境变量配置:

[root@www ~]$ ls /root/.bashrc # 推荐再此文件中优先设置
/root/.bashrc
[root@www ~]$ ls /root/.bash_profile
/root/.bash_profile

编辑/root/.bashrc并设置环境遍历data=123

source命令:编辑了.bashrc,其实配置的东西,并没有生效,使用source命令让它生效

source作用:执行文件并从文件中加载变量及函数到执行环境

全局的环境变量配置:

[root@www ~]$ /etc/profile
[root@www ~]$ /etc/bashrc
[root@www ~]$ /etc/profile.d/

编辑/etc/profile

若要在登陆后初始化或显示加载内容,则把脚本文件放在 /etc/profile.d/ 下即可(无需加载执行权限)

用 env 或 set 显示默认的环境变量

用 unset 消除本地变量和环境变量

并不是永久消除,重启依然存在

环境变量初始化与对应文件的生效顺序

在登录Linux系统并启动一个 bash shell 时,默认情况下 bash 会在若干个文件中查找环境变量的设置,这些文件可统称为系统环境文件,bash 检查的环境变量文件的情况取决于系统运行 Shell 的方式,系统运行 Shell 的方式有 3 种。

(1)通过系统用户登录后默认运行的 Shell
(2)非登录交互式运行 Shell
(3)执行脚本运行非交互式 Shell

变量的赋值,一般有五种写法:

变量名一般是由字母、数字、下划线组成的,可以以字母或下划线开

name=value
name1='value'
name_2="value"
_name_3=`cmd`
_na_me_4=$(cmd)

命令别名

alias 别名=’原命令 -选项/参数’

别名是命令的快捷方式。为那些需要经常执行,但需要很长时间输入的长命令创建快捷方式很有用。

查看设置的别名:alias

删除别名:unalias 别名

别名永久化(强烈推荐)
alias的作用仅在该次登入的操作,即输入一次alias后,这个修改只在当前的Shell生效。如果重新开启一个 Shell,或者重新登录,则这些alias将无法使用。好在linux中提供alias永久化的方法:
<1>.若要每次登入就自动生效别名,则把别名加在/etc/profile或~/.bashrc中。然后# source ~/.bashrc
<2>.若要让每一位用户都生效别名,则把别名加在/etc/bashrc最后面,然后# source /etc/bashrc

快捷键使用

history查阅命令历史记录
查询执行过的历史命令:
利用向上或向下光标键来进行查询。
第二种办法是执行“history [n]” 命令来查询。

history(选项)(参数)
-c           清空历史列表。
-d offset    根据offset删除记录。如果是正数则表示offset位置的记录,如果为负数则表示从结尾向前offset位置的记录。
-a           将当前终端的历史记录行添加到历史记录文件。
-n           将尚未从历史文件中读取的历史行追加到当前历史列表中。
-r           读取历史文件,并将其内容附加到历史列表中。
-w           将当前历史记录列表附加到历史记录文件中并且附加它们到历史列表中。
-p           在每个arg上执行历史记录扩展并在标准输出上显示结果,而不将结果存储在历史记录列表中。
-s           将每个arg作为单个条目附加到历史记录列表。

#使用! 执行历史命令。
#!number 执行第几条命令
!! #执行上一条命令 !?string? 执行含有string字符串的最新命令

注意:如想查询某个用户在系统上执行了什么命令,可以使用root用户身份登录系统,检查Home目录下的用户主目录下的“.bash_history”文件,该文件记录了用户所使用的命令和历史信息。

5、断开长命令行

对于符号比较多的长命令,尽管系统在到达行尾时会自动将长命令行换到下一行,但也可以使用反斜杠“\”再加回车,将一个较长的命令分成多行表达,增强命令的可读性,换行后系统自动显示提示符“>”,表示正在输入一个长命令,此时可继续在新行上输入命令的后续部分。

6、在一行输入多个命令

若要在一行上输入和执行多条较短的命令,可使用分号来分隔命令

7、快捷方式

Ctrl+a 移动到当前行的开头
Ctrl+e 移动到当前行的结尾
Ctrl+l 清屏
Ctrl+u 剪切命令行中光标所在处之前的所有字符(不包括自身)
Ctrl+k 剪切命令行中光标所在处之后的所有字符(包括自身)
Ctrl+R 可以使用该快捷键来搜索历史命令 引用上一条命令的最后一个参数 方法1:
!$ 方法
2:Alt+.
方法3:Esc,.

xshell中无法使用alt+.的处理方法:

  1. 打开会话属性
    默认快捷键 alt + p
  2. 进入 终端 -> 键盘 页 3. 找到 元键仿真
  3. 勾选 将 左ALT 用作 Meta 键 5. 保存设置
    结果
  4. 命令行的 alt 快捷键 可以通过 左alt 触发
  5. xshell 的 alt 快捷键, 可以通过 右alt 触发
  6. alt 不再冲突

引号使用

Linux中的用户和组的分类

1.Linux下的用户可以分为三类:
超级用户——用户名为root,它具有一切权限,只有进行系统维护(例如:建立用户等)或其他必要情形下才用超级用户登录,以避免系统出现安全问题。
系统用户(伪用户)——是Linux系统正常工作所必需的内建的用户。
主要是为了满足相应的系统进程对文件属主的要求而建立的,例如:bin、daemon、adm、lp等用户。
系统用户不能用来登录.
普通用户——是为了让使用者能够使用Linux系统资源而建立的,我们的大多数用户属于此类。

2.Linux中的组有以下三种:
基本组(私有组):建立账户时,若没有指定账户所属的组,系统会建立一个和用户名相同的组,这个组就是基本组,基本组只容纳一个用户。当把其他用户加入到该组中,则基本组就变成了附加组。
附加组(公有组):可以容纳多个用户,组中的用户都具有组所拥有的权利。
系统组:一般加入一些系统用户。

用户名和组名:也有唯一, 除了系统自带不能更改,其他组,定义的时候,可以根据实际情况来定义。
3.Linux中用户和用户组的配置文件
每个用户都有一个UID数值:
超级用户的UID——0
系统用户的UID——1~999
普通用户的UID——≥1000
在Linux中,用户账号、密码、用户组信息和用户组密码均是存放在不同的配置文件中的。

1)用户账号文件——/etc/passwd
passwd 是一个文本文件,用于定义系统的用户账号,由于所有用户都对passwd有读权限,所以该文件
中只定义用户账号,而不保存口令。
passwd文件中:
每行由7个字段组成,字段之间用“:”分隔,其格式如下: 账号名称:密码:UID:GID:个人资料:主目录:Shell

字段说明:
账号名称:用户登录Linux系统时使用的名称。
密码:以前是以加密格式保存密码的位置,现在密码保存在/etc/shadow文件中,此处只是密码占位符“x”或“*”。若为“x”,说明密码经过了shadow的保护

UID:用户的标识,是一个数值,用它来区分不同的用户
GID:用户所在基本组的标识,是一个数值,用它来区分不同的组,相同的组具有相同的GID。
个人资料:可以记录用户的完整姓名、地址、办公室电话、家庭电话等个人信息。
主目录:类似Windows 的个人目录,通常是/home/username,这里username是用户名,用户执行“cd~”命令时当前目录会切换到个人主目录。
Shell:定义用户登录后激活的Shell,默认是Bash Shell

root:x:0:0:root:/root:/bin/bash
用户账号的7个信息,用:分隔的
root:用户名
x:占位符,证明你的密码是经过shadow保护的
0:uid,用户的id
0:gid, 用户组id
root: 个人资料,完整的姓名,邮箱,地址等等
/root: 代表的是用户的家目录 /root, 其他普通用户/home/用户名
/bin/bash: 指的是你用户登录之后默认使用的shell类型/sbin/nologin: 指定shell类型是/sbin/nologin=> 不登录的

2)用户密码文件——/etc/shadow
每行定义了一个用户信息,行中各字段用“:”隔开,其格式如下:
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
为提高安全性,用户真实的密码采用MD5加密算法加密后,保存在配置文件中。只有root用户可以读取。
/etc/shadow文件中的每行9个字段的含义分别为

root:$6$feZtfp/lZdDm4FA6$p2n8R6mtYZFxxExxj1DDEndPVTVEyZfA3F.9Q8ypfirSQeBnZfqRvpIuwDYKcXQZ5sSR.n6lI3mImwvCY0.KA1:18843:0:99999:7:::==用户密码文件中,存储9个字段的信息==root: 用户名
*/加密后的密码:用户的密码 redhat=》加密后的密码, *:该账号不能用于登录!!: 用户已经被锁定
18843:代表的是最后一次更改密码的日期,提供一个整数。是距离Linux系统世纪元年的天数
0:最小时间间隔,密码在多少天内不能进行更改,0表示不限制。
99999:最大时间间隔:指的是密码必须在多少天之后进行更改
7:警告时间:代表的是提前多少天提示用户密码即将过期, 0:表示不提示
空: 不活动时间,密码过期多少天后禁用此用户
空: 失效时间,密码失效日期,设置是天数,以Linux系统世纪原年1970年1月1日作为标准默认为空,标识永久使用
空: 保留未使用
Linux 查看用户上次修改密码的日期
date -u -d "1970-01-01 UTC $((18256 * 86400 )) seconds"2019年 12月 26日 星期四 00:00:00 UTC

3)用户组账号文件——/etc/group
系统中的每一个文件都有一个用户和一个组的属主。使用“ls –l”命令可以看到每一个文件的属主和组。
系统中的每个组,在/etc/group文件中有一行记录
任何用户均可以读取用户组账户信息配置文件。
用户组的真实密码保存在/etc/gshadow配置文件中。
group文件字段说明:


用户登录Linux系统的过程

Linux系统采用纯文本文件来保存账号的各种信息,其中最重要的文件有:
/etc/passwd/etc/shadow/etc/group
Linux用户登入系统过程实质是系统读取、核对这几个文件的过程,其过程如下:
1.出现登录系统的画面提示输入账号,输入账号与密码;

2.Linux先寻找/etc/passwd里面是否有该账号名,若没有则退出登录,若有则将该账号对应的UID(User ID)与GID(Group ID)、用户主目录、shell设定一并读出;

3.Linux 进入/etc/shadow 里面找出登录账号与UID相对应的记录,然后核对一下刚刚输入的密码与此文件的密码是否符合;以上核定没有问题,用户正式进入系统。

用户管理


添加新用户——useradd命令

命令格式: useradd [选项]

常用选项:
-c 注释信息——设定与用户相关的说明信息(如,真实姓名、邮箱地址等)。
-d 目录——设定用户的家目录(默认为/home/用户名)。
-e YYYY-MM-DD——设置用户的失效日期,此日期后将不能使用该账号。
-f 天数——指定密码到期后多少天账号被禁用,若指定为0,则表示账号到期后被立即禁用;若指定为-1,则表
示账号过期后不被禁用(即密码永不过期)。
-g 组名或GID号——为用户指定所属的基本组,该组在指定时必须已存在。
-G 组名或GID号列表——为用户指定所属的附加组,各组在指定时已存在,附加组可以有多个,组之间用“,”
分隔。
-M——不创建用户家目录。
-N——不创建与用户名同名的基本组。
-p 密码——指定用户的登录密码。
-s shell名——指定用户登录后使用的Shell,默认是bash。
-u 用户号——设置账号的UID,默认是已有用户的最大UID加1。如果同时有-o选项,则可以重复使用其他
用户的标识号


示例:新建一个用户zhang3,查看passwd、shadow文件中的变化,并确认该用户的家目录中的初始配置文件。


示例1:新建一个用户li4,并指定用户家目录为/usr/li4

useradd -d /usr/li4 li4


示例2:新建一个用户wang5,指定其UID为1005、登录Shell为/bin/bash、密码为123.com,账号永不过期

注意:这里设置的密码不能登录

2.为用户账号设置密码——passwd命令

Linux的账户必须设置密码后,才能登录系统

命令格式:passwd [账户名]

passwd命令 用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。

常用选项:
-d——清空指定用户的口令。这与未设置口令的账户不同,未设置口令的账户无法登录系统,而口令为空的
账户可以。
-f——强迫用户下次登录时必须修改口令。
-i——口令过期后多少天停用账户。
-l——锁定(停用)用户账户。
-n——指定口令的最短存活期。
-S——显示账户口令的简短状态信息(是否被锁定)。
-u——解锁用户账户。


示例1:并为zhang3用户设置密码为abcd

3.修改用户属性——usermod命令


命令格式:usermod [选项] username

usermod命令 用于修改用户的基本信息。usermod 命令不允许你改变正在线上的使用者帐号名称。当 usermod 命令用来改变user id,必须确认这名user没在电脑上执行任何程序。你需手动更改使用者的 crontab 档。也需手动更改使用者的 at 工作档。采用 NIS server 须在server上更动相关的NIS设定。

在这里插入代码片-c<备注>:修改用户帐号的备注文字;
-d<登入目录>:修改用户登入时的目录,只是修改/etc/passwd中用户的家目录配置信息,不会自动创建新的家目录,通常和-m一起使用;
-m<移动用户家目录>:移动用户家目录到新的位置,不能单独使用,一般与-d一起使用。
-e<有效期限>:修改帐号的有效期限;
-f<缓冲天数>:修改在密码过期后多少天即关闭该帐号;
-g<群组>:修改用户所属的群组;
-G<群组>;修改用户所属的附加群组;
-l<帐号名称>:修改用户帐号名称;
-L:锁定用户密码,使密码无效;
-s<shell>:修改用户登入后所使用的shell;
-u<uid>:修改用户ID;
-U:解除密码锁定。


示例:将用户wang5的名称修改为wangwu,并暂停使用该账号。

4.删除用户账号——userdel命令


命令格式:userdel [-r] 账户名

userdel命令 用于删除给定的用户,以及与用户相关的文件。若不加选项,则仅删除用户帐号,而不删除相关文件。

-f:强制删除用户,即使用户当前已登录;
-r:删除用户的同时,删除与用户相关的所有文件。


示例:删除wangwu账户

5.用户间切换——su(substitute user)命令


命令格式:su [用户名]

从root用户切换到任何用户不需要密码验证,而从普通用户到root或其他普通用户均需要输入目标用户的
密码且验证成功后才可切换。
su命令和su -命令区别就是:

su只是切换了root身份,但Shell环境仍然是普通用户的Shell;而su -连用户和Shell环境一起切换成root身份了。


6.控制用户对系统命令的使用权限–sudo命令


命令格式:sudo [用户名]

sudo命令 用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。

配置sudo的2种方式:

visudo 建议使用,会做语法检查

vim /etc/sudoers

-b:在后台执行指令;
-E:继承当前环境变量
-h:显示帮助;
-H:将HOME环境变量设为新身份的HOME环境变量;
-k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;。
-l:列出目前用户可执行与无法执行的指令;
-p:改变询问密码的提示符号;
-s<shell>:执行指定的shell;
-u<用户>:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份;
-v:延长密码有效期限5分钟;
-V :显示版本信息。

sudo配置文件/etc/sudoers

(1)别名规则
别名规则的定义格式:
Alias_Type NAME = item1, item2, …
或者
Alias_Type NAME = item1, item2, item3 : NAME = item4, item5
其中:
Alias_Type是指别名类型,包括四种:Host_Alias、User_Alias、Runas_Alias和Cmnd_Alias。NAME就是别名;

NAME的命名是包含大写字母、下划线以及数字但必须以一个大写字母开头,比如ADMIN、SYS1和NETWORKING都是合法的,而sYS和6ADMIN是非法的;

① Host_Alias
定义主机别名的例子如下:
Host_Alias HT1=localhost,ztg,192.168.0.0/24
主机别名是HT1,“=”号右边是成员。
Host_Alias HT1= localhost,ztguang,192.168.10.0/24:HT2=ztg2,ztg3
定义了两个主机别名HT1和HT2,别名之间用“:”号隔开。

② User_Alias
用户别名,别名成员可以是用户,用户组(前面要加%号)。
User_Alias ADMIN=ztg,ztguang
定义用户别名ADMIN,有两个成员ztg和ztguang,这两个成员要在系统中确实存在。
User_Alias PROCESSES= ztg1
定义用户别名PROCESSES,有一个成员ztg1,这个成员要在系统中确实存在。

③ Runas_Alias
用来定义runas别名,这个别名是指sudo允许切换到的用户;
Runas_Alias RUN_AS = root
定义runas别名RUN_AS,有一个成员root。

④ Cmnd_Alias
定义命令的别名,这些命令必须是系统存在的文件,要用绝对路径,文件名可以用通配符表示。
Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig
Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall

(2)授权规则
授权规则的定义格式:
授权用户 主机=命令动作
或者
授权用户 主机=[(切换到哪些用户或用户组)] [是否需要密码验证] 命令1,[(切换到哪些用户或用户组)] [是否需要密码验证] [命令2],[(切换到哪些用户或用户组)] [是否需要密码验证] [命令3] …

这三个要素缺一不可,但在动作之前也可以指定切换到特定用户下,在这里指定切换的用户要用( )号括起来,如果不需要密码直接运行命令的,应该加
NOPASSWD:参数,但这些可以省略。

扩展:
sudo记录用户输入密码时间。默认单位是分钟。
$ sudo visudo
此命令将在nano编辑器中打开/ etc / sudoers文件。
找到以下行:
Defaults env_reset
并如下更改:
Defaults env_reset, timestamp_timeout=30

ALL:所有的主机
=
(ALL):代表的是你要切换到哪些用户或用户组: ALL代表的所有的用户或用户组
ALL: 代表所有的命令

主机名
Host_Alias FILESERVERS = fs1, fs2
Host_Alias MAILSERVERS = smtp, smtp2
Host_Alias REDHATSERVER = rhcsa, rhce, rhca

用户别名
User_Alias ADMINS = jsmith, mikem
User_Alias RHCSA = rhcsa, tesuser1, testuser2

命令别名
Cmnd_Alias NETWORKING = /bin/ping
Cmnd_Alias NETWORKING = /sbin/route, /bin/ping, /sbin/ifconfig

rhcsa Host_Alias=(RHCSA) NOPASSWD NETWORKING
=>我们rhcsa,rhce,rhca这个主机上的rhcsa用户使用sudo命令可以切换rhcsa,testuser1,testusert2
可以执行的命令有 /sbin/route, /bin/ping,/sbin/ifconfig
授权用户 主机=命令
授权用户别名 主机别名=命令别名
授权用户 主机=[(切换到哪些用户或用户组)] [是否需要输入密码] 命令1
[(切换到哪些用户或用户组)] [是否需要输入密码] 命令2
[(切换到哪些用户或用户组)] [是否需要输入密码] 命令3

[(切换到哪些用户或用户组)] [是否需要输入密码] 命令n



用户组管理


创建用户组——groupadd命令

命令格式: groupadd [-r] 用户组名称

-g GID——指定新用户组的组标识号(GID),默认值是已有的最大的GID加1。
-r——建立一个系统组账号,与-g不同时使用时,则分配一个1~999的GID。
-K:覆盖配置文件“/ect/login.defs”;
-o:允许添加组ID号不唯一的工作组。


添加/删除组成员——gpasswd命令

命令格式: gpasswd [选项] [用户] [组]

只有root用户和组管理员才能够使用这个。

gpasswd命令 是Linux下工作组文件/etc/group和/etc/gshadow管理工具。

-a:添加用户到组;
-d:从组删除用户;
-A:指定管理员;
-M:指定组成员和-A的用途差不多;
-r:删除密码;
-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组。


修改用户组属性——groupmod命令

命令格式: groupmod 选项 用户组

groupmod命令 更改群组识别码或名称。需要更改群组的识别码或名称时,可用groupmod指令来完成这项工作。

-g GID——为用户组指定新的组标识号。
-n 新用户组——将用户组的名字改为新名字修改用户组的名称和用户组的GID值。
-o:重复使用群组识别码;


删除组账户——groupdel命令

命令格式: groupdel 用户组名

groupdel命令 用于删除指定的工作组,本命令要修改的系统文件包括/ect/group和/ect/gshadow。若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。


用户和组账户的信息显示

例:创建名为 sysmgrs 的组


例:创建用户 natasha 同时指定sysmgrs作为natasha的附加组

例:创建用户 harry 同时指定 sysmgrs作为harry的附加组

例:创建用户 sarah 指定shell类型为/sbin/false(无权访问系统上的交互式 shell) 且不是 sysmgrs 的成员

例:设置natasha 、 harry 和 sarah 的密码应当都是 123


Linux学习笔记(四)相关推荐

  1. Linux学习笔记四:OTG方式为itop4412烧写安卓系统

    目录 一.概述 二.烧写前准备 三.分区格式化 四.烧写文件 一.概述 经过前面的笔记一.二.三,已经可以在Ubuntu进行Linux应用开发的学习.嵌入式的学习,基本还是要在ARM上运行.我主要是根 ...

  2. Linux学习笔记(四)之查看登录用户

    1.在多用户操作系统中系统管理员为了系统管理的需要和系统安全,通常需要了解当前是什么用户登录系统.有多少用户登录系统.这些用户在做什么.普通用户之间如果要进行通信交流时,也需要知道对方是否已经登录上系 ...

  3. Linux学习笔记(四)账号管理之管理用户账号

    1.管理用户账号:每一个登录Linux操作系统的用户在系统中都应该有其对应的注册账号,这些账号记录了用户的信息,如用户名.登录口令.用户目录所在位置.所用的shell.建立时间.权限等信息.其中用户账 ...

  4. Linux学习笔记(四)之用户登录

    1.Linux是一个网络操作系统,作为多用户,多任务的操作系统,其系统资源是所有用户共享的.任何要使用系统资源者必须先在系统内登记,注册,即开设用户账号,该账号又包含用户名,口令,所用的shell,使 ...

  5. Linux学习笔记四--Bash Shell

    查看某一命令是否是来自于外部命令还是内置于bash中:type [-tpa] name      也可用来查找命令,如:type -p touch 有/bin/touch:type -p vbird无 ...

  6. Linux学习笔记(四)-Linux常用命令

    常用命令格式 #command(指令) [-options] parameter1(参数1) parameter2(参数2)... 大小写区分,tab自动补全 Shell特殊字符 通配符 管道Pipe ...

  7. linux学习笔记四:安装lsusb

    yum install usbutils lsmod |grep hci modprobe usb-storage 转载于:https://blog.51cto.com/8738650/1742058

  8. kali linux学习笔记(四) : 网络端口大全介绍

    端口大全介绍 2端口:管理实用程序 3端口:压缩进程 5端口:远程作业登录 7端口:回显 9端口:丢弃 11端口:在线用户 13端口:时间 17端口:每日引用 18端口:消息发送协议 19端口:字符发 ...

  9. 大数据开发工程师基本功修炼之史上最全Linux学习笔记(建议)

    我正在参加年度博客之星评选,请大家帮我投票打分,您的每一分都是对我的支持与鼓励. 2021年「博客之星」参赛博主:Maynor大数据 (感谢礼品.红包免费送!) https://bbs.csdn.ne ...

最新文章

  1. k means聚类算法_一文读懂K-means聚类算法
  2. linux的yum update命令
  3. mfc使用cef源代码实现_如何获得微信小游戏跳一跳源码以及源代码组合包括哪些...
  4. mybatis分页的一种解决方案
  5. 机器学习介绍jc01
  6. ASP.NET之Ajax系列(三)
  7. 对WITH和from(select ...)的一点比较
  8. SQL语句中常用关键词及其解释如下.pdf
  9. EL表达式+JSTL,forEach的两种用法
  10. 构建samba文件共享服务器
  11. 当U盘内的文件夹都成了1KB的快捷方式的解决方法
  12. 关于opencv标定的一些疑问,首先声明这篇文章转载于纸异兽,由于暂时联系不到他本人,只好请教各位了。有些问题想请教,各位大神可以留下联系方式帮我解决,万分感谢...
  13. 【收藏】夜光遥感数据下载网址及方式
  14. 【学习随记】Word域代码相关
  15. 系列学习 Lambda 表达式之第 2 篇 —— JDK1.8 的 Stream 流基本使用
  16. 汽车之家口碑数据的爬虫
  17. iOS文字颜色渐变透明
  18. iGrimaceV8 V8在线威锋源apt.so/tuzhurenv8手机直接下载安装教程图:
  19. Flash按钮操作(画面暂停与播放)
  20. rails相当于java中的什么_Rails中的ERB中的%,%=,%#和-%有什么区别?

热门文章

  1. abb式c语言,ABB机器人是用什么语言编程的? ——ABB机器人
  2. 《内网安全攻防:渗透测试实战指南》读书笔记(八):权限维持分析及防御
  3. 云计算机手机apple,云电脑IOS版怎么在苹果IOS手机上使用教程
  4. python显示输入法候选框_CentOS6.4 中文输入不显示候选框问题解决方案
  5. 中文地址 识别 切分
  6. php获取小米手环数据,小米运动App数据提取
  7. python 小于号和大于号同时使用
  8. 方舟建立服务器显示cmd,家庭电脑建方舟服务器
  9. 金蝶开发中根据实体查找bostype,再根据bostype规则,生成对应的id
  10. 试题 算法训练 预测身高