快捷键盘命令
$ cat /proc/cpuinfo | grep name
用来查看CPU个数以及型号
$ top
查看各个线程占用资源的情况
$uname -a
查看电脑安装的linux版本
$pwd
显示工作目录。
$ifconfig
显示或设置网络设备。
$ping
ping直接加IP地址可以查看是否联通。
$env
查看环境变量。
快捷命令行
tee命令
非常好用的tee命令,与相关execute语句合用则可以实现在Terminal下屏幕实时输出与输出流保存。
python train.py | tee output.txt
-a: 向文件中重定向时使用追加模式,默认情况下tee命令会自动覆盖原文件
-i: 忽略终端信号(Interrupt),比如终端输入的Ctrl+C
scp远程复制
scp 需要复制的文件 用户名@ip:/目标目录
scp cebent.tar netbank@10.1.244.228:/app/ceb/app
把当前服务器目录下的cebent.tar复制到用户名为netbank,ip为10.1.244.228的/app/ceb/app目录下。
如在ssh平台中常用的语句为例来解释相关的语句使用方法:注意scp一定是由前者复制往后者,方向是不能发生任何变化的。
scp -r -P 2222 hkunlei@172.22.217.59:/home/hkunlei/home/hardnet-1.0/hardnet-master ./hardnet
Linux查看文件夹下文件个数或者文件夹个数
ll | wc -l
:查看文件夹下所有的文件和文件夹。也就是统计ls -l命令所输出的行数。
ll |grep "^-"| wc -l
:查看某个文件夹下文件的个数。
ll -R|grep "^-"| wc -l
:递归查看某个文件夹下文件的个数,包括子文件夹下的文件个数。
ll |grep "^d"| wc -l
:查看某个文件夹下文件夹的个数。
ll -R |grep "^d"| wc -l
:递归查看某个文件夹下文件夹的个数,包括子文件夹下的文件夹个数。
说明:
ll/ls -l:长列表输出该目录下文件信息(注意这里的文件可能是目录、链接、设备文件等);
grep “^-”:将长列表输出信息过滤,只保留一般文件,如果只保留目录就是 ^d;
wc -l:统计输出信息的行数,也就是过滤之后的文件信息行数,对应文件个数。
du 查看文件大小 / df查看磁盘空间
du的用法
du命令用来查看目录或文件所占用磁盘空间的大小。常用选项组合为:du -sh
du常用的选项:
-h:以人类可读的方式显示
-a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小
-s:显示目录占用的磁盘空间大小,不要显示其下子目录和文件占用的磁盘空间大小
-c:显示几个目录或文件占用的磁盘空间大小,还要统计它们的总和
--apparent-size:显示目录或文件自身的大小
du -sh
: 查看当前目录总共占的容量。而不单独列出各子项占用的容量,在命令的执行中经常需要较长的处理时间。
du -sh ./*
: 可以查看当前文件夹目录下的一级子文件夹容量,语法效果等同于:du -ah --max-depth=1 *
df -h ./*
: 可以查看硬盘的使用情况
linux查看端口
基本命令是net-tools,介绍最常见的网络端口命令netstat。
常用选项:
-t: 显示TCP端口
-u: 显示UDP端口
-l: 显示监听中的服务端口
-p: 显示监听端口的进程信息
-n: 不要解析服务名称(使用端口号显示)
-a: 显示所有连接和监听端口
netstat -na | grep 8095
1.find
find命令写作:find < path > < expression > < cmd >
path: 所要搜索的目录及其所有子目录。默认为当前目录。
expression: 所要搜索的文件的特征。
cmd: 对搜索结果进行特定的处理。
如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。
常见选项:
-name 根据文件名称查找(严格区分大小写,如果文件名中间有空格,则必须把文件名用双引号引起来)
-iname 根据文件名查找(不区分大小写)
-user 根据文件属主进行查找
-group 根据文件属组进行查找
例如:
find /dir -name filename
在/dir目录及其子目录下面查找名字为filename的文件
find . -name "*.c"
在当前目录及其子目录(用“.”表示)中查找任何扩展名为“c”的文件(通配符)
2.locate
locate命令不是实时查找,所以查找的结果不精确,但查找速度很快。因为它查找的不是目录,而是一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
locate使用格式
locate [指定目录]
例:查找所有包含passwd的文件
#locate passwd
例:查找所有包含passwd的文件,并且只显示前十个
#locate -n 10 passwd
3.which
which命令是查找命令是否存在,以及命令的存放位置在哪儿。
例:#which ls
4.whereis
whereis命令只能用于搜索程序名,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
whereis命令的使用实例:
#whereis vim
5.type
type命令用来区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的。如果一个命令是外部命令,那么使用-p参数,会显示该命令的路径,相当于which命令。
#type cd
系统会提示,cd是shell的自带命令(build-in)。
#type grep
系统会提示,grep是一个外部命令,并显示该命令的路径。
#type -p vim
加上-p参数后,就相当于which命令。
6. mv
功能说明:移动或更名现有的文件或目录。
语 法:mv [-bfiuv][- -help][- -version][-S <附加字尾>][-V <方法>][源文件或目录][目标文件或目录]
参 数:
-b或–backup 若需覆盖文件,则覆盖前先行备份。
-f或–force 若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文 件或目录。
-i或–interactive 覆盖前先行询问用户。
-u或–update 在移动或更改文件名时,若目标文件已存在,且其文件日期比源文件新,则不覆盖目标文件。
例如:
mv -i 要移动的文件 目标路径(如果有重复文件,会有提示信息)
7. rcp(remote copy) /scp
功能说明:远端复制文件或目录。
语 法:rcp [-pr][源文件或目录][目标文件或目录] 或 rcp [-pr][源文件或目录…][目标文件]
补充说明:rcp指令用在远端复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。
参 数:
-p 保留源文件或目录的属性,包括拥有者,所属群组,权限与时间。
-r 递归处理,将指定目录下的文件与子目录一并处理。
8. rm(remove)
功能说明:删除文件或目录。
语 法:rm [-dfirv][–help][–version][文件或目录…]
补充说明:执行rm指令可删除文件或目录,如欲删除目录必须加上参数"-r",否则预设仅会删除文件。
参 数:
-d或–directory 直接把欲删除的目录的硬连接数据删成0,删除该目录。
-f或–force 强制删除文件或目录。
-i或–interactive 删除既有文件或目录之前先询问用户。
-r或-R或–recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
例如:
rm -i file:删除file文件并有提示信息,y确认删除,n是调过
rm -rf dir1:删除一个叫做dir1的目录并同时删除其文件夹内所有内容
9. tftp(trivial file transfer protocol)
功能说明:传输文件。
语 法:tftp [主机名称或IP地址]
补充说明:FTP让用户得以下载存放于远端主机的文件,也能将文件上传到远端主机放置。tftp是简单的文字模式ftp程序,它所使用的指令和FTP类似。
10. cd(change directory)
功能说明:切换目录。
语 法:cd [目的目录]
补充说明:cd指令可让用户在不同的目录间切换,但该用户必须拥有足够的权限进入目的目录。
cd … 可进入上一层目录
cd - 可进入上一个进入的目录
cd ~ 可进入用户的home目录
cd / 可切换到根目录
cd cd后不加参数返回home目录
11. dirs
功能说明:显示目录记录。
语 法:dirs [+/-n -l]
补充说明:显示目录堆叠中的记录。
12. ls(list)
功能说明:列出目录内容。
补充说明:执行ls指令可列出目录的内容,包括文件和子目录的名称。
参 数:
-1 每列仅显示一个文件或目录名称。
-a或–all 下所有文件和目录。
-l 使用详细格式列表。
如果想取得详细的信息,可用ls –l / ll命令,这样就可以显示目录内容的详细信息。
13. ln
功能说明:建立链接。
补充说明:符号链接(软链接)需要使用带-s参数的ln命令来创建,符号链接删除链接文件不影响原文件。ln默认是建立硬链接,硬链接是直接引用,而符号链接是通过名称进行引用。
建立软链接:sudo ln -s /home/donghang/anaconda3/envs/awnas/lib/python3.7/site-packages/torch/lib/libcudnn_cnn_infer.so.8 /usr/lib
删除链接:rm –rf /usr/lib/libcudnn_cnn_infer.so.8
注意在文件的硬链接和软链接中:
如果原文件被删除,则软链接文件失去指向,变为不可用
如果原文件被删除,由于硬链接文件直接指向内容,因此不受影响
14. mkdir(make directories)
功能说明:建立目录
语 法:mkdir [-p][–help][–version][-m <目录属性>][目录名称]
补充说明:mkdir可建立目录并同时设置目录的权限。
参 数:
-m<目录属性>或–mode<目录属性> 建立目录时同时设置目录的权限。
-p或–parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录。
–help 显示帮助。
–verbose 执行时显示详细的信息。
–version 显示版本信息。
例如:
mkdir dir1 创建一个叫做“dir1”的目录
mkdir dir1 dir2 同时创建两个目录
mkdir系统默认新建立目录的权限数字代码为755,如果默认的路径无法满足要求,使用-m选项设置,比如mkdir -m777 test4
15. rmdir(remove directory)
功能说明:删除目录。
语 法:rmdir [-p][–help][–verbose][–version][目录…]
补充说明:当有空目录要删除时,可使用rmdir指令。
参 数:
-p或–parents 删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除。
–help 在线帮助。
–verbose 显示指令执行过程。
–version 显示版本信息。
16. tar(tape archive)
功能说明:备份文件。
补充说明:tar是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。
参数:
-c或–create 建立新的备份文件。
-f<备份文件>或–file=<备份文件> 指定备份文件。
-r或–append 新增文件到已存在的备份文件的结尾部分。
-v或–verbose 显示指令执行过程。
-x或–extract或–get 从备份文件中还原文件。
例如:
tar -cvf cebent.tar cebent:把cebent文件夹归档为cebent.tar文件
tar -xvf cebent.tar :解压缩文件cebent.tar
17. date显示系统时间
date:显示系统时间设置
date +%y%m%d:将日期显示为两位数的年、月、日的组合
date -s 06/18/14:将系统时间设置为2014年6月18日
date -s 14:20:50:将系统时间设置为14点20分50秒
date -s “2016-12-6 10:38:00”(好用)
18. su切换用户
su命令是最基本的命令之一,常用于不同用户间切换。例如如果登陆为user1,要切换到user2,只需要用如下命令:$su user2,输入正确密码之后就可以切换到user2。完成之后就可以用exit命令返回到user1。
su命令的常见用法是变成根用户或超级用户。
20. cp
cp 要复制的文件 目标路径
cp -i 要复制的文件 目标路径(如果有重复文件,会有提示信息)
cp -r 要复制的文件 目标路径(递归处理,将指定目录下的文件和子目录一起复制)
21. chmod:改变文件(目录)的权限
chmod 777 文件(r读:4,w写:2,x执行:1),一般切换到对应文件夹下chmod -r 777 *
用户和文件的关系定义为3类:第1类是文件所有者(文件主),即创建文件的人;第二类是同组用户,即几个有某些共同关系的用户组成的集体;第三类是其他用户。
22. cat
cat 文件:查看文件内容,一般为文本文件,从文件的第一行内容开始显示,文件过长的话只能看到最后一页,不适合查看长文件。
如查看CPU信息:cat /proc/cpuinfo | grep name
23. less
less 文件:更适用阅读较长较大的文件。 less命令中的“回车键、空格键和b”操作键功能和more的相同,还可以使用Page Up和 Page Down进行上下翻页,使用上下方向键对文本内容一行一行的上下移动,退出命令和more的也一样。还可以查找字符串,输入/要查找的字符串。
24. head
head –20 查看的文件名称:查看文件的前20行
ctrl+c可以退出
25. tail
tail –f 查看的文件名称(动态查看文件内容)
ctrl+c可以退出
26. who查看哪些用户登录以及工作在哪个控制台上
whoami:查看当前用户
27. touch
touch 文件名:创建一个空文件
touch -d 20141106 app-20141106.tar:更改文件的修改时间2014年11月6日00:00:00
28. uname
uname -a:显示当前系统的版本信息
uname -r:显示内核信息
Linux localhost.lw 2.6.32-358.el6.i686 #1 SMP Thu Feb21 21:50:49 UTC 2013 i686 i686 i386 GNU/Linux
显示x86_64表示为64位,i686则为32位。
29. wc
wc [option] [FILE]:该命令的功能是显示文件列表中各文件的行数、词数和字节数信息。如果不加任何命令选项,它分4栏显示统计信息,分别为行数(line)、字数(word)、字节数(character)和文件名。
30. grep
grep命令的格式为:grep [option] pattern [file]。
grep命令会到输入中或你指定的文件中查找包含匹配指定模式的字符的行。grep的输出就是包含了匹配模式的行。
例如在文件day中查找包含un的行,可以使用grep un day。
31. history
history:查看用户操作的命令
history 10:查看最近10行的命令
32. id
id 用户名:查看用户的UID、GID及其所属的组
33. 输出重定向>和>>
输出重定向:将命令的输出重定向到文件
date > test.log
:将date命令的输出重定向到test.log文件中,如果该文件非空则覆盖
date >> test.log
:将date命令的输出追加到test.log文件中
> 文件名
:清空文件的内容
34. 输入重定向<和<<
输入重定向:将文件的内容重定向到命令。
区分方法:命令总是在左侧,而重定向符号“指向”数据流动的方向。例如输入重定向小于号说明数据正在从输入文件流向命令。
例:wc < test.log:统计test.log文件的行数、词数和字节数。
内联输入重定向:允许你在命令行而不是文件指定输入重定向的数据。必须指定一个文本标记来划分要输入数据的开始和结尾,可以用任何字符串的值来作为文本标记,但在数据的开始和结尾必须一致
例:
netbank@HK-NBANK-WEB-T02:~/liuyh> wc << EOF
> test String1
> test String2
> test String3
> EOF
35. tee
功能说明:读取标准输入的数据,并将其内容输出成文件和屏幕,若文件以绝对路径存在,则必须保证父目录的存在。相比较于 >,tee命令可以同时将数据显示在屏幕上并保存在文件中。
语 法:tee [-ai][–help][–version][文件…]
补充说明:tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。
参 数:
-a或–append 附加到既有文件的后面,而非覆盖它.
-i-i或–ignore-interrupts 忽略中断信号。
–help 在线帮助。
–version 显示版本信息。
例:tee -a test.log
36. 管道
取代将命令的输出重定向到文件,你可以重定向输出到另一个命令。这个过程称为管道连接。不要以为管道链接会一个一个地运行。Linux系统实际上会同时运行这两个命令,在系统内部将他们连接起来。在第一个命令产生输出的同时,输出会被立即送给第二个命令。传输数据不会用到任何中间文件或缓冲区域。
command1| command2
例:ps -ef | grep java
37. 命令帮助
man 命令:查看某个命令的帮助信息
whatis 命令:了解该命令的大致用途
38. 反引号
在一串指令中,在``之内的指令将会被先执行,而其执行出来的结果将做为外部的输入信息。反引号允许你将shell命令的输出赋给变量。
反引号(`)在美式键盘上通常和波浪线(~)位于同一键位。
例如:testing=``test`
shell会运行反引号中的命令,并将其输出赋给变量testing。
39. 用户变量
除了环境变量,shell脚本允许在脚本中定义和使用自己的变量。定义变量允许临时存储数据并在整个脚本中使用,从而使shell脚本看起来更像计算机程序。用户变量可以是任何不超过20个字母、数字或下划线的文本字符串。用户变量区分大小写。值通过等号赋给用户变量。在变量、等号和值之间不能出现空格。shell脚本会自动决定变量值的数据类型。在脚本的整个生命周期中,shell脚本中定义的变量会一直保持着它们的值,但在shell脚本完成时删除掉。类似于系统变量,用户变量可通过美元符引用。
40. basename
basename命令会返回程序名而不包括路径。
例如bash shell中:echo basename $0
:打印程序的名称
命令行中:basename 文件名。
41. $#
$#特殊变量含有脚本运行时就有的命令行参数的个数。你可以在脚本中任何地方使用这个特殊变量,就跟普通变量一样。
42. #!/bin/bash
在通常的shell脚本文件时,必须在文件的第一行指定要使用的shell。其格式为:#!/bin/bash。在通常的shell脚本的行里,#用作注释行。shell脚本中的注释行是不被shell执行的。然而,shell脚本文件的第一行是个特例,#后接!号告诉shell用哪个shell来运行脚本(你可以用bash shell来运行你的脚本名称,也可以用其他shell)。在指定了shell之后,可在文件的每行输入命令,后加一个回车符即可编写脚本。
43. read
read命令接受从标准输入(键盘)或另一个文件描述符的输入。在收到输入后,read命令会将数据放进一个标准变量。
read命令的简单用法:
#echo命令使用了-n选项,它会移掉字符串末尾的换行符,允许脚本用户紧跟其#后输入数据
echo -n “Ener your name:”
read name
echo “Hello $name! Welcome toChina.”
read命令包含了-p选项,允许你直接在read命令行指定提示符:
read -p "Enter your name:"name
echo “Hello $name!Welcome toChina.”
read命令行可以接受多个参数,也可以在read命令行中不指定变量,那么read命令会将它收到的任何数据都放进特殊环境变量REPLY中,如果需要引用该变量即可。
44. sleep
sleep命令用于暂停执行某个命令或作业一定的时间,在指定的时间结束之后继续相关的命令或作业,时间默认为秒,例如暂停30秒,sleep 30
45. xargs
xargs用于从标准输入设备中读取并执行特定的命令。find命令的-exec参数可以对查找的结果进行批量处理,但是有一定的局限性,而xargs弥补了find命令中-exec参数的不足,xargs从标准输入设备中接收的指令以空格分隔,执行指定的linux/unix命令,显示执行结果,最后返回状态值并退出。语法格式为:xargs [参数] linux/unix命令 [参数] [命令操作对象]
例:删除find命令查找的所有文件
在利用find命令的-exec参数对查到的文件执行删除操作时,匹配到的所有文件都将传递给-exec执行。而有些系统对传递给exec命令的长度有限制,当匹配文件过多时,会产生溢出错误。例如“参数列太长”或“参数列溢出”。
在利用xargs执行find命令匹配文件时,每次只能获取一部分文件,xargs先处理已经获得的一部分文件,然后再继续获得下一部分文件,这就避免了产生类似-exec参数的溢出错误。
假设查找当前目录下的所有文件test并将其删除,命令执行如下:
find ./ -name test | xargs rm –f
46. ftp常用命令
ftp命令可以将文件上传到指定的远端FTP服务器,也可以从远端服务器上下载文件。
ftp常用的内部命令如下:
ascii:使用ascii类型传输方式。
bin:使用二进制文件传输文件。
bye:退出ftp会话
chmod mode file-name:将远程主机文件file-name的存取方式设置为mode,如:chmod 777 a.out
mkdir dir-name:在远程主机中建一目录。
delete remote-file:删除远程主机单个文件
mdelete [remote-file]:删除远程主机多个文件。
rmdir dir-name:删除远程主机目录。
get remote-file[local-file]: 将远程主机的文件remote-file传至本地硬盘的local-file。
mget remote-files:传输多个远程文件。
put local-file[remote-file]:将本地文件local-file传送至远程主机。
mput local-file:将多个文件传输至远程主机。
prompt:设置多个文件传输时的交互提示。
rename[from][to]:更改远程主机文件名。
status:显示当前ftp状态。
? [cmd]:同help。
47. export
功能说明:设置或显示环境变量。
语 法:export [-fnp][变量名称]=[变量设置值]
补充说明:在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该此登陆操作。
参 数:
-f 代表[变量名称]中为函数名称。
-n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
-p 列出所有的shell赋予程序的环境变量。
48. source
利用source或小数点(.)都可以将设定档的内容读进来目前的shell环境中。举例来说,我修改了~/.bashrc,那么不需要注销,立即以source ~/.bashrc就可以将刚刚最新设定的内容读进目前的环境中。
49. 关机和重启
重启命令:
1、reboot
2、shutdown -r now 立刻重启(root用户使用)
3、shutdown -r 10 过10分钟自动重启(root用户使用)
4、shutdown -r 22:22 在时间为22:22时候重启(root用户使用)
如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启
关机命令:
1、halt 立刻关机
2、poweroff 立刻关机
3、shutdown -h now 立刻关机(root用户使用)
4、shutdown -h 10 10分钟后自动关机
如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消重启
50. 进程和端口
1、根据进程pid查端口:
netstat -nap | grep pid
2、根据端口port查进程
netstat -nap | grep port
51.wget
Wget主要用于下载文件,在安装软件时会经常用到,常用命令如下:
1、下载单个文件:wget http://www.baidu.com。命令会直接在当前目录下载一个index.html的文件
2、将下载的文件存放到指定的文件夹下,同时重命名下载的文件,利用-O:wget -O /home/index http://www.baidu.com
部分转载自:https://blog.csdn.net/liuyongheng1991/article/details/80158451