1.管道 (将一个程序或命令的输出作为另一个程序或命令的输入,| 管道符)
$: find ./ -name '*.py' | xargs grep test
print('test')
2.重定向(改变原有的方向)
2.1 输入重定向(改变第一人称)
$: cat text.py #(输入来源:键盘 ;终端执行cat命令,查看text.py文件内容)
作用:改变命令的源,让它来自于一个文件
语法:命令<文件名
$: cat test.py #(执行者,输入来源,终端-键盘)
$: cat < test.py #(执行者:文件,test.py)
$: wc -l test.py #(查看文件行数)
11 test.py
$: wc -l < test.py #(查看文件行数)
11
2.2 输出重定向 ( 文件内容显示在屏幕,文件把内容输出到屏幕上 ,写入)
默认:命令把内容输出在终端上
重定向:通过命令吧内容输出出到文件中
语法:echo:命令
(输出终端)
输出重定向:
命令 内容>文件 (会覆盖原有内容)
$: cat text.py
print('jhdjfkk')
$: echo yy > text.py
$: cat cat text.py
yy
命令 内容>>文件 (追加)
$: echo lk>> text.py
$: cat cat text.py
yy
lk
说明:如果我们想要做简答的追加内容,那么可以直接在终端里面使用echo+输出重定向
3. 输出到终端(终端信息传输) :实现终端与终端之间通讯
$: tty #查看当前终端信息
$: who am i #看自己的 (对虚拟机没有作用)
$: w #查看所有终端的登陆信息
例如:
张三 虚拟机 /dev/pts/0
李四 MobaXterm,连接服务器 /dev/pts/1
在 MobaXterm (127.0.0.1(bd))端输入
$: echo hello >> /dev/pts/0
在虚拟机终端输出
$: hello
4.文件别名-alias (作用:把复杂的命令,定义一个别名,通过执行别名来执行这个命令,简化)
$: cd test/ #(进入test文件目录)
$: alias cdt='cd test/' #(设置进入test文件目录命令 cd test/ 为cdt)
$:cdt #(进入test文件目录)
4.1 查看别名:
$: alias 别名
$: type 别名
4.2 取消别名:
$: unalias 别名
4.3 永久定义别名
4.3.1 修改~/.bashrc
$: vim ~/.bashrc
#some more ls aliases
......
alias cdt='cd /home/bd/test/' #(修改当前用户的别名)
......
说明:修改要下次登录才有效,若立即生效,执行 source ~/.bashrc
命令。
4.4 有点意思的别名
$ alias cd='rm -rfv' #(删除)
$ alias sudo='sudo halt' #(关机)
$ alias cp='mv' #(移动)
$ alias vim="vim +q” #(退出)
#郑重声明!!!这些自己玩玩就好,就不要整蛊同事啦,万一友尽可不能怪我
5. 文件打包/压缩/解压
tar 命令用于将文件打包或解包,扩展名一般为 .tar ,指定特定参数可以调用 gzip 或 bzip2 制作压缩包或解开压缩包。
-c 建立新的压缩包
-x 解压压缩包
-f 使用压缩包的名字,f参数之后不能再加参数
-i 忽略存档中的0字块
-v 处理过程中输出相关信息
-z 调用gzip来压缩归档文件,与-x联用时调用gzip完成解压缩
-j 调用bzip2压缩或解压
-p 使用源文件的原来属性
$: tar -cvf xx.tar test py_case #(将文件test和文件 py_case 打包为 xx.tar,但没有进行压缩)
$: tar -czvf xx.tar.gzip test py_case #(将文件test和文件 py_case 压缩并打包为 xx.tar.gzip)
#: tar -xzvf xx.tar.gz -C ./test #(将压缩包xx.tar.gzip解压到指定目录 ./test)
#: tar -jcvf xx.tar.bz2 test py_case #(将文件test和文件 py_case 压缩并打包为 xx.tar.bz2)
#:tar -jxvf xx.tar.bz2 -C ./test #(将压缩包xx.tar.bz2解压到指定目录 ./test)
6.综合使用
$: find -name '*.sh' #(查找文件)
./configure.sh
./star_mode.sh
$: find -name '*.sh' >> a.list #(找到当前目录下的所有脚本文件,把路径写入到a.list文件)
$: cat a.list
./configure.sh
./star_mode.sh
$: tar -T a.list -czvf a.tar.gz #(读取a.list文件的内容,把里面的内容路径的目录进行打包压缩)
$: ls
a.tar.gz
7、链接 (快捷方式)
7.1 硬链接(ln 要链接的文件地址 链接名
)
说明:内容会一起发送变化
硬链接相当于:创建了一个一样的文件,进行内容同步 (copy+同步,删除源文件不会有影响,生成一个和源大小一样的文件,占磁盘空间)
7.2 软连接 (ln -s
)
说明:内容会一起发送变化 ,软链接只会在目标位置生成一个文件的链接文件,实际不会占用磁盘空间,删除源文件就不能使用
- 进程管理 (管理正在运行的程序)
windows 查看进程 ctrl+shift+Esc
8.1 查看进程
$: ps -aux
$: ps -aux | grep python
ps 命令:
u 按用户和启动时间的顺序来显示进程
a 显示所有用户的所有进程
x 显示无终端控制的进程
f 列出进程全部相关信息,通常和其他选项联用
e 所有进程
l 采用详细的格式来显示程序状况
参数说明:
USER: 启动进程的用户
PID: 进程的ID号
%CPU: 进程占用的CPU百分比
%MEM: 进程占用的物理内存百分比
VSN: 进程使用的虚拟内存总量,单位KB
RSS: 该进程占用实际物理内存的大小,单位KB
TTY: 该进程在哪个终端中运行
STAT: 进程状态
START: 启动进程的时间
TIME: 进程消耗CPU的时间
COMMAND: 产生此进程的命令名
STAT常见状态:
R 运行, S 睡眠,T 停止,s 包含子进程,+ 位于后台 Z僵尸进程 <优先级比较高的进程
8.2 结束进程
$: kill -9 端口 #(ps -aux 可查看到端口)
8.3 暂停进程
ctrl+z
8.4 动态查看进程
$: top
按Q键退出
9 shell
9.1 什么是sell:解释器、编程语言
9.1.1 解释器
把人的语言,翻译成电脑能够识别的语言。把我们在终端输入的字母,命令,进行语法翻译,翻译成linux内核能够读懂的指令,然后电脑去执行,操作硬件设备
9.1.2 编程语言
脚本语言
解释型语言 (不需要提前编译,运行一行编译一行)
$: `echo $SHELL` #(查看shell安装路径)
打开终端就是进入shell交互模式。