kaixin
Published on 2023-06-19 / 25 Visits
0

Linux基础命令一

Linux 命令

1.ls

列出目录的内容
​
命令:
    ls 参数 目录(无目录,就是当前目录)
参数:
    ls -l   # 每一行列出一个文件,并且显示文件的权限等内容
    ls -a   # 列出目录下的全部内容(包含隐藏文件 . )
    ls -d   # 列表当前目录
    ls -t   # 按修改时间排序,最新优先
    ls -r   # 逆序排列
    ls -h   # 显示目录下的文件大小以K、M、G等单位显示文件大小
    ls -R   # 递归显示当前目录子目录的全部内容
    ls -S   # 目录下按照文件大小排序,从大到小
    ls -i   # 显示文件的inode号

2.cd

进入某个文件目录作为工作目录,切换目录
​
命令:
    cd 目录
其他:
    cd / # 进入文件根目录
    cd ~ # 进入当前用户的家目录
    cd .. # 返回上一级目录

3.pwd

查看当前所在目录的路径
​
命令:
    pwd
​
告知你当前在那个完整目录

4.cat

查看当前文件中内容是什么
​
命令:
    cat 参数 文件路径
参数:
    cat -n # 显示行号
    cat -b # 显示行号,但不对空白行显示行号
    cat -E # 在每行结束处显示 $

5.vi

文本编辑器,对文件进行编辑
​
命令:
    vi 文件路径

6.cp

拷贝命令
​
命令:
    cp 需要拷贝文件/文件夹 拷贝到新的目录/
​
参数:
    cp -r # 对文件夹进行拷贝
    cp -p # 保留文件原属性,包含权限以及属主属组
    cp -i # 在拷贝前,提示确定,防止重名覆盖

7.mv

将源文件重命名为目标文件,或将源文件移动至指定目录。
​
命令:
    mv 源文件名称 新名称
    mv 源文件名称 新目录
​
参数:
    mv -u # 仅在目标目录中不存在同名文件或该文件更新时才执行移动操作
    mv -i # 在移动前,提示确定,防止重名覆盖

8.mkdir

创建文件目录
​
命令:
    mkdir 参数 文件目录名称
​
参数:
    mv -p # 创建目录是会创建上层目录,及时存在也不会报错

9.touch

创建文件

命令:
	touch 参数 文件 # 如果文件不存在创建,如果文件存在更新访问时间和修改时间戳

参数:
	touch -d "YYYY-MM-DD HH:MM:SS" 文件 # 将文件的访问时间和修改时间设置为某个特定时间

10.less

less 与 more 命令类似,但可以通过翻页键查看上下页的内容
查看文件的命令
less不会一次性将整个文件加载到内存中,而是按需逐行加载文件内容。这种按需加载的方式使得less命令可以有效地处理非常大的文件,而不会占用大量的内存资源。

命令:
	less  文件 

其他:
    向后搜索:
    按"/"键,然后输入你想搜索的内容,按Enter键开始向后搜索。

    向前搜索:
    按"?"键,然后输入你想搜索的内容,按Enter键开始向前搜索。

    跳转到文件开头:
    按"g"键。

    跳转到文件结尾:
    按"G"键。

    退出less:
    按"q"键。

11.tail

输出文件的末尾部分

命令:
	tail  文件 # 默认显示最后10行

参数:
	tail -n number # 显示最后 number行
	tail -f 文件 # 使用-f 可以阻塞,tail会不停的读取最新的内容 因此有实时监控的作用

12.more

查看文件的命令,与less相似,不过,more命令相对简单,功能较少
more命令在执行时会将整个文件的内容一次性加载到内存中

命令:
	more  文件 

其他:
    向下滚动一行:
    按Enter键滚动一行内容。

    向下滚动一屏:
    按空格键滚动一屏内容。

    退出more:
    按"q"键。

13.chmod

修改文件/文件夹权限命令,这个权限针对属主属组和其他用户

# 常见权限分为 
	rwx 用数字表示 r:4 w:2 x:1
	-rw-r--r--
		- 第一个-代表当前文件是什么类型 d是文件夹 -普通文件 l软连接 c 字符设备文件 ..
		rw- 属主的权限
		r-- 属组的权限
		r-- 其他的用户权限
		
	
# 特殊权限
	suid:出现在属主的x权限上
		x存在:s表示 rws------
		x不存在:S表示 rwS------
		数字表示:4 # 如果要设置权限 4777 4放在最前面
		作用:
			# 用于可执行文件
			当设置suid这个特殊权限,那么无论是谁或者哪个用户,只要执行当前命令,那么就是属主这个用户权限执行命令。
			# 假设rm命令设置了这个权限,那么其他用户就可以想怎么删除就可以删除,搞破坏
			-rwxr-xr-x 1 root root 62872 Nov 17  2020 /usr/bin/rm

	sgid:出现在属组上的x位置
        x存在:s表示 ---rws---
        x不存在:S表示 ---rwS---
        数字表示:2 # 如果要设置权限 2777 2放在最前面
        作用:
        	# 用于可执行文件
        	理念与suid的相同,只不过是以数组权限的方式执行命令
        
        
	sticky:出现在其他用户x位置
        x存在:t表示 ------rwt
        x不存在:T表示 ------rwT
        数字表示:1 # 如果要设置权限 1777 1放在最前面
        作用:
        	粘滞位特殊权限,可以让目录任何人都有读写执行权限,但是当删除移动等其他操作,只能操作自己创建的文件或者文件夹,/tmp命令就具有这个特殊权限
		
		
# 权限操作对象
	u 属主权限
	g 属组权限
	o 其他权限
	a 所有用户(包括以上三种
	比如:chmod a+x xx.log # 对当前文件添加一个执行权限,并且全有用户都有

# 权限设置
	+ 增加权限,在原有基础上
	- 取消权限,在原有基础上
	= 设置唯一权限
	比如:chmod a+x xx.log # 对当前文件添加一个执行权限,并且全有用户都有


# 关于文件与文件夹rwx权限的区别
	文件 r=读 w=写 x=可执行
	文件夹 r=查看文件夹下的内容 w=在当前文件夹下可以创建删除文件/文件夹 x=能否进入文件夹

-rw-r--r--  1 root   root                  0 Jan 25 10:37 dmesg.old
    rw- 属主 
    r-- 属组
    r-- 其他


# 关于数字代表特殊权限
	0777
	0 代表特殊权限 suid:4 sgid:2 sticky:1
	7 代表属主的rwx
	7 代表数组的rwx
	7 代表其他用户rwx

命令:
	chmod 参数 文件
	
参数:
   	chmod -R # 以递归方式更改所有的文件及子目录

案例:
	chmod 777 123.log  # 对当前文件设置rwx权限
	chmod 7777 123.log  # 对当前文件设置rwx权限包含特殊权限
	chmod u+x  123.log  # 对属主设置执行权限
	chmod g+w 123.log  # 对属组设置读的权限
	chmod u-x  123.log  # 对属主取消执行权限
	chmod g-w 123.log  # 对属组取消读的权限
	
	# 特殊权限
	chmod u+s 123.log  # 对当前文件设置特殊权限 suid 
	chmod g+s 123.log  # 对当前文件设置特殊权限 guid 
	chmod o+t 123.log  # 对当前文件设置特殊权限 sticky 

14.chown

修改文件的属主与数组权限

命令:
	chown 属主.属组 文件夹/文件目录
	chown 属主:属组 文件夹/文件目录
	chown 属主id:属组id 文件夹/文件目录
	chown :属组id 文件夹/文件目录  # 修改属组的权限
	chown 属主id: 文件夹/文件目录  # 修改属主的权限

参数:
	chown -R 递归这是属主与属组 # 会将当前这个文件夹递归设置属主与属组

15.diff

是一个用于比较两个文件的命令,常用于查找文件之间的差异

命令:
	diff 参数 文件1 文件2 ...

参数:
	diff -u 统一格式显示不同
    diff -r 递归地比较目录及其子目录中的文件
    diff -d 仅显示文件是否不同,而不显示具体差异
    diff -i 忽略大小写的不同
    diff -w 忽略空格字符的不同
    diff -B 忽略空白的不同
    diff -c 以上下文格式显示不同之处
    # u 参数与 c 参数不能同时使用
    diff -uiwB
    diff -ciwB  # 建议使用当前参数组合比较直观显示上下文的差异
    diff -d 

16.dd

是一个Linux/Unix系统中用于复制文件和转换文件的命令。它可以用于创建镜像文件、复制数据以及执行各种类型的数据转换。

命令:
	dd 参数

参数:
    if=input_file:指定输入文件,即来源文件。
    of=output_file:指定输出文件,即目标文件。
    bs=bytes:设置每次读写的块大小,以字节为单位。
    count=n:设置要复制的块数或数据大小,通常与 bs 参数一起使用。
    skip=n:跳过输入文件的前 n 个块后再开始复制。
    seek=n:在输出文件中跳过 n 个块后再开始复制。
    status=progress:显示复制进度信息。
    conv=convert_option:对数据进行转换,如conv=ucase将小写字母转换为大写字母。
        conv=ucase:将输入文件中的小写字母转换为大写字母。
        conv=lcase:将输入文件中的大写字母转换为小写字母。
        conv=block:使用块设备方式进行输入/输出。
        conv=unblock:取消块设备方式进行输入/输出。
        conv=ascii:将不可打印字符转换为 ? 字符。
        conv=ebcdic:将 ASCII 字符转换为 EBCDIC 字符集。
        conv=swab:交换每对输入字节的顺序。

用法:
	dd if=/目录/来源文件  of=/目录/目标文件 # 拷贝的功能
	dd if=/dev/urandom of=/目录/目标文件 bs=1M count=1 # 设置生成随机数据
		bs=1M  count=1 也就是生成一个随机1M的文件数据(bs*count)
		
	dd if=/dev/urandom of=/目录/目标文件 bs=1M count=1024 # 生成一个1G的随机文件数据
		bs=1M  count=1024 (bs*count)

17.ln

设置软连接,类似与windows快捷方式,创建硬链接

软连接与硬链接什么区别:
	# 每个文件都存在一个inode值(可以理解为是linux下文件的标识)通过这个号码可以唯一地找到对应的文件或目录
		作用:
			1.存储文件的各种属性,权限,日期等等
			2.由于文件系统查找文件时可以直接通过inode号码,而不需要遍历整个目录树,因此可以提高文件系统的访问速度
		
		理解:
			这个inode的值 记录了文件或者文件夹的基础信息的一个对象
	
	1.硬链接:
		ln /opt/123.log  /tmp/123.log # 设置一个硬链接
		1.这个两个文件的inode是相同,但是名字不同罢了
		2.文件的属性中硬链接数量相同 =  2 ,当删除一个时,硬链接就会-1
		3.当对文件/opt/123.log 写入内容时,/tmp/123.log 也会有相同内容
		
		确缺点:
			1.硬链接无法对文件夹进行操作,硬链接无法对目录(文件夹)进行创建的主要原因是防止系统中出现循环的链接结构,从而导致文件系统出现混乱甚至崩溃的问题
			2.无法跨分区,因为每一个分区中都以自己的inode系统,每一个inode类似一个数据库的主键,无法拿A数据库的主键 到B数据库使用
	
	
	2.软连接
		ln -s /opt/123.log /tmp/123.log # 设置软连接
		软连接类似于windows的一个快捷方式,可以跨分区创建,跨设备创建,并且文件夹也可以创建
		当创建一个软连接时,本质上它们是不同的inode号码,原文件/文件夹是一个inode 软连接是一个inode。
		
	
命令:
	ln 参数 源文件  目标文件

参数:
	ln -s # 设置软连接

18.rm

删除文件和文件夹命令

命令:
	rm 参数 路径/文件

参数:
	-r 递归删除,对文件路径下的全部内容删除
	-f 不提示确认,直接强制删除

19.zip

是一个压缩解压缩命令,压缩文件的后缀为 zip文件

命令:
	zip 参数 压缩.zip 被压缩1 被压缩2

命令:
	-c 给压缩文件加注释
	-m 压缩完毕后,删除源文件
	-q 运行时不显示信息处理信息
	-r 处理指定目录和指定目录下的使用子目录,递归压缩
	-b <目录> 指定压缩到的目录

zip -rq var_log.zip /var/log/   # 压缩文件夹,并且不显示注释

zip -rq -b /tmp  var_log.zip /var/log/ # 压缩文件夹,并且将文件压缩到/tmp

20.unzip

对zip包的解压命令

命令:
	unzip 参数 xx.zip

参数:
	-l # 列出zip包中的压缩内容,不解压
	-d # 指定解压到指定目录

unzip /opt/xxx.zip  -d /tmp/  # 将zip解压到/tmp下

21.tar

对tar.gz包进行解压的和压缩的命令

命令:
	tar 参数 xx.tar.gz xx1 xx2

命令:
	-c 创建一个归档文件
	-v 打印出压缩或者解压过程
	-f 指定解压或者压缩的名称
	-x 解压归档文件
	-z 通过 gzip 过滤归档
	-t 列出归档的内容


tar -cvzf xx.tar.gz file1 file2 # 创建压缩文件通过gzip方式
tar -xvzf xx.tar.gz # 解压缩文件,通过gzip访问

22.wc

统计文件中的字符或者行数

命令:
	wc 参数 文件  # 显示 行数 单词数 字节数

参数:
	wc -l # 显示行数
	wc -w # 显示单词数
	wc -c # 显示字节数
	

23.stat

显示文件的详细信息,包含权限,使用者 大小 修改时间 

命令:
	stat 参数 文件/文件夹

参数:
	-c 指定输出模式
		stat -c '%n' # 文件名称
		stat -c '%s' # 文件大小
		stat -c '%a' # 权限
		stat -c '%x' # 最后访问时间
		stat -c '%y' # 最后修改时间
		stat -c '%z' # 最后状态修改时间
		stat -c '%U' # 用户
		stat -c '%G' # 属组
		stat -c '%u' # 用户id
		stat -c '%g' # 属组id
		stat -c '%i' # inode号
	

root@abcacb:~$ stat 123.log
  File: ‘123.log’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd01h/64769d	Inode: 1181267     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2024-03-22 16:53:43.864483693 +0800
Modify: 2024-03-22 16:53:43.864483693 +0800
Change: 2024-03-22 16:53:43.864483693 +0800
Birth: -


输出内容说明:
	File:文件名称
	Size:大小(字节)  # 文件最小为4Kb,也就是1block的大小
	Blocks:块大小  # 1个块的大小为4k=4096字节
	IO Block:IO 块 (4096字节 4kb)
	Links:硬链接数
	Inode:inode值
	regular empty file:文件类型
	Device:设备
	Access:权限
	Uid:属主
	Gid:属组
	Access:访问时间  # 只要访问了就会变化
	Modify:修改时间  # 只要文件内容变化就会变化
	Change:状态改变时间  # 这个时间会根据访问时间与修改时间而变化,也就是说只要状态发生变化就会修改,改名,修改权限,访问,设置属主属组,删除写入新内容

24.uptime

显示当前的服务器的运行时间和cpu负载情况

命令:
	uptime # 无参数

17:14:14 up 21 days,  2:30,  1 user,  load average: 0.03, 0.02, 0.05

17:14:14 # 当前系统时间
21 days 2:30 # 自系统启动以来,运行了多久 21天2个小时30分钟
1 user # 当前登录系统的用户数
load average: 0.03, 0.02, 0.05 # 当前机器cpu负载 1 5 15 分钟的的情况

25.uname

用于显示操作系统信息,例如内核版本、主机名、处理器类型等

命令:
	uname 参数

参数:
	-a  # 显示全部的内容,包括内核名称 版本 架构 操作系统等等
	-m  # 显示系统架构 
	-s # 显示内核
	-r # 显示内核版本
	-n # 显示主机名称

26.free

用于对内存资源的查看

命令:
	free 参数
	
参数:
    -b:以字节为单位显示内存使用情况
    -k:以千字节为单位显示内存使用情况
    -m:以兆字节为单位显示内存使用情况
    -g:以吉字节为单位显示内存使用情况
    -h:以人类可读的格式显示内存使用情况(例如,GB、MB 等)
    -t:显示总计行,包括物理内存、交换空间和未使用的内存总量
    
              total        used        free      shared  buff/cache   available
Mem:           3.6G        227M        1.3G        544K        2.1G        3.1G  # 内存
Swap:            0B          0B          0B  # 交换内存

total 总计内存,实际使用+没有使用的内存总和
used 已用内存 ,已经被系统使用的内存
free 剩余内存,没有被系统占用的内存
shared 共享内存
buff/cache 用于缓存的内存量,包括用于存储文件系统缓存的内存和用作缓冲区的内存。
available  估计可用的内存量,表示系统当前可供进程使用的可用内存总量。

27.shutdown

命令用于关闭或重新启动计算机系统,当前命令必须是root用户才能使用

命令:
	shetdown 参数

常用:
    shutdown -h now:立即关闭系统。
    shutdown -h +10:10分钟后关闭系统。
    shutdown -r now:立即重新启动系统。
    shutdown -r +5 "系统将在5分钟后重启,请保存工作":5分钟后发送警告消息并重新启动系统。

28.apt

apt是一个用于管理软件包的命令行工具,通常用于Debian和基于Debian的发行版(如Ubuntu)

命令:
	apt
参数:
    apt update:更新本地软件包列表,以获取最新的软件包信息。
    apt upgrade:升级系统中已安装的所有软件包到最新版本。
    apt install <package>:安装特定的软件包。
    apt remove <package>:移除特定的软件包。
    apt search <keyword>:搜索软件包。
    apt list:列出系统中所有可用的软件包。
    apt autoremove:自动移除不再需要的依赖软件包。
    apt full-upgrade:升级系统中的所有软件包,处理依赖关系更加智能。

29.yum

基于RPM的Linux发行版(如CentOS、Fedora等)中用于管理软件包的命令行工具
命令:
	yum 参数

参数:
    yum update:更新系统中所有已安装软件包到最新版本。
    yum install <package>:安装特定的软件包。
    yum remove <package>:移除特定的软件包。
    yum search <keyword>:搜索软件包。
    yum list:列出系统中所有可用的软件包。
    yum upgrade:升级系统中所有已安装的软件包,同时也会升级系统内核。
    yum clean packages:清理已下载的软件包缓存。
    yum history:查看yum操作历史记录。

30.sudo

是一种在类Unix操作系统中允许普通用户以超级用户的权限来运行特定命令的工具。通过使用sudo,普通用户可以在不知道超级用户密码的情况下执行需要特权的任务

命令
	sudo  其他命令
	sudo vim 123.log # 提权可以编辑123.log
参数:
	-u 使用什么用户执行命令
		sudo -u 用户 命令
	-s 打开一个新的shell
	-i 以超级管理员启动一个shell
	-I 列出当前用户可以执行的命令
	-k 在一段时间后失效密码验证。默认情况下,sudo会在一段时间内记住用户密码,使用-k选项会使其立即失效,下次使用时需要重新验证密码。


使用sudo命令需要在配置文件中配置/etc/sudoers
www     ALL=(ALL)       ALL   NOPASSWD: ALL
    第一个 ALL 表示该用户可以在任何终端运行命令
    (ALL) 表示该用户可以以任何用户身份运行命令
    第二个 ALL 表示该用户可以运行任何命令

www     ALL=(ALL)     NOPASSWD: ALL
	NOPASSWD: ALL:表示允许特定用户或用户组在执行 sudo 命令时无需输入密码即可执行任何命令

31.du

获取文件/路径的下的文件总的大小

命令:
	du 文件夹/文件

参数:
	-h 以人类可读的方式显示大小 1K 1M ...
	-s 仅显示总计的使用大小,不对子目录进行统计
	-a 显示所有的文件大小,包含隐藏文件

常用方式
	du -sh 

32.df

查看磁盘使用情况

命令:
	df 参数

参数
	-h 以人类可读的方式显示大小 1K 1M ...
	-T 显示文件系统
	-i 显示inode使用情况
	-P 显示磁盘使用情况

33.lsblk

用于列出块设备(如硬盘、固态硬盘等)的信息,包括设备名称、大小、挂载点等。你可以在终端输入 lsblk 命令来查看系统中所有块设备的信息

命令:
	lsblk

参数:
	-a 显示所有设备包含回环设备
	-l 显示顶层的设备不显示分区
	-f 显示文件系统类型
	-p 显示全路径设备名称

34.blkid

 命令用于显示块设备的文件系统类型和 UUID 等信息
 
 命令:
 	blkid
 
 参数:
 	-p 显示设备的完整路径
 	-o 格式话输出内容
 		value, device, offset, type, label, uuid 和 none
 	
 	blkid -p /dev/sda
 	blkid -o value /dev/sda

35.date

用于显示系统的时间日期

命令:
	date 参数

参数:
	%F 显示年月日
	%T 显示时分秒
	%Y 显示年
	%m 显示月
	%d 显示日
	%H 显示时
	%M 显示分
	%S 显示秒
	%u 显示当月的星期数 一共有几个星期
	hwclock 为硬件时钟设置系统时间
	
data "+%Y%m%d%H%M%S"  格式输出显示年月日时分秒
date +%Y%m%d         #显示当天年月日
date +%Y%m%d --date="+1 day"  #显示后一天的日期
date +%Y%m%d --date="-1 day"  #显示前一天的日期
date +%Y%m%d --date="-1 month"  #显示上一月的日期
date +%Y%m%d --date="+1 month"  #显示下一月的日期
date +%Y%m%d --date="-1 year"  #显示前一年的日期
date +%Y%m%d --date="+1 year"  #显示下一年的日期

date -d "YYYY-MM-DD HH:MM:SS" +%s # 将日期转换为时间戳

36.hostname

显示与设置主机名

命令
	hostname
	
hostname  # 显示主机名
hostname 新主机名 # 设置主机名

37.fdisk

用于磁盘分区的命令行工具

命令:
	fdisk

参数
	-l # 列出全部的磁盘分区情况

命令行:
	fdisk 磁盘(/dev/sda) # 打开指定磁盘进行分区
	m 帮助信息
	n 创建分区
	d 删除分区
	p 显示分区
	w 保存并退出
	q 退出

38.mount

用于将文件系统指定到挂载点上

命令:
	mount 挂载的设备或者分区名称 挂载点

参数:
	-l 列出全部的挂载文件系统
	-t 指定文件系统类型
	-o 挂载选项比如读写权限

-t 参数:
    ext2:第二版的Linux ext文件系统。
    ext3:第三版的Linux ext文件系统,支持日志功能。
    ext4:第四版的Linux ext文件系统,提供更好的性能和特性。
    xfs:SGI开发的高性能日志文件系统。
    ntfs:Windows NT文件系统。
    vfat:用于FAT文件系统(如FAT32)。
    iso9660:用于光盘文件系统。
    nfs:网络文件系统,用于网络共享文件系统挂载。
    cifs:Common Internet File System,用于Windows网络共享挂载。

-o 参数
    rw:以读写方式挂载文件系统(默认为读写)。
    ro:以只读方式挂载文件系统。
    noexec:不允许在文件系统上执行可执行文件。
    nosuid:禁止设置setuid权限位。
    nodev:禁止在文件系统上创建设备文件。
    exec:允许在文件系统上执行可执行文件。
    suid:允许设置setuid权限位。
    dev:允许在文件系统上创建设备文件。
    uid=value:设置文件系统的所有者用户ID。
    gid=value:设置文件系统的所有者组ID。
    umask=value:设置文件和目录的默认权限掩码。
 

# 这种挂载的前提是提前设置了/dev/sda的文件系统
mount /dev/sda /data # 将设备/dev/sda  挂载到/data目录

39.umount

用于卸载已经挂载的文件系统

命令:
	umount 卸载设备名或者挂载点

40.systemctl

系统和服务的命令行工具systemd 是一种系统和服务管理器,用于在 Linux 系统上启动、停止和管理系统进程、服务和套接字。

命令:
	systemctl 参数 服务

参数:
	start 启动服务
	stop 关闭服务
	restart 重启服务
	status 查看服务状态
	enable 开启自启
	disable 关闭开启自启
	systemctl list-units --type=service  # 列出正在运行的服务
	journalctl -b # 查看系统启动日志,服务的错误日志

41.vmstat

inux 系统性能分析工具,用于查看系统的虚拟内存、进程、CPU 和 I/O 等信息

命令:
	vmstat 参数
	
参数:
	vmstat  # 显示系统整体的统计信息,包括内存、交换空间、进程、CPU 和块设备
	-s # 统计内存相关的信息
	-a # 显示非活跃于活跃内存信息
	-d # 显示磁盘相关的信息
	-f # 显示从系统启动至今的fork数量
	-p # 指定分区显示冲击信息
	-S # 以K M 显示
		-S k or K -S M or m # 分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)

vmstat 2 # 每2秒显示一下统计信息
vmstat 1 5 #  每隔一秒输出一次统计信息,共输出5次。

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0    0 3364544   2108 191172    0    0    15     7   37   50  0  0 100  0  0

42.echo

终端输出文本命令

命令:
	echo 输出内容

参数:
	-n 不换行输出
	-e 允许特殊字符串进行转义 比如:\n

43.history

查看输出命令历史,最大1000条

命令:
	history

参数:
	-c 清除输出的命令历史
	-w 会将命令历史写入到历史文件中

44.passwd

设置用户的登录密码

命令:
	passwd 用户名
	
参数:
	-l 锁定账户,防止用用户登录
	-u 解锁用户账户,可以登录
	-d 使用账户无密码,允许账户无密码登录  # 在操作系统上,如果使用ssh就需要密码
	-S 显示密码的信息,例如密码过期信息
	-e 强制用户在下次登录时立即更改密码 # ssh登录是才会进行修改密码

非交互式修改密码的方式
	echo "新密码" | passwd --stdin 用户名

45.usermod

用户修改

命令:
	usermod 参数 用户名

参数:
    -c:为用户账户添加备注信息。
    -d:修改用户的家目录路径。
    -g:将用户添加到指定的用户组。
    -l:修改用户的登录名称。
    -u:修改用户的用户ID。
    -G:设置用户所属的附加用户组列表。
    -a:将用户添加到附加用户组而不是覆盖现有的用户组。
    -s:修改用户的默认shell。

46.useradd

添加用户

命令:
	useradd 参数 用户名

参数:
	-c 为用户账户添加备注信息。
	-d 设置用户的目录
	-g 设置初始用户组 id/名称
	-u 设置用户的特定uid
	-s 指定登录的shell解释器
	-m 不设置用户的家目录

不允许登录用户
useradd -m -s /bin/nologin 用户名

47.userdel

删除用户

命令:
	userdel 参数 用户名

参数:
	-r 删除用户账户,以及家目录
	-f 强制删除用户,即使用户登录

48.groupadd

用户组添加

命令:
	groupadd 参数 组名

参数:
	-g 设置用户组gid
	-r 创建一个系统用户组
	-o 创建一个非唯一gid的用户组
	-p 设置用户组密码

49.w

命令用于显示当前系统上登录用户的相关信息

命令:
	w

50.id

查看用户的uid gid等信息

命令:
	id 用户名

51.ssh

用户sshd服务登录命令

命令:
	ssh 用户@ip

参数:
	-p 指定sshd 的登录端口

52.top

用于查看系统资源占用情况的命令,可以实时显示系统中各个进程的资源占用情况,包括CPU利用率、内存占用情况等

命令:
	top
	
指令:
	z 切换颜色模式
	1. 切换cpu显示模式
	m 内存显示模式,以内存使用量进行排序
	t 按照运行时间排序
	P 按照cpu排序
	u 根据输出的用户查看用户的进程


# 命令显示:
	

top - 02:28:04 up 57 min,  1 user,  load average: 0.00, 0.01, 0.05  # 命令于uptime显示的内容相同

Tasks: 125 total,   1 running, 124 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  3861288 total,  3347364 free,   306680 used,   207244 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  3324900 avail Mem 
PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND           
710 root      20   0  272992   4744   3608 S   0.3  0.1   0:03.40 vmtoolsd 


Tasks: 125 total,   1 running, 124 sleeping : 
	进程情况一共有125个 1个在执行 124个在睡眠
0 stopped,   0 zombie : 
	0进程在停止 0个僵尸进程
	
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    %Cpu(s):显示了CPU的使用情况。
    0.0 us:表示用户空间程序占用CPU的比例。
    0.0 sy:表示系统内核占用CPU的比例。
    0.0 ni:表示用户进程以调整过优先级的方式占用CPU的比例(nice值)。
    100.0 id:表示CPU空闲的比例。
    0.0 wa:表示CPU等待I/O操作完成的比例。
    0.0 hi:表示硬中断(Hardware IRQ)占用CPU的时间比例。
    0.0 si:表示软中断(Software Interrupts)占用CPU的时间比例。
    0.0 st:表示被虚拟化程序(如虚拟机)偷取的CPU时间。

KiB Mem :  3861288 total,  3347364 free,   306680 used,   207244 buff/cache
    KiB Mem:表示物理内存(RAM)的使用情况。
    3861288 total:表示系统总共的物理内存大小为 3861288 KiB。
    3347364 free:表示当前可用的空闲内存大小为 3347364 KiB。
    306680 used:表示当前已被使用的内存大小为 306680 KiB。
    207244 buff/cache:表示被用作缓存的内存大小为 207244 KiB。这部分内存既包括用于文件系统缓存的部分,也包括用于缓冲输入/输出(I/O)操作的部分。

KiB Swap:  2097148 total,  2097148 free,        0 used.  3324900 avail Mem 
    KiB Swap:表示交换空间(swap)的使用情况。
    2097148 total:表示系统总共的交换空间大小为 2097148 KiB。
    2097148 free:表示当前可用的空闲交换空间大小为 2097148 KiB。
    0 used:表示当前已被使用的交换空间大小为 0 KiB。
    3324900 avail Mem:表示可用于内存分配的内存大小为 3324900 KiB。
 
 
 PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND 
     PID:进程ID,唯一标识系统中每个正在运行的进程。
     USER:启动进程的用户。
     PR:进程的优先级。
     NI:进程的nice值,用于调整进程的优先级。
     VIRT:进程占用的虚拟内存大小。
     RES:进程占用的物理内存大小(常驻集大小)。
     SHR:进程共享的内存大小。
     S:进程状态,包括运行中(R)、睡眠中(S)、僵死(D)等。
     %CPU:进程占用CPU的使用率。
     %MEM:进程占用内存的使用率。
     TIME+:进程占用CPU的累计时间。
     COMMAND:启动进程的命令。

53.ps

用于查询当前系统中得进程情况

命令:
	ps 参数

参数:
	-anx 显示所有用户的进程,以属性结构展示,并显示详细信息
		-a 显示所有终端机全部进程
		-n 以数字来表示USER和WCHAN栏位。
		-x 显示所有进程,不以终端机来区分
	-ef 显示进程之间父子关系,
		-e 列出进程显示进程所使用的环境变量
		-f 使用ASCII字符显示树状结构,表达进程间的相互关系
	-u 显示当用户的进程
		ps -u root
	-p 显示特定pid进程
		ps -p 1234
	ps -efL | wc -l # 显示进程总数

54.kill

根据进程id杀死进程

命令:
	kill 进程id

参数:
	-s 指定发送信号杀死进程
        SIGHUP (1):终端挂起或控制进程终止。
        SIGINT (2):用户发送的中断信号,通常由按下 Ctrl + C 来发送。
        SIGKILL (9):强制终止进程,进程无法捕获或忽略这个信号。
        SIGTERM (15):默认的终止信号,通常用于请求进程正常退出。
        SIGSTOP (19):停止进程的运行。
        SIGCONT (18):继续运行被暂停的进程。

kill -s 9 进程id
kill -s SIGSTOP 进程id

55.fuser

在 Unix 和类 Unix 系统上用来查找哪些进程在使用指定文件或者文件系统的命令
sudo yum install psmisc
命令:
	fuser 参数 文件/文件路径

参数:
	-k 杀死正在访问指定文件的进程
	-m 指定挂载点查看那些进程使用该文件
	-v 显示详细的进程信息
	-u 显示用户名与进程id
	-i 交互式询问是否要杀死这个进程

56.lsof

用于列出当前系统打开的文件的工具
 yum install lsof
命令:
	lsof 参数
	
参数:
	-i 显示网络连接信息
		lsof -i protocol:port
		lsof -i :80 # 查看80端口网络信息
		lsof -i tcp:80 # 查看协议tcp端口80信息
	-u 仅显示指定用户打开的文件
	-c 仅显示指定进程名称打开的文件
	-p 仅显示指定进程id打开的文件
	-t 仅显示进程id不显示其他内容
	-i4 显示ipv4网络连接信息
	-i6 显示ipv6网络连接信息
	-d 仅显示指定目录下被打开的文件

57.ip

网络配置工具,用于管理网络接口、路由表等网络相关信息

1.查看网络接口情况
	ip addr show
	
2.启用或者禁用网络接口
    ip link set [interface] up    # 启用网络接口
    ip link set [interface] down  # 禁用网络接口

3.配置ip地址
    ip addr add [ip_address/mask] dev [interface]    # 给网络接口配置IP地址
    ip addr del [ip_address/mask] dev [interface]    # 删除网络接口的IP地址

4.查看路由表
	ip route show

5.删除路由添加路由
    ip route add [network] via [gateway]    # 添加路由
    ip route del [network]                  # 删除路由
   
6.查看arp表
	ip neigh show

7.清除arp缓存
	ip neigh flush all

8.添加网卡
	ip link add name veth0 type veth # 网卡名字 veth0 类型 veth
	ip link set veth0 up # 启用网卡
	ip addr add 192.168.100.1/24 dev veth0 # 设置网卡虚拟ip地址

9.删除网卡
	ip link delete veth0

58.ping

采用icmp协议无端口传输

基本用法:ping <目标主机> # 这会发送 ICMP 请求到目标主机,并显示与目标主机的连通性状态
指定发送数据包数量:  ping -c <次数> <目标主机>  # 发送多个少次数据包到目标主机
指定发送数据包大小:ping -s <大小> <目标主机> # 发送指定数据包大小
持续 ping:ping -i <间隔时间> <目标主机> # 根据间隔时间发送数据包到指定 目标主机
显示完整时间戳:ping -D <目标主机> # 使用 -D 参数可以显示每个回应数据包的完整时间戳。
限制 TTL:ping -t <TTL值> <目标主机> # 可以限制数据包在网络中传输的最大跳数(TTL 值),避免数据包无限循环。

59.traceroute

是一个用于跟踪网络数据包在互联网中传输路径的命令行工具。它通过发送一系列的 ICMP 请求(默认情况下)来获取从源主机到目标主机的网络路径,并显示每个跃点上经过的路由器的 IP 地址。

yum install traceroute -y


基本用法: 
	traceroute <目标主机> # 这会发送一系列的 ICMP 请求,从你的主机到目标主机,然后显示每个跳点的 IP 地址、延迟和响应时间。

指定最大跃点数: 
	traceroute -m <跃点数> <目标主机> # 可以使用 -m 参数限制跃点数,这样可以控制 traceroute 命令的执行范围。
    使用 TCP 或 UDP 协议:
    traceroute -T <目标主机>
    traceroute -U <目标主机>
    默认情况下,traceroute 使用 ICMP 协议发送请求,但你也可以选择使用 TCP 或 UDP 协议发送请求。

指定端口号:
	traceroute -p <端口号> <目标主机>  # 可以指定发送请求时使用的端口号。

显示每个跃点的完整信息:
	traceroute -I <目标主机> # 使用 -I 参数可以显示每个跃点的完整信息,包括 IP 地址、RTT(Round-Trip Time)等。

60.wget

用于下载的一个命令

用法:
	wget 参数 url

参数:
	-O 将下载的内容指定到某个文件路径下指定的文件名
	-b 后台下载
	-c 继续未完成下载
	-p 下载文件指定到某个目录下
	-q 静默模式,不显示输出信息
	-r 递归下载,下载指定url链接中得所有文件
	--limit-rate 限制下载速度


下载文件:wget http://example.com/file.zip
后台下载文件:wget -b http://example.com/file.zip
递归下载整个网站:wget -r http://example.com
限速下载:wget --limit-rate=100k http://example.com/file.zip
	

61.scp

用于本地系统与远程系统安全传输文件的命令

命令:
	scp 文件 用户@机器ip:/指定路径与文件名称 # 从本地到远程
	scp 用户@机器ip:/指定路径与文件名称  文件名 # 从远程到本地

参数:
    -P port:指定远程主机的端口号。
    -r:递归复制整个目录。
    -p:保持原文件的修改时间、访问时间和权限。
    -v:显示详细的传输信息,便于调试。
    -q:静默模式,不显示传输过程。
    -C:启用压缩传输,减少数据传输量。
    -i identity_file:指定密钥文件。
    -l limit:限制传输速率,减少网络拥堵。
    -B:使用批处理模式(非交互式),适用于脚本自动化。
    -S program:指定加密程序,可用于加密传输。

62.rsync

是一个强大的文件同步工具,它可以在本地或远程系统之间同步文件和目录。除了基本的文件复制外,rsync 还可以智能地只传输发生变化的部分,从而减少数据传输量

命令:
	rsync 参数 文件 用户@ip:/路径文件名  # 从本地到远程
	rsync 参数 用户@ip:/路径/文件名  存储文件 # 从远程到本地

参数:
    -v, --verbose:显示详细的输出信息。
    -r, --recursive:递归同步子目录。
    -a, --archive:归档模式,保持文件属性、权限等。
    -z, --compress:在传输过程中压缩数据,减少网络传输量。
    -u, --update:仅同步源目录中更新过的文件。
    -n, --dry-run:模拟操作,显示将要执行的同步动作,但不实际执行。
    -h, --human-readable:以人类可读的格式显示输出信息。
    --delete:删除目标目录中多余的文件。
    --exclude:排除指定的文件或目录。
    -P 显示传输文件的进度,并支持断点续传


用法:
	rsync -avzP /path/to/source username@remote_host:/path/to/destination
	rsync -avzP username@remote_host:/path/to/source /path/to/destination

63.ss

用于查看套接字统计信息

命令:
	ss 参数

参数:
    -t:显示 TCP 套接字信息。
    -u:显示 UDP 套接字信息。
    -l:显示监听状态的套接字。
    -p:显示进程相关信息,包括 PID 和进程名称。
    -n:直接使用 IP 地址,而不进行服务名解析。
    -a:显示所有套接字,包括监听和非监听状态。
    -e:显示详细的套接字信息,包括 UID、PID 等。
    -i:显示内部信息,如实时统计数据等。

常用:
	ss -tunlp

64.nmap

是一个用于网络探测和安全审计的强大工具,可以帮助你扫描主机、端口和服务等信息。

sudo yum install nmap


命令:
	nmap 参数

参数:
	1.扫描主机
		nmap target # 扫描主机
		nmap -iL targets.txt # 从文件中批量扫描主机
	
	2.端口扫描
        nmap -p <port> # 指定扫描端口。
        nmap -p- # 扫描所有端口。
        nmap -F # 快速扫描常见端口。
    
    3.扫描类型
        -sS # TCP SYN 扫描。
        -sT # TCP 连接扫描。
        -sU # UDP 扫描。
       
    4.操作系统检测
    	-O # 尝试猜测目标主机的操作系统
    
    5.服务器版本检测
    	-sV # 检测目标主机开放的服务版本
    
    6.脚本扫描
    	--script=<script> # 执行指定的 NSE 脚本
    
    7.输出格式
        -oN output.txt # 将扫描结果保存到文件。
        -oX output.xml # 将扫描结果保存为 XML 格式。
    
    8.其他参数
        -v # 显示详细输出信息。
        -A # 启用 OS 检测、服务版本检测和脚本扫描。

65.find

用于在指定目录下查找文件和目录

基本用法:
    find directory -name filename:在指定目录下按照文件名查找文件。
    find directory -type d:查找指定目录下的所有子目录。
    find directory -type f:查找指定目录下的所有文件。
    
常用参数:
    -name pattern:按照文件名模式进行匹配。
    -iname pattern:按照文件名模式进行不区分大小写匹配。
    -type type:按照文件类型进行匹配,d 表示目录,f 表示文件。
    -size [+|-]size[c]:根据文件大小进行匹配,+ 表示大于,- 表示小于,c 表示以字节为单位。
    -user username:根据所有者用户名进行匹配。
    -group groupname:根据所属用户组进行匹配。
    -mtime n:按照修改时间进行匹配,n 表示天数。
    -exec command {} \;:对搜索到的文件执行指定命令。

示例:
    查找所有以 .txt 结尾的文件:find /path/to/directory -name "*.txt"
    查找所有大于 1MB 的文件:find /path/to/directory -size +1M -type f
    查找所有属于特定用户的文件:find /path/to/directory -user username

66.tr

基本用法:
    tr set1 set2:将输入中的 set1 中的字符替换为 set2 中对应位置的字符。
    tr -d set1:删除输入中属于 set1 中的字符。
    tr -s:压缩输入中重复的字符。
    
常用参数:
    -d SET1:删除 set1 中指定的字符。
    -s:压缩连续重复的字符。
    -c:对 set1 中指定的字符取补集。
    -t:将 set1 按照 set2 的顺序进行映射而不做替换。
    -u:将 set1 中的字符转换为大写。
    -l:将 set1 中的字符转换为小写。
    
示例:
    将输入中的大写字母转换为小写:echo "HELLO" | tr 'A-Z' 'a-z'
    删除输入中的空格:echo "hello world" | tr -d ' '
    压缩连续重复的字符(只留一个o):echo "hellooo" | tr -s 'o'

67.uniq

用于在文本文件中去除重复的行,并且可以帮助对文本数据进行去重操作

命令:
	uniq 参数 文件

参数:
    -c, --count:显示每行重复出现的次数,并在行首添加该行出现次数。
    -d, --repeated:仅显示重复的行,即只显示出现过至少两次的行。
    -i, --ignore-case:忽略大小写,这样相同行但大小写不同的行将被视为重复行。
    -u, --unique:仅显示不重复的行,即只显示出现过一次的行。

68.grep

强大的文本搜索工具,用于在文件中搜索指定模式的字符串

命令:
	grep 参数 文件

参数:
    -i, --ignore-case:忽略大小写进行匹配。
    -r, --recursive:递归地在目录中搜索文件。
    -n, --line-number:显示匹配行的行号。
    -v, --invert-match:显示不匹配指定模式的行。
    -w, --word-regexp:仅匹配整个单词,而不是部分匹配。
    -c, --count:仅显示匹配行的数量,不显示具体内容。
    -l, --files-with-matches:仅显示包含匹配内容的文件名。
    -A NUM, --after-context=NUM:显示匹配行及其后 NUM 行的内容。
    -B NUM, --before-context=NUM:显示匹配行及其前 NUM 行的内容。
    -e PATTERN, --regexp=PATTERN:指定匹配模式,可以使用多个 -e 参数指定多个模式。

69.tee

用于从标准输入读取数据,并同时将数据输出至标准输出和一个或多个文件,输出的内容不仅在终端上显示,同时会写入到文件中

命令:
	echo "xxx" | tee 参数 filelist.txt
	
参数:
    -a, --append:追加方式写入文件,而不是覆盖文件内容。
    -i, --ignore-interrupts:忽略中断信号(如 Ctrl+C)。
    FILE:指定要写入数据的文件名,可以同时指定多个文件名,多个文件名之间用空格分隔。
    
用法:
	ls | tee filelist.txt
	echo "additional line" | tee -a filelist.txt

70.awk

awk 是一种强大的文本处理工具,通常用于对结构化文本文件进行处理和分析

打印指定列:
    awk '{print $2}' filename
    这个命令会打印文件中每行的第二列内容。

指定分隔符:
    awk -F':' '{print $1}' /etc/passwd
    这个命令使用 : 作为分隔符来解析文件内容。

过滤行:
    awk '/pattern/' filename
    这个命令会打印包含指定模式的行。

计算总和/平均值:
    awk '{sum+=$1} END {print "Sum: " sum}' filename
    这个命令会计算第一列的总和并输出。

自定义输出格式:
    awk '{printf "Name: %s, Age: %d\n", $1, $2}' filename
    这个命令会按照指定格式输出每行内容。

指定条件:
    awk '$3 > 50 {print $1}' filename
    这个命令会打印第一个字段,如果第三个字段的值大于 50。

使用文件里的变量:
    awk -v var=123 '{print $1, var}' filename
    这个命令会将文件中的第一列和指定的变量一起输出。

自定义字段分隔符:
    awk -F',' '{print $1, $2}' filename
    这个命令会使用逗号作为字段分隔符来解析文件内容。

71.sed

sed(Stream EDitor)是一个流式文本编辑器,用于对文本数据进行流式处理和转换

替换字符串:
    sed 's/old_string/new_string/g' filename
    这个命令会在文件中将所有的 old_string 替换为 new_string。

删除指定行:
    sed '2d' filename
    这个命令会删除文件中的第二行。

在指定行后插入内容:
    sed '2a\new_line' filename
    这个命令会在文件的第二行后插入新的一行。

打印指定行:
    sed -n '5p' filename
    这个命令会打印文件中的第五行。

删除空白行:
    sed '/^$/d' filename
    这个命令会删除文件中的空白行。

替换指定行内容:
    sed '3c\new_content' filename
    这个命令会将文件中的第三行替换为新的内容。

删除行尾空格:
    sed 's/[[:space:]]*$//' filename
    这个命令会删除文件中每行末尾的空格字符。

只处理匹配行:
    sed '/pattern/ s/old/new/g' filename
    这个命令只会对包含指定模式的行进行替换操作。

使用备份文件:
    sed -i.bak 's/old/new/g' filename
    这个命令会在替换的同时创建一个 .bak 的备份文件。

72.sort

用于对文本文件的内容进行排序

按字母顺序排序:
    sort filename
    这个命令会按照每行的首字母顺序对文件内容进行排序。

按数字大小排序:
    sort -n filename
    这个命令会按照每行内容的数值大小进行排序。

按逆序排序:
    sort -r filename
    这个命令会按照逆序(降序)对文件内容进行排序。

忽略大小写排序:
    sort -f filename
    这个命令会在排序时忽略大小写。

按指定列排序:
    sort -k2 filename
    这个命令会按照第二列内容进行排序。

去重并排序:
    sort -u filename
    这个命令会去除重复行并对内容进行排序。

指定字段分隔符:
    sort -t':' -k3 filename
    这个命令会使用冒号作为字段分隔符,并按照第三列内容进行排序。

合并已排序文件:
    sort file1 file2 | sort -m -
    这个命令会合并两个已排序的文件内容并进行最终排序。

73.xargs

xargs命令是一个强大的命令,用于从标准输入中读取数据并将其作为参数传递给其他命令。它通常用于解决通过管道传递大量数据时参数过多的问题。

1. 基本用法:
   command1 | xargs command2
   这个命令会将 command1 的输出作为参数传递给 command2。

2. 指定参数个数
   command1 | xargs -n 3 command2
   这个命令会将每次传递三个参数给 command2。

3. 自定义分隔符
   command1 | xargs -d ',' command2
   这个命令会使用逗号作为参数的分隔符。

4. 交互式确认:
   
   command1 | xargs -p command2
   这个命令会在执行前提示用户确认是否继续。

5. 替换字符串:
   
   echo "file1 file2 file3" | xargs -I {} cp {} /destination/
   这个命令会将 {} 替换为输入的每个参数,并执行 cp 命令。

6. 处理特殊字符:
   
   find . -type f -print0 | xargs -0 command
   这个命令会处理文件名中包含特殊字符(如空格)的情况。

7. 并行处理:
   
   cat file.txt | xargs -P 4 -n 1 command
   这个命令会并行处理输入,最多同时运行 4 个进程。

8. 结合 find 命令:
   
   find . -name "*.txt" | xargs grep "pattern"
   这个命令会在所有 .txt 文件中搜索匹配的模式。

74.curl

 是一个在命令行下用来传输数据的工具,它支持多种协议,包括 HTTP、HTTPS、FTP 等
 
 命令:
 	curl 参数  url
 
 参数:
     -X:指定 HTTP 请求方法,如 GET、POST、PUT、DELETE 等。
     -H:添加 HTTP 头信息,可以多次使用该参数来添加多个头信息。
     -d:发送 POST 请求时附加数据,通常用于表单提交。
     -F:发送 multipart/form-data 格式的 POST 请求,常用于文件上传。
     -o:将服务器响应保存到本地文件。
     -O:将服务器响应保存到本地文件,文件名由服务器端决定。
     -L:对重定向请求进行跟踪,直到获取最终结果。
     -i:显示响应头信息。
     -s:静默模式,不输出错误和进度信息。
     --user:指定用户名和密码进行 HTTP 基本认证。
     -u:指定用户名和密码进行身份验证。
     -k:忽略 SSL 证书检查。
     -v:显示详细的执行信息,包括请求和响应头。
     --data-binary:以二进制方式发送数据。

75.file

用于确定文件类型

命令:
	file 参数 文件

参数:
    -b:以短格式输出文件类型,不显示文件名。
    -i:对不可打印字符使用输出转义。
    -k:在输出中包括 MIME 类型。
    -z:压缩文件不解压缩就检查。
    --mime-encoding:输出编码方式。
    -L:跟随符号链接。
    -d:对目录进行测试。	

使用:
	file filename.txt