Linux - 常见命令
前言:linux命令的格式
command [-options] [parameter]
[-options]:选项,可用来对命令进行控制,也可以省略
[parameter]:传给命令的参数,可以是 0,1,或者多个
[]代表可选
options可以合并一起写,例如 ls -a -l -h = ls -alh
一、文件 / 目录
1.1 ls 查看目录内容
参数:
ls = list
-a = all
-a 示例:
-l -h示例(-h需要配合-l使用):
通配符:
* 示例
1.2 cd 切换目录
cd = change directory
相对路径 vs 绝对路径
1.3 wc -l 文件名,查看文件行数
https://blog.csdn.net/susu1083018911/article/details/140838989
二、目录管理
2.1 cd命令(切换目录)
2.2 ls命令 (列出目录)
2.3 pwd (查看当前所在目录)
print work directory
三、创建 和 删除 操作
3.1 mkdir [目录名称] 创建目录
make directory
3.2 rm [文件名] 删除指定文件
3.3 rm -r [目录名] 删除指定目录
直接从磁盘上删除,不能恢复
3.4 touch[文件名] 如果文件不存在,新建文件
四、拷贝 和 移动 文件
4.1 tree 以树状图列出文件目录结构
tree [目录名]
可能会出现无法找到tree命令,需要输入命令下载:
- sudo apt-get install tree
4.2 cp 复制文件或者目录
cp 源文件 目标文件
基本命令示例:
~/中的~:指的是用户的家目录
./中的. : 指的是当前目录~/Desktop
-i 示例:
让用户选择是否覆盖
4.3 mv 移动文件或目录
mv 源文件 目标文件
五、查看文件内容
5.1 cat 查看文件内容、合并文件等
cat 文件名
5.2 more 分屏显示文件内容
more 文件名
5.3 grep 搜索文本文件内容
grep 搜索文本 文件名
grep
命令用来查找文本,这里是最常用的几个操作例子:
- 查找文件
1.txt
中含有"hello"
字符串的行:grep hello 1.txt
- 查找带有空格的长字符串"RunId Level Statistic"的行:grep 'RunId Level Statistic' run.log
- 查找多个带有空格的长字符串"RunId Level Statistic"或"DefId Level Statistic"的行(或关系):
#使用基本正则表达式时,元字符被解释为字面字符。要保留元字符的特殊含义,必须用反斜杠( \ )对它们进行转义。这就是为什么我们要转义 OR 运算符(|)。 grep 'RunId Level Statistic\|DefId Level Statistic' run.log #-E代表使用扩展正则表达式,不需要对 OR 运算符 (|) 进行转义 grep -E 'RunId Level Statistic|DefId Level Statistic' run.log
-
- 查找多个带有空格的长字符串"RunId Level Statistic"的行(与关系):
-
#必须同时满足三个条件(word1、word2和word3)才匹配 grep word1 file.txt | grep word2 |grep word3
详见:grep同时匹配多个关键字或任意关键字 https://www.jb51.net/article/257709.htm
- 使用正则表达式查找文件
1.txt
中含有数字的行:grep -E "\d." 1.txt
- 查找文件
1.txt
中不包含"hello"
字符串的行:grep -v hello 1.txt
- 查找文件
1.txt
中含有"movie"
字符串的行以及它前面的3行:grep movie -B 3 1.xt
- 查找文件
1.txt
中含有"movie"
字符串的行以及它后面的3行:grep movie -A 3 1.xt
- 查找文件
1.txt
中含有"4."
字符串的行以及它前后3行:grep 4. -C 3 1.txt
-----------------------------------------------------------------------------
查询包含空格的关键字时,需要加上双引号:
模式查找(正则表达式)
六、其他
6.1 echo 文字内容
6.2 重定向> 和 >>
6.3 管道 |
七、远程管理常用命令
7.1 shutdown 关机/重启
常用命令总结:
7.2 ipconfig 查看/配置网卡信息
网卡 和 IP地址 是什么?
127.0.0.1 被称为本地回环/环回地址,一般用来测试本机网卡是否正常
活用管道,精简结果:
7.3 ping 检查目标主机是否连接正常
7.4 ssh 远程登录
SSH基础
linux, macos系统都是自带SSH软件的,windows需要自己安装。
SSH客户端使用
SSH服务器默认端口号是22
示例:
7.5 scp 远程复制文件
注意:
- scp命令的参数是大写的-P
- ssh命令的参数是小写的-p
示例:
不必连接到远程服务器,直接远程复制
7.6 ssh-keygen 设置公钥私钥,免密码登录
提示:有关SSH配置信息都保存在用户家目录下的.ssh目录下
公钥用来加密和认证,私钥用来解密和签名
ssh -keygen示例:一路回车
ssh-copy-id 示例:
7.7 设置别名
八、用户权限相关命令
8.1 权限/用户组 基本概念
权限:
用户组:
8.2 ls -l 扩展
从左到右,分别是:
权限组 硬连接数 拥有者 用户组 文件/目录大小 更新时间 文件/目录名称
硬连接数
- 文件的硬连接数只有1
- 目录的硬连接数 = 子目录个数 + 2(绝对路径访问,当前路径访问)
代表着有多少种途径访问到这个资源
8.3 chmod 修改权限
chmod = change mode
8.4 sudo 切换到 root 超级用户
九、组/用户管理
9.1 组管理
9.2 用户管理 - 增删改查
9.3 用户管理 - 查看用户信息
9.4 切换用户
su - 用户名 : 这里的-指的是,切换用户同时切换到新用户的家目录
十、系统信息相关命令
10.1 时间和日期
10.2 磁盘和目录空间
10.3 进程信息 - ps / top / kill
top示例
能快速找出谁占用内存/cpu最多
10.4 ps aux 和 ps -ef 区别
如果想查看进程的CPU占用率和内存占用率,可以使用aux
如果想查看进程的父进程ID和完整的COMMAND命令,可以使用ef
参考文献:CSDN博主「自由de单车」的原创文章 - https://blog.csdn.net/ljfrocky/article/details/50187165
选项含义:
-e:等价于 ‘-A’ ,表示列出全部的进程
-f:显示全部的列(显示全字段)
1)展示的列不同
-ef
是System V展示风格
- UID:用户ID
- PID:进程ID
- PPID:父进程ID
- C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高
- STIME:进程启动的时间
- TTY:完整的终端名称
- TIME:CPU时间
- CMD:完整的启动进程所用的命令和参数
aux
是BSD风格
- USER:用户名称
- PID:进程号
- %CPU:进程占用CPU的百分比
- %MEM:进程占用物理内存的百分比
- VSZ:进程占用的虚拟内存大小(单位:KB)
- RSS:进程占用的物理内存大小(单位:KB)
- TT:终端名称(缩写),若为?,则代表此进程与终端无关,因为它们是由系统启动的
- STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
- STARTED:进程的启动时间
- TIME:CPU时间,即进程使用CPU的总时间
- COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
2)某一列过长,aux会截断,而ef不会
常用其他命令
查看某个服务有几个进程在跑
ps -ef | grep riskSumm(模糊搜索)
放大/缩小控制台的字体
以乌邦图为例:
- 缩小:ctrl + -
- 放大:ctrl + shift + =
为何放大不是ctrl + "+", 因为虚拟键盘默认不显示“+”,“+”的位置默认是“=”。只有按下shift才会变成“+”。
find 查找文件
查找名字中带“1”的文件:
ln -s 软链接
硬链接 vs 软链接(重点)
tar 打包/解包
注意:tar命令 只打包,不压缩
示例:
gzip 压缩/解压缩 - gzip / bzip2
apt 安装软件
配置软件源