[置顶] Linux常用命令

时间:2022-12-10 10:06:17

Linux命令终端快捷键

Ctrl+a:光标回到命令行首。 (a:ahead)
Ctrl+e:光标回到命令行尾。 (e:end)
Ctrl+b:光标向行首移动一个字符。 (b:backwards)
Ctrl+f:光标向行尾移动一个字符。 (f:forwards)
Ctrl+w: 删除光标处到行首的字符。
Ctrl+k:删除光标处到行尾的字符。
Ctrl+u:删除整个命令行文本字符。
Ctrl+h:向行首删除一个字符。
Ctrl+d:向行尾删除一个字符。
Ctrl+y::粘贴Ctrl+u,Ctrl+k,Ctrl+w删除的文本。
Ctrl+p: 上一个使用的历史命令。 (或者直接按向上方向键;p:previous)
Ctrl+n: 下一个使用的历史命令。(或者直接按向下方向键;n:next)
Ctrl+r:快速检索历史命令。(r:retrieve)。
Ctrl+t: 交换光标所在字符和其前的字符。
Ctrl+i:相当于Tab键。
Ctrl+o:相当于Ctrl+m.
Ctrl+m:相当Enter键。
其他控制键:
Ctrl+s:使终端发呆,静止,可以使快速输出的终端屏幕停下来。
Ctrl+q:退出Ctrl+s引起的发呆。
Ctrl+z:使正在运行在终端的任务,运行于后台。 (可用fg恢复)
Ctrl+c:中断终端中正在执行的任务。
Ctrl+d: 在空命令行的情况下可以退出终端。
Ctrl+[ :相当于Esc键。
Esc键:连续按3次显示所有的支持的终端命令。
Tab键:命令、文件名等自动补全命令或目录、文件名。
alt+/:同Tab

查看系统和硬件相关信息的命令简介

# uname -a # 查看内核/操作系统/CPU信息 
# head -n 1 /etc/issue # 查看操作系统版本
# cat /etc/redhat-release # 查看操作系统版本(redhat,centos,fedora)
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量资源
# free -m # 查看内存使用量和交换区使用量
# df -h # 查看各分区使用情况
# du -sh <目录名> # 查看指定目录的大小
# grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看空闲内存量
# uptime # 查看系统运行时间、用户数、负载
# cat /proc/loadavg # 查看系统负载磁盘和分区
# mount | column -t # 查看挂接的分区状态
# fdisk -l # 查看所有分区
# swapon -s # 查看所有交换分区
# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE # 查看启动时IDE设备检测状况网络
# ifconfig # 查看所有网络接口的属性
# iptables -L # 查看防火墙设置
# route -n # 查看路由表
# netstat -lntp # 查看所有监听端口
# netstat -antp # 查看所有已经建立的连接
# netstat -s # 查看网络统计信息进程
# ps -ef # 查看所有进程
# top # 实时显示进程状态用户
# w # 查看活动用户
# id <用户名> # 查看指定用户信息
# last # 查看用户登录日志
# cut -d: -f1 /etc/passwd # 查看系统所有用户
# cut -d: -f1 /etc/group # 查看系统所有组
# crontab -l # 查看当前用户的计划任务服务
# chkconfig –list # 列出所有系统服务
# chkconfig –list | grep on # 列出所有启动的系统服务程序
# rpm -qa # 查看所有安装的软件包

VI模式切换和退出

进入vi编辑文件内容:

vi 文件名
vi 目录/文件名

vi进入编辑模式:
Shift+字母i
从编辑模式返回命令模式:
ESC
从命令模式vi退出:

:w   保存文件但不退出vi
:w file 将修改另外保存到file中,不退出vi
:w! 强制保存,不推出vi
:wq 保存文件并退出vi
:wq! 强制保存文件,并退出vi
:q 不保存文件,退出vi
:q! 不保存文件,强制退出vi
:e! 放弃所有修改,从上次保存文件开始再编辑
:set nu 显示行号

注意:千万别将英文冒号”:”敲成中文冒号”:”。

VI前进后退操作

在vi中按u可以撤销一次操作
u 撤销上一步的操作
Ctrl+r 恢复上一步被撤销的操作
注意:
如果你输入“u”两次,你的文本恢复原样,那应该是你的Vim被配置在Vi兼容模式了。
重做
如果你撤销得太多,你可以输入CTRL-R(redo)回退前一个命令。换句话说,它撤销一个撤销。要看执行的例子,输入CTRL-R两次。字符A和它后面的空格就出现了:
young intelligent turtle
有一个特殊版本的撤销命令:“U”(行撤销)。行撤销命令撤销所有在前一个编辑行
上的操作。 输入这些命令两次取消前一个“U”:
A very intelligent turtle
xxxx 删除very
A intelligent turtle
xxxxxx 删除turtle
A intelligent
用“U”恢复行
A very intelligent turtle
用“u”撤销“U”
A intelligent
“U”命令自己改变自己,“u”命令撤销操作,CTRL-R命令重做操作。这有点乱,但不用
担心,用“u”和CTRL-R命令你可以切换到任何状态。
流行的文本编辑器通常都有前进和后退功能,可以在文件中曾经浏览过的位置之间来回移动。在 vim 中使用 Ctrl-O 执行后退,使用 Ctrl-I 执行前进。
相关帮助: :help CTRL-O :help CTRL-I :help jump-motions

VI查找内容

使用vi编辑器编辑长文件时,常常是头昏眼花,也找不到需要更改的内容。
这时,使用查找功能尤为重要。
方法如下:
1、命令模式下输入“/字符串”,例如“/Section 3”。
2、如果查找下一个,按“n”即可。
要自当前光标位置向上搜索,请使用以下命令:

/pattern Enter

其中,pattern表示要搜索的特定字符序列。
要自当前光标位置向下搜索,请使用以下命令:

?pattern Enter

Linux文件权限介绍

r:read就是读权限 –数字4表示
w:write就是写权限 –数字2表示
x:excute就是执行权限 –数字1表示
权限表示一共需要占9个字符的:— — —
前三个字符表示用户权限,中间三个表示用户所在的组权限,最后三个表示其他用户权限
例子:rw-r–r–
rw-是说用户有读、写权,没有运行权,接着的r–表示用户组只有读权限,没有写入、运行权,最后的r–指其他用户只有读权限,没有写入、运行权。
用数字表示就是644。
例子:777
777就是rwxrwxrwx,意思是用户、用户组和其他用户都有最高权限。

压缩和解压

zip命令
  解压1:unzip FileName.zip
  解压2:unzip FileName.zip -d TargetDir
  压缩1:zip -r TargetDir/FileName.zip DirName
  压缩2:zip -r TargetDir/FileName.zip DirName/*
  压缩3:zip -r TargetDir/FileName.zip File1 File2 File3
  注意,zip解压适用于解压jar和war文件
tar命令
  解包:tar zxvf FileName.tar
  打包:tar czvf FileName.tar DirName
.tar.gz 和 .tgz
  解压:tar zxvf FileName.tar.gz
  压缩:tar zcvf FileName.tar.gz DirName
.tar.bz
  解压:tar jxvf FileName.tar.bz
.tar.bz2
  解压:tar jxvf FileName.tar.bz2
  压缩:tar jcvf FileName.tar.bz2 DirName
.tar.Z
  解压:tar Zxvf FileName.tar.Z
  压缩:tar Zcvf FileName.tar.Z DirName
gz命令
  解压1:gunzip FileName.gz
  解压2:gzip -d FileName.gz
  压缩:gzip FileName
bz2命令
  解压1:bzip2 -d FileName.bz2
  解压2:bunzip2 FileName.bz2
  压缩: bzip2 -z FileName
bz命令
  解压1:bzip2 -d FileName.bz
  解压2:bunzip2 FileName.bz
Z命令
  解压:uncompress FileName.Z
  压缩:compress FileName
7z命令(如果没有7z命令请先执行“yum install p7zip”)
解压:7z x FileName.7z -o/home/zhichao
//注意,x参数解压会自动生成与压缩文件名相同的目录,-o表示输出目录,其与目录路径之间没有空格,上面命令会解压FileName.7z到home/zhichao/FileName目录中。
压缩:7z a FileName.7z DirName

wget下载命令

格式:

wget 参数 url

参数:

-b:后台下载,Wget默认的是把文件下载到当前目录。
-O:将文件下载到指定的目录中。
-P:保存文件之前先创建指定名称的目录。
-t:尝试连接次数,当Wget无法与服务器建立连接时,尝试连接多少次。
-c:断点续传,如果下载中断,那么连接恢复时会从上次断点开始下载。
-r:使用递归下载

示例:
下载Imaging-1.1.7.tar.gz到命令行当前所在的目录。

wget http://www.pil.com/latest/Imaging-1.1.7.tar.gz

grep命令

grep命令使用正则表达式检索符合条件的内容,一般与其他命令组合使用。
格式:

grep 参数 条件

参数:

-a --text #不要忽略二进制的数据。 
-A<显示行数> --after-context=<显示行数> #除了显示符合范本样式的那一列之外,并显示该行之后的内容。
-b --byte-offset #在显示符合样式的那一行之前,标示出该行第一个字符的编号。
-B<显示行数> --before-context=<显示行数> #除了显示符合样式的那一行之外,并显示该行之前的内容。
-c --count #计算符合样式的列数。
-C<显示行数> --context=<显示行数>或-<显示行数> #除了显示符合样式的那一行之外,并显示该行之前后的内容。
-d <动作> --directories=<动作> #当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
-e<范本样式> --regexp=<范本样式> #指定字符串做为查找文件内容的样式。
-E --extended-regexp #将样式为延伸的普通表示法来使用。
-f<规则文件> --file=<规则文件> #指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
-F --fixed-regexp #将样式视为固定字符串的列表。
-G --basic-regexp #将样式视为普通的表示法来使用。
-h --no-filename #在显示符合样式的那一行之前,不标示该行所属的文件名称。
-H --with-filename #在显示符合样式的那一行之前,表示该行所属的文件名称。
-i --ignore-case #忽略字符大小写的差别。
-l --file-with-matches #列出文件内容符合指定的样式的文件名称。
-L --files-without-match #列出文件内容不符合指定的样式的文件名称。
-n --line-number #在显示符合样式的那一行之前,标示出该行的列数编号。
-q --quiet或--silent #不显示任何信息。
-r --recursive #此参数的效果和指定“-d recurse”参数相同。
-s --no-messages #不显示错误信息。
-v --revert-match #显示不包含匹配文本的所有行。
-V --version #显示版本信息。
-w --word-regexp #只显示全字符合的列。
-x --line-regexp #只显示全列符合的列。
-y #此参数的效果和指定“-i”参数相同。

示例:
从文件info.txt中读取关键词system进行搜索

cat /home/usr/download/info.txt | grep -f system

从文件info.txt中读取关键词system进行搜索并显示行号

cat /home/usr/download/info.txt | grep -nf system

cat命令

cat命令用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。
格式:

cat 参数 文件

参数:

-A, --show-all 等价于 -vET
-b, --number-nonblank 对非空输出行编号
-e 等价于 -vE
-E, --show-ends 在每行结束处显示 $
-n, --number 对输出的所有行编号,由1开始对所有输出的行数编号
-s, --squeeze-blank 有连续两行以上的空白行,就代换为一行的空白行
-t 与 -vT 等价
-T, --show-tabs 将跳格字符显示为 ^I
-u (被忽略)
-v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFDTAB 之外

示例:
把 log.php 的文件内容加上行号后输出到new_log.php这个文件中

cat -n /data/www/project/log.php /data/www/project/new_log.php

ps命令

ps命令是process status的缩写,顾名思义就是查看系统中所有进程状态状态。
ps命令查看的程序状态并不是动态连续的,如果想对进程实施监控,请用top命令。
如果直接用ps命令,会显示所有进程的状态,通常结合grep命令查看某进程的状态。
格式:

ps 参数

参数:

a  显示所有进程
-a 显示同一终端下的所有程序
-A 显示所有进程
c 显示进程的真实名称
-N 反向选择
-e 等于“-A
e 显示环境变量
f 显示程序间的关系
-H 显示树状结构
r 显示当前终端的进程
T 显示当前终端的所有程序
u 指定用户的所有进程
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程

示例:
显示java相关程序

ps aux|grep java

显示httpd相关程序

ps aux|grep httpd

查看正在使用8080端口的程序

ps -ef|grep 8080

fuser 命令

fuser用于查找正在使用指定的某个文件、挂载点、网络端口的进程的详细信息。
格式:

fuser 参数 文件或挂载点或网络端口

参数:

a 显示所有命令行中指定的文件,默认情况下被访问的文件才会被显示。 
-c-m一样,用于POSIX兼容。
-d 暗示使用了 -c-x 标志。关于任何与文件系统(自父目录删除的)无链接的打开文件的报告。当与 -V 标志一起使用时,它也会报告被删除文件的节点号和大小。
-f 仅对文件的打开实例报告。
-i 杀掉进程之前询问用户,如果没有-k这个选项会被忽略。
-k 杀掉访问文件的进程。如果没有指定-signal就会发送SIGKILL信号。
-l 列出所有已知的信号名称。
-m name 指定一个挂载文件系统上的文件或者被挂载的块设备(名称name)。这样所有访问这个文件或者文件系统的进程都会被列出来。如果指定的是一个目录会自动转换成"name/",并使用所有挂载在那个目录下面的文件系统。
-n space 指定一个不同的命名空间(space).这里支持不同的空间文件(文件名,此处默认)、tcp(本地tcp端口)、udp(本地udp端口)。对于端口, 可以指定端口号或者名称,如果不会引起歧义那么可以使用简单表示的形式,例如:name/space (即形如:80/tcp之类的表示)。
-s 静默模式,这时候-u,-v会被忽略。-a不能和-s一起使用。
-signal 使用指定的信号,而不是用SIGKILL来杀掉进程。可以通过名称或者号码来表示信号(例如-HUP,-1),这个选项要和-k一起使用,否则会被忽略。
-u 在每个PID后面添加进程拥有者的用户名称。
-v 详细模式。输出似ps命令的输出,包含PID,USER,COMMAND等许多域,如果是内核访问的那么PID为kernel. -V 输出版本号。
-x-c-f 连用,报告除标准 fuser 输出以外的可执行的和可载入的对象。
-4 使用IPV4套接字,不能和-6一起应用,只在-n的tcp和udp的命名存在时不被忽略。
-6 使用IPV6套接字,不能和-4一起应用,只在-n的tcp和udp的命名存在时不被忽略。

示例:
查看和关闭正在使用readme.txt文件的程序

fuser -mv readme.txt
fuser -mk readme.txt

查看和关闭正在使用80端口的程序

fuser -nv tcp 80
fuser -nk tcp 80

chown命令

chown命令将指定文件或文件夹的拥有者改为指定的用户或组,用户可以是用户名或者用户ID,组可以是组名或者组ID,文件是以空格分开的要改变权限的文件列表,支持通配符。
格式:

chown 参数 用户 文件

参数:

-c 显示更改的部分的信息
-f 忽略错误信息
-h 修复符号链接
-R 处理指定目录以及其子目录下的所有文件
-v 显示详细的处理信息
-deference 作用于符号链接的指向,而不是链接文件本身

示例:
将目录/data/www/project/下的所有文件和目录的拥有者都修改为apache账户。

chown -R apache.apache /data/www/project/

chmod命令

chmod命令用于改变linux系统文件或目录的访问权限,用它控制文件或目录的访问权限。
Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。
格式:

chmod 参数 权限模式 文件  

参数

-c 当发生改变时,报告处理信息
-f 错误信息不输出
-R 处理指定目录以及其子目录下的所有文件
-v 运行时显示详细处理信息

权限模式
多个权限模式可用“,”分隔。

<角色>+<权限> 使权限范围内的目录或者文件增加指定的权限
<角色>-<权限> 删除权限范围的目录或者文件的指定权限
<角色>=<权限> 设置权限范围内的目录或者文件的权限为指定的值

角色

u :目录或者文件的当前的用户
g :目录或者文件的当前的群组
o :除了目录或者文件的当前用户或群组之外的用户或者群组
a :所有的用户及群组

权限

r :读权限,用数字4表示
w :写权限,用数字2表示
x :执行权限,用数字1表示
s :特殊权限
数字0:表示没有权限

示例:
将目录/data/www/project/下的所有文件和目录的访问权限修改为“当前用户、当前用户组和其他用户都可读可写可执行”的权限。

chmod -R 777 /data/www/project/

将/tomcat/bin/目录下所有sh文件增加执行权限。

chmod +x /tomcat/bin/*.sh

kill命令

kill命令用于关闭指定进程。
格式:

kill 参数 信号 进程ID

参数:

-s 指定发送信号
-l 根据信号名显示信号编号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
-a 当处理当前进程时,不限制命令名和进程号的对应关系
-p 指定kill 命令只打印相关进程的进程号,而不发送任何信号
-u 指定用户

信号:

信号名 信号编号 信号含义
HUP 1 终端断线
INT 2 中断
QUIT 3 退出
TERM 15 终止
KILL 9 强制终止
CONT 18 继续(与STOP相反)
STOP 19 暂停(

示例:
显示信号KILL的信号编号

kill -l KILL

关闭apache用户下所有进程

kill -u apache.apache

强制关闭进程ID为1937的进程,参数s可以省略。

kill -s 9 1937
kill -9 1937

top命令

top命令查看系统中各个进程的资源占用状况,默认使用cpu占用来排序显示,top命令显示的结果是实时的。
格式:

top 参数

参数:

-b 批处理
-c 显示完整的治命令
-i<时间> 设置间隔时间
-I 忽略失效过程
-p<进程号> 指定进程
-n<次数> 循环显示的次数
-s 保密模式
-S 累积模式
-u<用户名> 指定用户名

示例:
查看所有程序资源占用状况

top

查看apache用户所有程序资源占用状况

top -u apache.apache

find命令

在指定目录中查找指定条件的文件或文件夹。
格式:

find 目录路径 选项 查找条件

选项:

-name 按照文件名查找文件。
-perm 按照文件权限来查找文件。
-prune 使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。
-user 按照文件属主来查找文件。
-group 按照文件所属的组来查找文件。
-mtime -n +n 按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。
-nogroup 查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
-nouser 查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
-newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件。
-type<类型参数> 查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
-mount:在查找文件时不跨越文件系统mount点。
-follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。
-amin n 查找系统中最后N分钟访问的文件
-atime n 查找系统中最后n*24小时访问的文件
-cmin n 查找系统中最后N分钟被改变文件状态的文件
-ctime n 查找系统中最后n*24小时被改变文件状态的文件
-mmin n 查找系统中最后N分钟被改变文件数据的文件
-mtime n 查找系统中最后n*24小时被改变文件数据的文件

示例:
查找 “/”目录(Linux系统根目录)下名称为httpd.conf的文件

find / -name httpd.conf

查找 “/data/www/project/”目录下所有php文件

find /data/www/project -name *.php

查找 “.”目录(当前目录)下权限为777的文件

find . -perm 777

查找 “/”目录下48小时内修改过的文件

find / -atime -2

查找 “/”目录下所有文件夹

find / -type d

查找 “/”目录下大于1kb的文件

find / -size +1000c

whereis命令

whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、说明文件(参数-m)和源代码文件(参数-s),如果省略参数,则返回所有信息。
和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高。
但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。
whereis常用于查找安装程序的安装目录。
格式:

whereis 参数 程序名

参数:

-b 定位可执行文件。
-m 定位帮助文件。
-s 定位源代码文件。
-u 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。
-B 指定搜索可执行文件的路径。
-M 指定搜索帮助文件的路径。
-S 指定搜索源代码文件的路径。

示例:
查找mysql安装目录

whereis mysql

ls命令

ls命令用来查看目标目录中所有的子目录和文件信息。
格式:

ls 参数 目录名

参数:

-a, –all 列出目录下的所有文件,包括以 . 开头的隐含文件
-A 同-a,但不列出“.”(表示当前目录)和“..”(表示当前目录的父目录)。
-c 配合 -lt:根据 ctime 排序及显示 ctime (文件状态最后更改的时间)配合 -l:显示 ctime 但根据名称排序否则:根据 ctime 排序
-C 每栏由上至下列出项目
–color[=WHEN] 控制是否使用色彩分辨文件。WHEN 可以是'never'、'always'或'auto'其中之一
-d, –directory 将目录象文件一样显示,而不是显示其下的文件。
-D, –dired 产生适合 Emacs 的 dired 模式使用的结果
-f 对输出的文件不进行排序,-aU 选项生效,-lst 选项失效
-g 类似 -l,但不列出所有者
-G, –no-group 不列出任何有关组的信息
-h, –human-readable 以容易理解的格式列出文件大小 (例如 1K 234M 2G)
–si 类似 -h,但文件大小取 1000 的次方而不是 1024
-H, –dereference-command-line 使用命令列中的符号链接指示的真正目的地
–indicator-style=方式 指定在每个项目名称后加上指示符号<方式>:none (默认),classify (-F),file-type (-p)
-i, –inode 印出每个文件的 inode 号
-I, –ignore=样式 不印出任何符合 shell 万用字符<样式>的项目
-k 即 –block-size=1K,以 k 字节的形式表示文件的大小。
-l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。
-L, –dereference 当显示符号链接的文件信息时,显示符号链接所指示的对象而并非符号链接本身的信息
-m 所有项目以逗号分隔,并填满整行行宽
-o 类似 -l,显示文件的除组信息外的详细信息。
-r, –reverse 依相反次序排列
-R, –recursive 同时列出所有子目录层
-s, –size 以块大小为单位列出所有文件的大小
-S 根据文件大小排序
–sort=WORD 以下是可选用的 WORD 和它们代表的相应选项:
extension -X status -c
none -U time -t
size -S atime -u
time -t access -u
version -v use -u
-t 以文件修改时间排序
-u 配合 -lt:显示访问时间而且依访问时间排序
配合 -l:显示访问时间但根据名称排序
否则:根据访问时间排序
-U 不进行排序;依文件系统原有的次序列出项目
-v 根据版本进行排序
-w, –width=COLS 自行指定屏幕宽度而不使用目前的数值
-x 逐行列出项目而不是逐栏列出
-X 根据扩展名排序
-1 每行只列出一个文件
–help 显示此帮助信息并离开
–version 显示版本信息并离开

示例:
显示当前目录下所有文件和子目录(包括隐藏文件和隐藏目录)的详细信息

ls -a -l

显示”/data/www/project”目录下所有文件和子目录(不包括隐藏文件和隐藏目录)的详细信息

ls -l /data/www/project

显示”/data/www/project”目录下所有文件和子目录(包括隐藏文件和隐藏目录)的名称

ls -a /data/www/project

lsof命令

示例:
查看8000端口被哪个程序占用

lsof -i :8000

sudo命令

sudo命令是个管理员分配给一些linux用户执行一些没有权限的命令。
如果发现执行linux命令提示没有权限什么balabala的,不管什么命令,前面先加上sudo试试。
格式:无需了解
参数:无需了解
示例:

sudo yum install xxxx
sudo svn up xxxx
sudo rm -r xxxx

tail命令

tail命令用于显示指定文件的末尾内容,并且使用-f参数可以查看即时的文件内容,常用查看日志文件。
格式:

tail 参数 文件

参数:

-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示行数
--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束.
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S

示例:
及时显示/data/www/project目录下log.php文件的末尾内容

tail -f /data/www/project/log.php

及时显示/data/www/project目录下log.php文件的500行末尾内容

tail -f -n 500 /data/www/project/log.php

cp命令

cp命令用于复制文件或目录。
格式:

 cp 参数 原文件或原目录 目标文件或目录

参数:

-a或--archive 等于-dR或-dpR
--backup 为每个已存在的目标文件创建备份
-b 类似--backup但不接受参数
--copy-contents 在递归处理是复制特殊文件内容
-d或--no-dereference或--preserve=links 若源文件为连接文件属性,则复制连接文件指向的文件而非复制文件本身
-s或--symbolic-link 对源文件建立符号链接,而非复制文件
-f或--force 强制操作,如果目标文件无法打开则将其移除并重试(当-n选项存在时则不需再选此项)
-i或--interactive 覆盖前询问(使前面的-n选项失效)
-H 跟随源文件中的命令行符号链接
-l或--link 链接文件而不复制
-L或--dereference 总是跟随符号链接
-n或--no-clobber 不要覆盖已存在的文件(使前面的-i选项失效)
-P或----parents 保留源文件或目录的路径,此路径可以是绝对路径或相对路径,且目的目录必须已经存在
-p等于--preserve 保留源文件或目录的属性,包括所有者、所属组、权限与时间
--preserve[=属性列表 保持指定的属性(默认:模式,所有权,时间戳),如果可能保持附加属性:环境、链接等
-R或-r或--recursive 递归处理,复制目录及目录内的所有项目
-u或--update 使用这项参数之后,只会在源文件的修改时间(Modification Time)较目的文件更新时,或是名称相互对应的目的文件并不存在,才复制文件
-v或--verbose 显示执行过程
-x或--one-file-system 复制的文件或目录存放的文件系统,必须与cp指令执行时所处的文件系统相同,否则不复制,亦不处理位于其他分区的文件

示例:
强行复制文件index.html到目录/data/www/project

cp -f -v /home/usr/download/index.html /data/www/project
同:cp -fv /home/usr/download/index.html /data/www/project

rm命令

rm命令和cp命令类似。
示例:
删除download目录

rm -rf /home/usr/download

删除download目录下的所有文件和子目录,但保留download目录

rm -rf /home/usr/download/*

mv命令

mv命令和cp命令类似。
示例:
移动download目录中的所有子目录和文件到/data/www/project 目录,但保留download目录

mv -rf /home/usr/download/* /data/www/project 

rpm命令

rpm是RedHat Package Manager(RedHat软件包管理工具)的简称。
.rpm执行安装包分为二进制包(Binary)以及源代码包(Source)两种,二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。

常用参数:
-ivh:安装显示安装进度–install–verbose–hash
-Uvh:升级软件包–Update;
-qpl:列出RPM软件包内的文件信息[Query Package list];
-qpi:列出RPM软件包的描述信息[Query Package install package(s)];
-qf:查找指定文件属于哪个RPM软件包[Query File];
-Va:校验所有的RPM软件包,查找丢失的文件[View Lost];
-e:删除包
-q samba :查询程序是否安装

常用命令:
install/upgrade/remove:安装/更新/卸载

yum命令

Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

常用参数:
-e 静默执行
-t 忽略错误
-R[分钟] 设置等待时间
-y 自动应答yes
–skip-broken 忽略依赖问题
–nogpgcheck 忽略GPG验证

全部命令:
check-update 检查可更新的包
clearn 清除全部
clean packages 清除临时包文件(/var/cache/yum 下文件)
clearn headers 清除rpm头文件
clean oldheaders 清除旧的rpm头文件
deplist 列出包的依赖
list 可安装和可更新的RPM包
list installed 已安装的包
list extras 已安装且不在资源库的包
info 可安装和可更新的RPM包 信息
info installed 已安装包的信息(-qa 参数相似)
install[RPM包] 安装包
localinstall 安装本地的 RPM包
update[RPM包] 更新包
upgrade 升级系统
search[关键词] 搜索包
provides[关键词] 搜索特定包文件名
reinstall[RPM包] 重新安装包
repolist 显示资源库的配置
resolvedep 指定依赖
remove[RPM包] 卸载包

如果要安装指定版本或指定插件,则需要详细文件名称:
[zhichao@localhost ~]$ sudo yum list java*
java-1.8.0-openjdk.x86_64 1:1.8.0.45-36.b13.fc22 @System
java-1.8.0-openjdk-devel.x86_64 1:1.8.0.45-36.b13.fc22 @System
java-1.8.0-openjdk-headless.x86_64 1:1.8.0.45-36.b13.fc22 @System
sudo yum install java-1.8.0-openjdk-devel.x86_64

apt-get命令

apt-get(全称Advanced Package Tool)的作用同于yum,不过使用该命令的操作系统为Ubuntu和Debian。
经过修改后可以使用apt-rpm处理红帽的Package Manager(RPM)文件。

常用命令:
apt-get install packagename
安装一个新软件包
apt-get remove packagename
卸载一个已安装的软件包(保留配置文档)
apt-get remove –purge packagename
卸载一个已安装的软件包(删除配置文档)
apt-get autoremove packagename
删除包及其依赖的软件包
apt-get autoremove –purge packagname
删除包及其依赖的软件包+配置文件,比上面的要删除的彻底一点
dpkg –force-all –purge packagename
有些软件很难卸载,而且还阻止了别的软件的应用,就能够用这个,但是有点冒险。

dnf命令

dnf是fedora22新的用于替换yum和rpm的命令。
在使用yum时,会提示过时,但仍然可用。
详细了解请看一下这篇文章:[http://www.linuxidc.com/Linux/2015-06/118751.htm](http://www.linuxidc.com/Linux/2015-06/118751.htm)

systemctl命令

在cenos7和fedora22中,systemctl替换了service命令。
写法从以前的:service start mysqld
变成了:systemctl start mysqld.service
详细了解请看一下这篇文章:http://www.linuxidc.com/Linux/2015-07/120833.htm

或者:
https://wiki.archlinux.org/index.php/Systemd_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

pwd命令

pwd命令可以获取当前目录的全路径。
示例:
$ pwd
/home/zhichao/下载

su命令

su命令用于切换用户。
示例:
$ su root
Password:输入密码