常用Bash命令
Bash命令适用于Linux和Mac下的terminal
- 创建空目录(在当前目录下):
mkdir xxx
: - 切换目录:
cd <目录路径>
(<目录路径>
可以是绝对路径,也可以是当前目录的相对路径) - 显示当前目录路径:
pwd
- 查看当前文件夹下的文件:
ls
- 删除文件:
rm [文件名]
;rm
:remove;-r
:recursive,递归删除目录下的子目录;-f
:force,强制删除(针对一些不可写的文)。
删除整个文件夹:rm -r [文件夹名]
。 - 移动/重命名文件:
mv [source] [destination]
mv
:move[source]
和[destination]
的几种情况:
1、source为文件,destination为目录:将文件移动到对应目录中。
2、source为文件,destination为文件:对文件改名(实质使用source文件覆盖des文件)。
3、source为目录,destination为目录:destination存在,则移动source目录到des目录中;否则是改名。 拷贝文件:
cp [source_file] [destination]
,destination省略即为拷贝到当前目录。查看当前目录下各个文件及目录占用空间大小:
du -sh *
,du -sh * | sort -n
统计文件大小,并按文件大小排序。du
: disk usage,-s, –summarize
: display only total for each directory(不列举子目录的大小)-h, –human-readable
: print sizes in human readable format(按KB/M/G的格式,否则会只打印Byte字节数)
最后*
表示列出所有的文件&目录使程序在后台运行,
nohup command
,这样关闭当前terminal也不会杀掉进程(使用ssh连接的场景,ssh断了执行的命令还会继续执行)nohup
: no hangup,hangup意为“挂断”,hangup (HUP) signal表示用户退出登陆了(关闭了当前的terminal)(即hang up),因此程序就停止了。nohup 命令即保证了程序不会随着用户的log off而结束。使程序打印到某个文件中,
command >file_name 2>&1 &
,这样程序的标准输出都会直接写到指定的文件中。>
:表示redirection,即将标准输出的结果输出到文件中(而不是输出到命令行中),若>
前未写明file discriptor则默认为标准输出。2
:是一种file discriptor,表示stderr,2>&1
表示将stderr的结果redirect到和1
相同的文件中(&
表示相同文件)(>
后要么接file_name,要么接&x
)。
数字的含义:表示标准输入输出的类型,0 - stdin,1 - stdout,2 - stderr。
最后的&
:command的最后接&
表示命令在后台运行,terminal不用等到当前命令结束才能执行下一条命令。查看某个进程:
ps process_id
;
查看当前所有进程:ps -ef
,列出所有的活动进程;
若要筛选某些进程,ps -ef | grep xxx
,把名字包含xxx的进程列出来。结束进程:
kill PID
,结束pid对应的进程,pid:process identifier,即进程对应的序号。
eg.1
2
3
4
5
6
7
8
9
10
11
12(base) renli-mbp:test lrrr$ python test.py >log &
[1] 40207
(base) renli-mbp:test lrrr$ ps 40207
PID TT STAT TIME COMMAND
(base) renli-mbp:test lrrr$ kill 40207
(base) renli-mbp:test lrrr$ ps 40207
PID TT STAT TIME COMMAND
[1]+ Terminated: 15 python test.py > log
# 这个时候进程已经结束了,只是还没有被回收,因此会显示Terminated
(base) renli-mbp:test lrrr$ ps 40207
PID TT STAT TIME COMMAND
# 这时进程已经真正消失了查看文件行数:
wc -l file
查看大文件:
less file
,在查看之前不会加载整个文件,因此速度快。筛选命令:
grep [表达式] [文件]
,是一个基于正则表达式的文本匹配工具,全称是Global Regular Expression Print。
其将文件中符合表达式的行筛选并打印出来,若不指定任何文件名称,则grep
会从标准输入中读取。
通常用法:和管道符号|
相结合,管道符号的用法是:command 1 | command 2
,他的功能是把第一个命令command 1执行的结果作为输入传给command 2
示例:ps -ef | grep python
:筛选出所有python相关的进程信息。排序命令:
sort [各种选项] [文件]
,其是对文件的行进行排序,未指定文件则默认从标准输入中读取。
默认是按ASCII码排序,将文件的行从首字母开始升序排序(即a-z的顺序)。
常用选项:-u
:去除重复行-d
:忽略除英文字母、数字及空格字符外的其他字符-r
:反向排序-n
:依照数值的大小排序-t
:分隔字符,指定排序时所用的栏位分隔字符1
2
3
4
5
6
7
8% 文件如下
apple:10:2.5
orange:20:3.4
banana:30:5.5
pear:90:2.3
% 以:未分隔符,按第二列进行数值排序
sort -n -k 2 -t : facebook.txt % -k指定列数
用法和grep
类似,通常也是利用管道符|
,对前一个命令的结果进行排序显示。
Post Date: 2019-08-02
版权声明: 本文为原创文章,转载请注明出处