linux常用命令整理

Posted jxkun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux常用命令整理相关的知识,希望对你有一定的参考价值。

目录

1. 括号中的内容为备注

Linux目录结构

目录 描述
/ 根目录
/bin (binaries)存放二进制可执行文件
/sbin (super user binaries)存放二进制可执行文件,只有root才能访问
/etc (etcetera)存放系统配置文件
/usr (unix shared resources)用于存放共享的系统资源
/home 存放用户文件的根目录
/root 超级用户目录
/dev (devices)用于存放设备文件
/lib (library)存放跟文件系统中的程序运行所需要的共享库及内核模块
/mnt (mount)系统管理员安装临时文件系统的安装点
/boot 存放用于系统引导时使用的各种文件
/tmp (temporary)用于存放各种临时文件
/var (variable)用于存放运行时需要改变数据的文件

命令基本格式

  1. 命令格式

    命令 [option] [参数]

  • 多个option时可以简化写在一起, 一些option可以简写, 例如 --all 简写为 -a
  1. 命令提示符
    例如:
[email protected]~】#
  • root 表示当前登入用户
  • localhost 为当前主机名
  • ~当前所在目录
  • # 用户提示符; #表示超级用户; $表示普通用户;

帮助命令

1. man

全屏显示在线帮助, 按q退出, 上下键移动;

格式: man 命令, 进入在线帮助页面后:

  • 输入 ? 键,向前查找,如 ?-h ,将会搜索含有“-h”的行

  • 输入 / 键,向后查找,如 /-k ,将会向后搜索“-k”的行

  • 按 N或者n(下一个)来进行上一个下一个相关匹配项查看。

  • man手册存放的位置 可以通过manpath命令来查看manpage的位置

  • man手册入口

    1 用户指令   2 系统       3 程序库   4 设备   5 文件系统
    6 游戏       7 杂项       8 系统指令       9 内核指令
    一般用到的项为:1,5,8

常用:

man 1 passwd //在入口为用户指令去查询passwd的帮助文档
man 5 passwd //在入口为文件系统去查询passwd的帮助文档

2. help

  • 内部命令的帮助文档, 例如 help cd
  • --help选项, 例如 rm --help

3. info

  • 和man功能类似,都加详细,有不同主题之间的中转功能, 按q退出

  • 例如 info cd

  • 一般用help ,--help,足够man来补充,info用的很少

whereis/which/whois/whatis

1. whereis

whereis命令只能用于搜索二进制文件(-b)、源代码文件(-s)、说明文件(-m)。如果省略参数则返回所有的信息。

  • 格式
whereis [-bfmsu][-B <目录>...][-M <目录>...][-S <目录>...][文件...]

    -b  只查找二进制文件。
    -B<目录>  只在设置的目录下查找二进制文件。
    -f  不显示文件名前的路径名称。
    -m  只查找说明文件。
    -M<目录>  只在设置的目录下查找说明文件。
    -s  只查找原始代码文件。
    -S<目录>  只在设置的目录下查找原始代码文件。
    -u  查找不包含指定类型的文件。
  • 示例
[[email protected] ~]# whereis find
find: /usr/bin/find /usr/share/man/man1/find.1.gz
[[email protected] ~]# whereis -b find
find: /usr/bin/find
[[email protected] ~]# whereis -m find
find: /usr/share/man/man1/find.1.gz
[[email protected] ~]# whereis -s find
find:

2. which

which命令是在PATH变量指定的路径中搜索指定的系统命令的位置。用echo $PATH可显示当前PATH变量的值。

  • 常用
[[email protected] ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/env/jdk/jdk8/bin:/opt/env/jdk/jdk8/jre/bin:/opt/env/maven3.5/bin:/root/bin
[[email protected] ~]# which java
/opt/env/jdk/jdk8/bin/java

3. whois

Linux whois命令用于查找并显示用户信息。

whois root

4. whatis

用于查询一个命令执行什么功能,并将查询结果打印到终端上, 属于帮助命令

[[email protected] ~]# whatis ls
ls (1)               - list directory contents

文件/目录命令

以下fnfilename简写, 表示文件名

命令 描述 常用
ls 查看目录内容 ls -a ll
touch 创建文件 touch fn
echo 打印到终端 echo 字符串 echo 字符串 > 文件
file 查看文件信息 file fn
cd 切换目录 cd ~ cd - cd .. cd !$
pwd 显示当前目录 pwd
rmdir 删除文件夹 rmdir -p 目录名
cp 复制 cp sfile disdir
mv 移动/重命名
rm 删除 rm -rf 文件/目录

1. wc (word count)

统计文本字数,行数; 默认计算指定文件 行数,字数,字节数;

wc [-clw] [--version] [文件...]

    -c 只显示Bytes数
    -l 只显示行数
    -w 只显示字数, 若文本存在中文则结果会不准确
    --version 显示版本信息

2. file 查看文件信息

file [-bcLvz][-f <名称文件>][-m <魔法数字文件>...][文件或目录...]
    
    -b  列出辨识结果时,不显示文件名称。
    -c  详细显示指令执行过程,便于排错或分析程序执行的情形。
    -f<名称文件>  指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。
    -L  直接显示符号连接所指向的文件的类别。
    -m<魔法数字文件>  指定魔法数字文件。
    -v  显示版本信息。
    -z  尝试去解读压缩文件的内容。
    [文件或目录...] 要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。
    

3. 链接命令 ln

  • 格式

    ln [option] 原文件  目标文件
    
    option
      -s 软链接, 不加-s为硬链接
  • 硬链接特征

    1. 拥有相同的i节点和存储block块,可以看做是同一个文件
    2. 可以通过i节点识别
    3. 不能跨分区
    4. 不能针对目录使用  
    
  • 软链接特征

    1. 类似Windows快捷方式
    2. 软链接拥有自己的I节点和Block块,但是数据块中只保存原文件的文件名和I节点号,并没有实际的文件数据。
    3. Irwxrwxrwx  I软链接, 软链接文件权限都为: rwxrwxrwx
    4. 修改任意文件,另一个都改变。
    5. 删除原文件,软链接不能使用。

解/压缩指令

1. .zip格式文件

  • 压缩文件: zip 压缩文件名 源文件
  • 压缩目录: zip -r 压缩文件名 源文件目录
  • 解压: unzip 压缩文件

2. .gz格式文件

  • gzip [option] 文件名
option 
    -d 解压
    -r 压缩目录
    -l 显示压缩文件的大小,未压缩文件的大小, 即: 压缩比
    -v 显示文件名和压缩比
    -num 指定压缩速度, num为1~9, 系统默认为6

3. .bz2格式文件

  • bzip2 [option] 文件名
option 
    -c 将压缩过程产生的数据输出到屏幕上
    -d 解压
    -z 压缩
    -k 保留源文件
    -num 指定压缩速度, num为1~9, 系统默认为6
  • bzip2 -cdz 压缩文件名

4. .tar.gz格式文件

  • tar [option] [file...]
option 
    -c 压缩 
    -x 解压
    -z gzip压缩
    -j bzip2压缩
    -v 压缩过程显示文件
    -f f之后接文件名
  • 常用:
    • 解压到当前目录: tar -zxvf 压缩文件
    • 解压到指定目录: tar -zxvf 压缩文件 -C 指定目录路径
    • 压缩: tar -zcfv 压缩包名.tar.gz 源文件目录
    • .tar.bz2格式加解压,将上面命令中的z替换为j即可

网关/ip/端口

1. 查看ip地址:

  • ifconfig (net-tools中已被废弃的命令,已多年未被维护)
  • ip addr

2. 网卡

  • 启动网卡: ifup ens33(网卡名)
  • 关闭网卡: ifdown ens33(网卡名)

3. 端口

  • losf
    是一个列出当前系统打开文件的工具.
    使用实例:
lsof -i:8080:查看8080端口占用
lsof abc.txt:显示开启文件abc.txt的进程
lsof -c abc:显示abc进程现在打开的文件
lsof -c -p 1234:列出进程号为1234的进程所打开的文件
lsof -g gid:显示归属gid的进程情况
lsof +d /usr/local/:显示目录下被进程开启的文件
lsof +D /usr/local/:同上,但是会搜索目录下的目录,时间较长
lsof -d 4:显示使用fd为4的进程
lsof -i -U:显示所有打开的端口和UNIX domain文件
  • netstat
    netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况
netstat -tunlp | grep 端口号
    -t (tcp) 仅显示tcp相关选项
    -u (udp)仅显示udp相关选项
    -n 拒绝显示别名,能显示数字的全部转化为数字
    -l 仅列出在Listen(监听)的服务状态
    -p 显示建立相关链接的程序名
    -r 显示路由表

实例

查看8080端口
netstat -tunlp | grep 8080

查看路由表
netstat -rn 

查找/搜索

1. locate/slocate
相当于find -name的另一种用法, 用于查找文件或者目录, 查询速度比find更快; 因为他不是搜索具体目录,而是搜索搜索一个数据库/var/lib/locatedb;locate会在后台维护一个数据库: /var/lib/mlocate

这个后台数据库每天更新一次, 手动更新使用命令 updatedb

  • 语法:
locate/slocate [option] [PATTERN] 

option
    -d <目录> 或 -database=<目录>
    -u 更新slocate数据库
  • 实例
搜索etc目录下所有以sh开头的文件: 
locate /etc/sh

搜索用户主目录下,所有以m开头的文件,并且忽略大小写:
locate -i ~/m

2. find
用来在指定目录下查找文件。

  • 语法:
find path [option] 

option
    -mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
    -amin n : 在过去 n 分钟内被读取过
    -anewer file : 比文件 file 更晚被读取过的文件
    -atime n : 在过去n天内被读取过的文件
    -cmin n : 在过去 n 分钟内被修改过
    -cnewer file :比文件 file 更新的文件
    -ctime n : 在过去n天内被修改过的文件
    -empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name
    -ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写
    -name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
    -size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
    -type c : 文件类型是 c 的文件。 d:目录; c:字型装置文件; b:区块装置文件; p:具名贮列; f:一般文件; l:符号连结; s:socket
    -pid n : process id 是 n 的文件

你可以使用 ( ) 将运算式分隔,并使用下列运算。
exp1 -and exp2
! expr
-not expr
exp1 -or exp2
exp1, exp2
  • 实例
将目前目录及其子目录下所有延伸档名是 c 的文件列出来。
find . -name "*.c"

进程/负载/线程

1. ps 显示进程

  • 格式
ps [option]
option
    -A 显示所有程序
    -a 显示线性
    -u 以用户为主的格式来显示程序状况
    -x 显示所有程序,不以终端机来区分
    -e 列出程序时,显示每个程序所使用的环境变量
    -f 用ASCII字符显示树状结构,表达程序间的相互关系
  • 常用:
ps -aux | grep java
ps -ef | grep java

2. top 实时显示进程动态
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。

  • 格式
top [option]

option 
    -d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。 
    -p 通过指定监控进程ID来仅仅监控某个进程的状态。 
    -q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。 
    -S 指定累计模式 
    -s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。 
    -i 使top不显示任何闲置或者僵死进程。 
    -c 显示整个命令行而不只是显示命令名

-实例

top   //每隔5秒显式所有进程的资源占用情况
top -d 2  //每隔2秒显式所有进程的资源占用情况
top -c  //每隔5秒显式进程的资源占用情况,并显示进程的命令行参数(默认只有进程名)
top -p 12345 -p 6789//每隔5秒显示pid是12345和pid是6789的两个进程的资源占用情况
top -d 2 -c -p 123456 //每隔2秒显示pid是12345的进程的资源使用情况,并显式该进程启动的命令行参数

3. kill终止进程
向指定的进程送信号或终止进程。kill指令的用途是送一个signal给某一个process;

  • 格式
ps [option] pid
option
    -9 强行终止进程

4. 查看负载
查看服务器负载常用命令 top uptime w

[[email protected] ~]# uptime
 06:45:17 up  1:39,  1 user,  load average: 0.00, 0.01, 0.05
[[email protected] ~]# w
 06:45:18 up  1:39,  1 user,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             [email protected]   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.25.1     05:06    6.00s  0.10s  0.00s w

load average 分别对应过去1分钟,5分钟,15分钟的负载平均值.

5. 查看进程中的线程

  • ps -T -p <pid> 查看进程号为pid的进程创建的所有线程
  • top -H 列出所有Linux线程
  • top -H -p <pid> 查看进程号为pid的进程内运行的线程
  • Htop工具

磁盘/目录情况

1. df 查看磁盘
查看文件系统的磁盘使用情况

  • 格式
df [option]... [FILE]...

option 
    -h 使用人类可读格式
    -k 单位为k
    -m 单位为m
    -l 只显示本地文件系统
  • 常用
df -h 

2. du 查看文件/目录

用于显示目录或文件所占用的磁盘大小

  • 格式
du [-abcDhHklmsSx][-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>][--max-depth=<目录层数>][--help][--version][目录或文件]

option 
    -b或-bytes 显示目录或文件大小时,以byte为单位。
    -h或--human-readable 以K,M,G为单位,提高信息的可读性。
    -k或--kilobytes 以1024 bytes为单位。
    -m或--megabytes 以1MB为单位
    -s或--summarize 仅显示总计
    ...
  • 常用
du -sh /   查看/目录大小
du -sh /*  查看/目录下的文件及文件夹大小

用户/用户组/权限

1. 用户

  • 添加用户useradd
useradd [option] 用户名

option
    -c comment 指定一段注释性描述。
    -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
    -g 用户组 指定用户所属的用户组。
    -G 用户组,用户组 指定用户所属的附加组。
    -s Shell文件 指定用户的登录Shell。
    -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

常用:
useradd tom  //创建一个名为tom的用户,默认在home目录下
  • 删除用户userdel
userdel [option] 用户名

option 
    -r 把用户主目录也一起删除

常用:
userdel -r tom //删除用户tom在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录
  • 修改密码passwd
passwd [option] 用户名

option 
    -l 锁定口令, 即禁用账号
    -u 口令解锁
    -d 使账号无口令
    -f 强迫用户下次登入时修改口令

常用:
passwd // 修改当前用户口令
  • 修改账号usermod
    修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。
usermod [option] 用户名

常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。
另外,有些系统可以使用选项:-l 新用户名
这个选项指定一个新的账号,即将原来的用户名改为新的用户名。
usermod -s /bin/ksh -d /home/z –g developer tom 将用户tom的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer。

2. 用户组
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

  • 新增用户组groupadd
groupadd [option] 用户组

option
    -g GID 指定新用户组的组标识号(GID)。
    -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。

常用:
groupadd group1  //向系统中增加了一个新组group1,新组的组标识号是在当前已有的最大组标识号的基础上加1。

groupadd -g 101 group2 //此命令向系统中增加了一个新组group2,同时指定新组的组标识号是101。
  • 删除用户组groupdel
groupdel 用户组

常用:
groupdel group1 //此命令从系统中删除组group1。
  • 修改用户组的属性groupmod
groupmod 选项 用户组

option
    -g GID 为用户组指定新的组标识号。
    -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
    -n新用户组 将用户组的名字改为新名字

常用:
groupmod -g 102 group2 //此命令将组group2的组标识号修改为102。

groupmod –g 10000 -n group3 group2 //此命令将组group2的标识号改为10000,组名修改为group3。
  • 用户组切换newgrp
    如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。
    用户可以在登录后,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组。

    newgrp root

    将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组。类似于用户账号的管理,用户组的管理也可以通过集成的系统管理工具来完成。

3. 权限

  • 文件权限chmod
    文件权限针对三类对象, 所属用户owner: o; 所属组group: g; 其他人other: o;每类对象都定义了三种权限r w x, 根据二进制 r = 4, w = 2, x = 1;
ls -l
drwxrwxr-x 2 kun kun     4096 7月  25 12:06 LGPL
依次为:文件权限  连接数 文件所有者  文件所属组  文件大小(默认单位B)  文件最后被修改时间  文件名
文件权限中第一个字符代表该文件是目录或文件等
d     目录
-     文件    
l     链接文件
b     设备文件里面的可供存储的接口设备
c     设备文件里面的穿行端口设备,例如鼠标键盘
第一个字符后三个一组分别为文件所有者权限,同用户组权限,其他非本用户组权限
三个权限 rwx 对应read write  execute

chmod 命令格式及常用操作如下:

chmod [option]...  [file]...

option 
    -f:错误信息不显示
    -R:递归修改权限
    -v:显示详细修改权限过程
    -c:和-v一样,但只有出现改变时才显示

常用:
chmod  u+x test.sh // 为test.sh添加可执行权限
chmod  600 test.txt // 为test添加可读可写权限;
  • 用户权限chown
    将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。一般只有root权限才能使用该命令
chown [option] [--help] [--version] user[:group] file...

option
    user : 新的文件拥有者的使用者 ID
    group : 新的文件拥有者的使用者组(group)
    -c : 显示更改的部分的信息
    -f : 忽略错误信息
    -h :修复符号链接
    -v : 显示详细的处理信息
    -R : 处理指定目录以及其子目录下的所有文件

常用:
chown root:group file1.txt // 将file1.txt所属用户设置为root, 用户组设置为group

文本显示

1. tail

tail -10  install.log   查看文件尾部的10行
tail -f install.log    小f跟踪文件的唯一inode号,就算文件改名后,还是跟踪原来这个inode表示的文件
tail -F install.log    大F按照文件名来跟踪

2. head

head -10  install.log   查看文件头部的10行

3. cat

由第一行显示文件内容(一次性将文件内容全部输出)

cat  [option] 文件名

option
    -b    列出行号,空白行不标号
    -n    列出行号,空白行也标有行号
    -A  相当于-vET的整合
    -T    将[tab]按键以^T显示出来
    -v   列出一些看不见的字符
    -E   将行未的断行字符以$显示出来

4. tac

由最后一行开始显示,为cat的倒写

5. more

more 文件名    //可以翻页查看, 下翻一页(空格)    上翻一页(b)   退出(q)

6. less

less 文件名  // 可以翻页查看,下翻一页(空格)    上翻一页(b),上翻一行(↑)  下翻一行(↓) 可以搜索关键字(/keyword)

7. nl

添加行号显示

远程登入/文件传输

1. 远程登入ssh

  • 格式
ssh ip地址
  • 服务器之间配置免密登入
    1.在当前服务器生成ssh公私钥对: ssh-keygen -t rsa ;

    ? 生成之后会在用户根目录下生成一个.ssh文件夹; 在.ssh文件夹中有几个文件: authorized_keys用于存放远程免密登入公钥, 主要通过这个文件记录多台机器的公钥; id_rsa生成的私钥文件; id_rsa.pub生成的公钥文件; know_hosts已知的公钥清单;

    2.将公钥拷贝到需要远程登入的那台服务器认证文件authorized_keys中, 使用ssh-copy-id 远程服务器ip 命令拷贝

    3.远程登入测试,若不在需要密码即可登入,则成功了.

2. 文件传输scp

  • 格式
scp [option] file_source file_target 

option
    -1: 强制scp命令使用协议ssh1
    -2: 强制scp命令使用协议ssh2
    -4: 强制scp命令只使用IPv4寻址
    -6: 强制scp命令只使用IPv6寻址
    -B: 使用批处理模式(传输过程中不询问传输口令或短语)
    -C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
    -p:保留原文件的修改时间,访问时间和访问权限。
    -q: 不显示传输进度条。
    -r: 递归复制整个目录。
    -v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
    -c cipher: 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
    -F ssh_config: 指定一个替代的ssh配置文件,此参数直接传递给ssh。
    -i identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
    -l limit: 限定用户所能使用的带宽,以Kbit/s为单位。
    -o ssh_option: 如果习惯于使用ssh_config(5)中的参数传递方式,
    -P port:注意是大写的P, port是指定数据传输用到的端口号
    -S program: 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
  • 常用

    scp  -rp fileName  -P52113  [email protected]:/tmp/
    
    命令行中: r表示目录,p代表权限, filename 为要拷贝文件/文件目录名称
    -P后面接端口号  [email protected]要拷贝到的目的主机ip  :后面接目的主机目录

服务管理

服务管理命令, centos6.x使用的是service和chkconfig; centos7.x之后使用的是systemctl 代替service和chkconfig

1. service

  • 常用
service network status   查看网络服务的状态
service network stop     停止网络服务
service network start    启动网络服务
service network restart  重启网络服务
service --status-all  查看系统中所有的后台服务

2. chkconfig

  • 常用

    chkconfig   查看所有服务器自启配置
    chkconfig iptables off   关掉指定服务的自动启动
    chkconfig iptables on   开启指定服务的自动启动

3. systemctl

  • 格式

    systemctl stop/start/restart/status/disable/enable  服务名称
  • 常用

    停止firewall  : systemctl stop firewall.service
    禁止firewall开机启动 : systemctl disable firewall.service
    firewall开机启动: systemctl enable firewall.service

系统启动级别管理

vi  /etc/inittab
# Default runlevel. The runlevels used are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault

花了几天时间整理了一下常用的linu命令, 可能还有一些遗漏, 日后再行补充....

以上是关于linux常用命令整理的主要内容,如果未能解决你的问题,请参考以下文章

Linux常用命令整理

Linux常用命令整理

C#常用代码片段备忘

linux常用命令整理:shell基础

linux常用命令整理

Linux上常用命令整理—— cat