linux命令大全

2017.03,入门开始

linux下文件的颜色含义:

绿色:可执行文件

红色:压缩文件

深蓝色:目录

浅蓝色:链接文件

灰色:其他的一些文件


命令介绍部分参考来自: http://man.linuxde.net/grep

分类参考:http://www.cnblogs.com/xlmeng1988/archive/2013/01/08/linux_command.html


重要的事情说在前头,命令多,选项更多,是无法全部记住了,所以要学会查询帮助文档--man。

man <命令>:就可以查看命令的相关说明文档。从命令的介绍到命令的参数、用法都非常详细。


1、目录/路径相关

pwd(print work directory):显示当前目录所在的路径(显示的是连接路径)

pwd -P 显示当前目录的物理路径。(如当前目录是软链,则显示原文件路径。否则pwd -P将等于pwd)

pwd -L显示当前目录的链接路径。(-L选项,是默认选项)

ls(List):列出当前目录下的文件和目录(没有详细信息)。ls (选项) (参数)

ls -l:(单列格式)列出了文件夹大小、读写权限、文件属主、大小、修改日期、时间、文件/目录的名字

total 10,标示当前目录下文件大小的总和为10k。

drwx------ 2 root root 4096 Sep  8  2016 temp

drwx------,权限信息:

第一个字符:‘-’表示普通文件,‘d’代表目录,‘l’代表链接,‘b’代表设备文件。

后面9个字符每3个为一组,分别代表文件所有者、文件所有者所在用户组、其他用户对文件拥有的权限:rwx分别代表读、写、执行的权限,‘-’表示没有该权限

数字2,代表该目录下的目录文件数目(包括隐藏文件)

root,代表这个文件(目录)的属主为用户root

root,代表这个文件(目录)所属的用户组为 组root

4096,代表文件的大小(字节数)

Sep 8 2016,文件(目录)的修改时间

temp,文件(目录)名。

ls -a:列出所有文件,包含隐藏文件。ls -al可查看所有文件及详情。(以‘.’开头的是隐藏文件,以‘..’代表存在着父目录)

ls -A:显示除‘.’和“..”以外的所有文件列表。

ls -F:在每个输出项后追加文件的类型标识符。“*”具有可执行权限的文件目录,“/”目录,“@”符号链接,“|”命令管道FIFO,“=”sockets套接字。

ls -ltc:按照文件状态时间排序输出目录内容。-t是用文件和目录的更改时间排序。

ls -kl:以kb(千字节)为单位显示文件大小。

ls -hl:易读性,大小显示单位。

cd(change directory):用来切换当前目录。

cd ~:等同于cd。进入用户主目录,~表示home directory。cd /:切换到根目录。

cd -:返回进入此目录之前所在的目录

cd ..:返回上级目录,若没有上级目录,则不变。cd ../..:返回上两级目录。

cd -P:如果要切换到的目标是一个符号链接,直接切换到符号链接指向的目标目录。

mkdir:用来创建目录。若要创建多个目录,用空格隔开。

mkdir -m<目标属性>:或--mode<目标属性>,代表在目录的同时设置目录的权限。mkdir -m 700 /usr/test    建test文件目录,且只有文件主有rwx权限,其他人无权访问

mkdir -p:或--parents,若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录。

mv:(对文件或目录)重命名,或移动文件或文件组到另一个目录。 mv source target

1.如果target是目录,则source会被移动到该目录下,且文件名不变。

2.如果target不是目录,则source(只能有一个)的名称会变为该target名称(若有同名文件,会覆盖)。如果source和target是同一个目录下,mv就是重命名。

mv -b:当文件存在时,覆盖前,为其创建一个备份。

mv -i:交互式操作。

mv -f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录。

rm:删除一个目录中的一个或多个文件/目录。对于链接文件,只是删除整个链接文件,而原有文件保持不变。注意:rm命令不可恢复。多个目录,用空格隔开。

rm -f:强制删除 文件或目录

rm -i:删除已有文件或目录之前先询问用户(交互式删除)

rm -r:或-R,递归处理,将指定目录下的所有文件与子目录一并处理。(删除目录,一定要带上-r或-R)

rm -v:显示指令的详细执行过程。

rmdir:删除空目录。可以从一个目录中删除一个或多个空的子目录。删除目录时,必须具有对其父目录的写权限。

当目录不再被使用时,或者磁盘空间已到达使用限定值,就需要删除失去使用价值的目录。

rmdir -p:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除

chmod:更改文件或目录的权限。

u=user,文件或目录的拥有者。g=group,文件或目录的所属群组。o=other,出拥有者和所属群组之外的其他用户。a=all,全部用户。

r,读取权限,数字‘4’。w写入权限,数字代号为‘2’。x执行或切换权限,数字‘1’。-无任何权限,代号‘0’。chmod 777 name,即全部用户授权rwx。

chmod u=rw,g=rwx,o=--- test2,给test2修改权限(效果同:chmod 570 test2)。chmod u+rw,g+rwx test2,给test2添加权限。

file:探测给定文件的类型。file命令对文件的检查分为文件系统、魔法幻术检查和语言检查3个过程(此处不明白)。
tree:以树状图列出目录的内容(包括子目录)。

需先安装tree,否则会提示找不到命令。-bash: tree: command not found。安装:yum install tree -y。

2、文件

cp:复制一个或多个 源文件或目录到目标文件或目录。

cp -d:若复制符号连接,则目标文件或目录也建立为符号连接。

cp -i:交互性,覆盖之前先询问用户。

cp -s:对源文件建立符号连接,而非复制文件。

cp -b:覆盖已存在的文件目标前将目标文件备份。

cp -r/R:递归处理,将指定目录下的所有文件与子目录一并处理。 cp  -r  /usr/test  /usr/zh复制文件及子目录

touch:若文件已存在,则把该文件的时间标签更新为系统当前时间;文件不存在则创建新的空文件。

touch -d <时间日期>:使用指定的日期时间,而非现在的时间。

find:在指定目录下查找文件。

find -name:指定字符串作为寻找文件或目录的范本样式。-iname忽略大小写。-lname,指定字符串是查找符号连接的范本样式。

find /home -name "*.txt",在/home目录下查找以.txt结尾的文件名。find /home ! -name "*.txt",找出/home下不是以.txt结尾的文件。

find -regex:基于正则表达式匹配文件路径。find . -regex ".*\(\.txt\|\.pdf\)$"     当前目录及子目录下,查找所有以.txt和.pdf结尾的文件。

find . -name "*.txt" -o -name "*.pdf"     或    find . \( -name "*.txt" -o -name "*.pdf" \)

locate:用来查找文件或目录。是find -name的另一种写法,但比后者快,因locate不搜索具体目录,而是搜索一个数据库/var/lib/locatedb。

linux系统自动创建这个数据库/var/lib/locatedb,每天自动更新一次,所以locate命令查不到最新变动过的文件。(可以手动更新,用updatedb命令)

若在执行locate是出现错误提示:locate: can not stat (),需要先执行updatedb,再执行locate即可。

locate /etc/sh:搜索etc目录下所有以sh开头的文件。locate -i ~/m:搜索主目录下,(忽略大小写)所有以m开头的文件。

ln:为文件创建连接。连接类型分硬连接(默认类型)和符号连接(需使用-s选项)两种。

ln -s source filename:创建source文件的软连接target。

硬连接:连接文件与源文件没有主次之分,文件系统中他们都和同一个inode相关联,即一个文件就等级在多个目录中。(不能对文件做硬连接,且硬连接必须在相同的文件系统中)。

软连接(符号连接):类似于windows中的快捷方式,内部保存的是源文件的路径。(没有硬连接的以上限制)

which:用于查找并显示给定命令的绝对路径。which会在环境变量$PATH设置的目录里查找符合条件的文件。

使用which命令,可以看到某个系统命令是否存在,以及执行的是哪个位置的命令。

which pwd:查询pwd命令的路径。

whereis:用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径。只能用于程序名的搜索。

whereis tomcat,返回tomcat: ,则tomcat未安装。whereis svn有返回相关文件,即svn已安装。

stat:用于显示文件的状态信息,stat的输出信息比ls的更详细。

stat -L:支持符号连接。stat -f:显示文件系统状态而非文件状态。stat -t:以简洁方式输出信息。

3、显示数据和选择数据

cat:显示文件的内容。

cat -n:或-number,显示行号。

cat m1:在屏幕上显示文件m1的内容。

cat m1 m2:同事显示文件m1和m2的内容。

cat m1 m2 > file:将文件m1和m2合并后放入文件file中。

echo:在shell中打印shell变量的值,或直接输出指定的字符串。

echo $PATH:在屏幕上打印出变量PATH的值。

echo "hello":在屏幕上打印“hello”字符串。

head:用于显示文件的开头的内容。默认是头10行内容。

head -n<数字>:指定显示头部内容的行数。

head -c<字符字>:指定显示头部内容的字符数

tail:用于输入文件中的尾部内容。默认文件末位10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。

tail -c<数字>:输出文件尾部的指定字符数的内容。tail -c 10 file:显示文件file的最后10个字符。

tail -f:显示文件最新追加的内容。

tail -n<数字>:输出文件的尾部指定行数的内容。

tail file:显示文件file的最后10行。效果同:tail -n10 file。

tail +20 file:显示文件file的内容,从第20行到文件末尾

more:基于vi编辑器的文本过滤器,以全屏幕的方式按页显示文本文件的内容,支持vi的关键字定位。

快捷键:H获取帮助;enter向下一行;‘空格’向下一屏,B上一屏;Q退出命令。

more -<数字>:指定每屏显示的行数。

more -c:不进行滚屏操作。每次刷新这个屏幕。

more -d:显示快捷键的提示。(空格和q)

more +<数字>:从指定数字的行开始显示。

more -c -10 file:每10行显示一屏,且在显示之前先清屏。

less:与more相似,用来浏览文本文件的内容。但less允许前或后浏览,more只能向前浏览。

快捷键:pageup向上翻页,pagedown向下翻页,q退出。

less -N:显示行号。

4、编辑

sed

vi或vim:vi编辑器支持编辑模式(文本编辑功能)和命令模式(文件操作命令)。

模式切换:编辑-->命令:‘esc’键;命令-->编辑:A/O/I的大小写均可。

三种工作方式:命令方式、输入方式、ex转义方式(以冒号“:”进入ex转义模式)。

(命令模式下)常用内置命令:

翻屏:ctrl+u向后(文件首)翻半屏;ctrl+d向前半屏;ctrl+f向后一屏;ctrl+b向前一屏。

光标跳转:

:<数字>:光标跳转到指定行的行首。

:$::光标跳转到最后一行的行首。

删除行:

dd:删除光标行整行的内容。

ndd:删除当前行及其后n-1行(即从光标行开始,共删n行)。

查找字符串:

/<字符串>:文本查找操作,从光标行往后查找。

?<字符串>:文本查找操作,从光标行往前查找。

添加文本:

a:在当前字符后添加文本。i:在当前字符前插入文本。o:在当前行后面插入一行空行。

A:在行末添加文本。I:在行首添加文本。O:在当前行前面插入一空行。

ex编辑命令:

:wq:存盘退出。:w:存盘。:w!:强制存盘。

:q:退出vi操作。:q!:强行退出vi操作。

:set number:显示行号。:set nonumber:不显示行号



grep:全面搜索正则表达式并把行打印出来,是一种强大的文本搜索工具。

grep "key" file1 file2:在file文件中搜索key关键字,返回含有key关键字的文本行。支持在多个文件中查找。

grep -v "key" file --color=auto:-v 是输出除之外的所有行。这里是出含有关键字key的文本行以外的文本。--color=auto是标记匹配颜色。

grep -A<显示列数>:除了显示符合范本样式的那一行之外,显示改行之后指定行数的内容。-C<显示列数>:也显示该列前后指定行的内容。

grep -c:计算符合范本样式的列数。返回一个数量

grep -E:范本样式能使用正则表达式匹配。grep -E "[1-9]+"或egrep "[1-9]+"。echo this is a text line | grep -e "is" -e "line" -o

grep -i:忽略字符大小写。

grep -n:在行首显示编号。返回带有行号的文本行。

grep -o:只输出文件中匹配到的部分。echo the last word is 'HELLO'. | grep -o -E "[A-Z]+\."  返回 HELLO.

grep -r:在多级目录中对文本进行递归搜索。grep “test ” . -r -n,当前目录下搜索

grep静默输出:grep -q "key" file,如果命令成功返回0,失败返回非0,一般用于条件测试。

常用:1)测试命令grep -q;2)看行数grep -c;3)显示内容grep -E -n --color=auto,目录加-r。

5、进程与作业控制

ps:当前系统的进程状态。

ps -A:显示所有程序。返回:pid tty time cmd。效果同:ps -e。

ps -f:显示UID/PPIP/C/STIME。ps -c:显示CLS/PRI栏位。

还有很多其他选项。常用法:ps -ef | grep tomcat

kill:删除执行中的程序或工作。先用ps查看进程号,再kill 进程号

kill -p:指定kill命令只打印相关进程的进程号,而不发送任何信号。

jobs:显示linux的任务列表和任务状态(包括后台运行的任务)。任务号、进程号、任务状态

jobs -l:显示当前系统的任务列表,显示进程号。先启动任务find / -name password &,再jobs -l可看到返回running的任务编号、进程号、运行状态、启动任务的命令

jobs -s:仅输出停止状态stoped的任务。jobs -r:仅输出运行状态running的任务。

常用:jobs -lr

bg:用于将作业放到后台执行。效果与在指令后面添加符号&的效果一样。

bg <任务编号>:将任务放到后台执行,将暂停的后台任务执行,变成继续执行。

fg:用于将后台作业放到前台终端运行。与bg一样,若后台任务只有一个,则可省略任务号。

fg <任务编号>:将任务放到前台执行。启动任务find / -name password &,jobs -l查看编号,fb 1放到前台执行,ctrl+z放到后台并暂停(stoped状态),bg 1继续在后台执行。

6、其他

df:查看磁盘分区。文件系统、容量、已用、可用、已用%、挂载点

df -h:将容量等显示单位,增加易读性。

df -T:增加显示分区的类型。



---------------待补充--------------




文档资料

apropos

info

man

whatis

xman


文件系统

df

dumpe2fs

mount

umount


选择数据

cut

look

strings


top:可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。

实例 

top - 09:44:56 up 16 days, 21:23, 1 user, load average: 9.59, 4.75, 1.92 Tasks: 145 total, 2 running, 143 sleeping, 0 stopped, 0 zombie Cpu(s): 99.8%us, 0.1%sy, 0.0%ni, 0.2%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 4147888k total, 2493092k used, 1654796k free, 158188k buffers Swap: 5144568k total, 56k used, 5144512k free, 2013180k cached 

解释:

 top - 09:44:56[当前系统时间], 

16 days[系统已经运行了16天],

 1 user[个用户当前登录],

 load average: 9.59, 4.75, 1.92[系统负载,即任务队列的平均长度]

 Tasks: 145 total[总进程数], 

2 running[正在运行的进程数], 

143 sleeping[睡眠的进程数], 

0 stopped[停止的进程数], 

0 zombie[冻结进程数], 

Cpu(s): 99.8%us[用户空间占用CPU百分比], 0.1%sy[内核空间占用CPU百分比], 0.0%ni[用户进程空间内改变过优先级的进程占用CPU百分比], 0.2%id[空闲CPU百分比], 0.0%wa[等待输入输出的CPU时间百分比], 0.0%hi[], 0.0%st[], 

Mem: 4147888k total[物理内存总量], 2493092k used[使用的物理内存总量], 1654796k free[空闲内存总量], 158188k buffers[用作内核缓存的内存量] 

Swap:  5144568k total[交换区总量], 56k used[使用的交换区总量], 5144512k free[空闲交换区总量], 2013180k cached[缓冲的交换区总量]








---------------待补充--------------



你可能感兴趣的:(运维相关,linux,命令大全,locate,can,not,stat,-bash,tree,command,n,入门)