linux常见命令(分类展示)
一、文件管理:
1.1、ls:
显示文件/目录属性
常见参数:
-l :列出长数据串,包含文件的属性与权限数据等
-a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)
-d :仅列出目录本身,而不是列出目录的文件数据
-h :将文件容量以较易读的方式(GB,kB等)列出来
-R :连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来
1.2、cd:
切换目录
cd /
1.3、pwd:
显示当前目录
1.4、mv/cp:
mv:移动文件 cp:复制文件
cp/mv常见参数:
-r: 递归复制
-p: 保持属性复制
将文件复制/移动到指定目录: cp/mv filename dirname
将文件重命名复制/移动到指定目录: cp/mv filename1 filename2 dirname
例:
将file1重命名为file2并存放在/etc: cp file1 file2 /etc
1.5、rm/rmdir:
rm:删除文件 rmdir:删除空文件夹(删除有内容的文件夹使用rm rf)
rm常见参数:
-i: 交互式
-r: 递归
-f: 强制
1.6、mkdir/touch:
mkdir:创建文件夹 touch:创建文件,修改时间戳
mkdir常见参数:
-m: 创建目录的同时设置权限
-p: 递归创建多级目录
mkdir -p /Dir1/Dir2
touch常见参数:
-a: 设置文件的读取时间记录
-c: 不创建新文件
-d: 设置时间与日期
-m: 设置文件的修改时间记录
1.7、ln:
为文件创建链接,可创建软链接与硬链接。
软链接:相当于Windows的快捷方式,原始文件移动后软连接无法使用
硬链接:将文件的属性块进行了复制,原始文件移动后依然能使用
语法格式:ln [参数] 源文件名 目标文件名
常见参数:
-s: 对源文件创建软链接
例:
ln /etc/passwd passwd 创建硬链接
ln -s /etc/passwd passwd 创建软链接
1.8、chown/chgrp/chmod:
chown:更改文件拥有者 chgrp:更改文件组 chmod:更改文件权限
chown:
语法格式:chown [参数] 所属主:所属组 文件名
常见参数:
-c: 显示所属变更信息
-f: 若该文件拥有者无法被更改也不显示错误
-h: 仅对链接文件进行更改,而非真正指向的文件
-P: 不遍历任何符号链接
-R: 递归处理所有子文件
例:
改变指定目录及其内所有子文件的所属主与所属组:
chown -R root /Dir
chown -R root:root /Dir
文件权限:
文件基本属性分为四类
dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin
第一个字符代表文件为目录、文件或者链接文件等
d:目录 -:文件 l:链接
接下来的字符中,以三个为一组,且均为 rwx 的三个参数的组合。其中, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute),总共分为三组,分别为:用户、组以及其他。
r=4,w=2,x=1
chmod:
chmod xxx filename
二、系统管理:
2.1、uname:
显示系统内核信息
常见参数:
-a: 显示系统所有相关信息
-i: 显示硬件平台
-m: 显示计算机硬件架构
-n: 显示主机名称
2.2、shutdown/halt/reboot/init:
shutdown/halt:关闭服务器 reboot:重启服务器 init:切换系统运行级别
shutdown常见参数:
-r 关机重启
-h 关机不重启
now 立刻关机
例:
shutdown -r now/21:00
init常见参数:
0: 关机
1: 单用户
2: 多用户
3: 完全多用户模式
4: 无功能
5: 图形界面
6: 重启
--help: 显示帮助信息
2.3、useradd/adduser:
添加用户:
用法: useradd [-u|-g|-m|-d|-s] username
常见参数:
-u: 指定用户id
-g: 指定用户组id
-d: 指定用户家目录
-m/M:目录不存在时 m创建家目录/M 不创建
-s: 指定用户登陆的shell
-p: 设置用户的密码
-r: 建立系统帐号
2.4、userdel:
删除用户:
用法: userdel [-r] username
常见参数:
-f: 强制删除用户的账号而不询问
-h: 显示帮助信息
-r: 删除用户的家目录及其内全部子文件
-Z: 删除用户的SELinux映射用户
2.5、usermod:
修改用户权限,参数同useradd。
2.6、passwd:
修改用户密码:
用法: passwd username 或者 echo password | passwd username --stdin
2.7、which/whereis/locate:
which:查找命名文件 whereis:显示命令及相关文件的路径信息 locate:查找文件或目录
语法格式:which [参数] 文件名
whereis常见参数:
-b: 查找二进制程序或命令文件
-m: 查找man帮助手册文件
-s: 仅查找源代码文件
2.8、find:
根据给定路径条件查找相关文件或目录:
用法: find [PATH] [option] [action]
find支持正则匹配
-name 按照文件名查找文件。
-perm 按照文件权限来查找文件。
-user 按照文件属主来查找文件。
-group 按照文件所属的组来查找文件。
-mtime -n +n 按照文件的更改时间来查找文件
-type 查找某一类型的文件
示例:
find / -name *.txt
find . -name *.pyc exec rm -rf {}\; 找出 pyc文件并删除
find . -type d 查找目录
2.9、uptime:
查看系统负载:
开机时间 运行时长 在线用户 负载:
2.10、free:
显示内存使用:
用法: free [-b|k|m|g]
第一行: 内存总计 已经使用 空闲 多个进程共享的内存总额 缓冲 缓存
第二行: swap空间使用情况
2.11、ps:
用法:
ps [option]
-a :所有的进程均显示出来
-u :有效用户的相关进程
-x :一般与a连用 可列出较完整的信息
-l :以长列表形式显示
-o :自定义显示
-e :显示环境变量信息
-f :用ASCII字符显示树状结构
常用:
ps -aux/-elf 显示所有进程信息
ps -ax -o pid,%cpu,%mem --sort=-%cpu,-%mem | head -10 显示cpu以及内存占用最高的10个进程
aux与-elf区别:
ps aux :最常用的 BSD 风格选项组合,其中的 a表示所有关联到终端的进程,如果同时使用 x 则代表所有进程;u 表示列出进程的用户。
ps -elf : unix标准风格组合,其中-e 代表列出所有进程,-l 代表长格式,-f 代表完整的格式
2.12、top:
格式:
top [option]
参数:
d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
p 通过指定监控进程ID来仅仅监控某个进程的状态。
s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
i 使top不显示任何闲置或者僵死进程
常用命令:
h或者? 显示帮助画面,给出一些简短的命令总结说明。
k 终止一个进程。
i 忽略闲置和僵死进程。
q 退出程序。
r 重新安排一个进程的优先级别
s 改变两次刷新之间的延迟时间
M 根据驻留内存大小进行排序。
P 根据CPU使用百分比大小进行排序。
T 根据时间/累计时间进行排序。
常用:
top //每隔5秒显式所有进程的资源占用情况
top -d 2 //每隔2秒显式所有进程的资源占用情况
top -c //每隔5秒显式进程的资源占用情况
三、文本操作:
3.1、cat/tac:
全文查看,cat正序从第一行查看,tac倒叙从最后一行查看
3.2、less/more:
分页查看。
区别:
1、less可以按上下方向键来显示上下内容,而more不能通过上下方向键控制显示;
2、less不必读整个文件,加载速度比more更快;
3、less退出后shell不会留下刚显示的内容,而more退出后会在shell上留下刚显示的内容。
3.3、head/tail:
头尾查看。head:查看头,tail:查看尾。
语法: head filename
常见用法:
head -10 /etc/passwd 查看文件前10行
tail -5 /etc/passwd 查看文件后5行
3.4、wc:
统计文件内容。
语法:
wc [-lwm]
选项:
-l :仅列出行;
-w :仅列出多少字(英文单字);
-m :多少字符;
常见用法:
# wc /etc/passwd
50 94 2550 /etc/passwd
行数 单词数 字节数
# wc -l /etc/passwd #统计行数很常用
# wc -w /etc/passwd #统计单词出现次数
# wc -m /etc/passwd #统计文件的字节数
3.5、cut:
切分内容。
语法:
cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file]
主要参数
-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f :与-d一起使用,指定显示哪个区域。
常用:
$ cat /etc/passwd|head -n 5|cut -d : -f 1,3-5
root:0:0:root
bin:1:1:bin
daemon:2:2:daemon
adm:3:4:adm
lp:4:7:lp
$ cat /etc/passwd|head -n 5|cut -d : -f 1,3-5,7
root:0:0:root:/bin/bash
bin:1:1:bin:/sbin/nologin
daemon:2:2:daemon:/sbin/nologin
adm:3:4:adm:/sbin/nologin
lp:4:7:lp:/sbin/nologin
3.6、sort:
排序命令。
语法:
sort [-bcfMnrtk][源文件][-o 输出文件]
参数:
-b 忽略每行前面开始出的空格字符。
-c 检查文件是否已经按照顺序排序。
-f 排序时,忽略大小写字母。
-M 将前面3个字母依照月份的缩写进行排序。
-n 依照数值的大小排序。
-o 将排序后的结果存入指定的文件。
-r 以相反的顺序来排序。
-t <分隔符> 指定排序时所用的栏位分隔字符。
-k 选择以哪个区间进行排序。
常用:
1 按文本排序
sort filename
2 按数字排序
sort -n
3 在输出内容中去除重复行
sort -u
4 反序
sort -r
5 指定列排序
sort -k 列号 -t 分隔符
3.7、uniq:
去重命令,可以去除排序过的文件中的重复行,因此uniq经常和sort合用。也就是说,为了使uniq起作用,所有的重复行必须是相邻的。
语法:
# uniq [-icu]
选项与参数:
-i :忽略大小写字符的不同;
-c :进行计数
-u :只显示唯一的行
常用:
1 去重
cat words | sort |uniq
2 排序之后删除了重复行,同时在行首位置输出该行重复的次数:
#sort testfile | uniq -c
3 仅显示存在重复的行,并在行首显示该行重复的次数:
#sort testfile | uniq -dc
3.8、grep:
正则查找命令。
用法:grep [options]
主要参数
[options]主要参数:
-c:只输出匹配行的计数。
-I:不区分大 小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达 式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的单个字符。
* :有字符,长度可以为0。
常见使用:
1 grep root /etc/passwd 匹配文件中有root的行
2 grep ^root /etc/passwd 匹配文件中以root开头的行
3 grep -v root /etc/passwd 匹配文件中无root的行
4 grep -v ^$ test 过滤文件中的空行
5 grep '[239].' data #输出所有含有以2,3或9开头的,并且是两个数字的行
3.9、sed:
替换/查找/删除命令
3.10、awk:
文本分析命令
3.11、vi/vim:
文本编辑器
四、任务操作:
4.1、at:
在一个指定时间执行指定任务,仅执行依次,且需要开启atd进程
常用:
1 三天后的下午5点钟执行date : at 5pm+3 days date
2 删除定时任务:
通过atq查看任务号
atrm 任务号
3 显示定时任务内容
at -c 任务号
4.2、crontab:
linux下周期性的执行某种任务或等待处理某些事件的一个守护进程
使用方式:
vim /etc/crontab
文件格式:
minute hour day month week command
其中:
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,脚本文件。
特殊字符:
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率
命令格式:
crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
参数:
-u user : 指定循环定时任务的用户
file : cronttab格式的文件
-e : 编辑某个用户的crontab文件,默认当点用户
-l : 显示内容
-r : 从/var/spool/cron目录中删除某个用户的crontab文件
常用:
1 每1分钟执行一次command
命令:
* * * * * command
2 每小时的第3和第15分钟执行
命令:
3,15 * * * * command
3 在上午8点到11点的第3和第15分钟执行
命令:
3,15 8-11 * * * command
4 每隔两天的上午8点到11点的第3和第15分钟执行
命令:
3,15 8-11 */2 * * command
5 每个星期一的上午8点到11点的第3和第15分钟执行
命令:
3,15 8-11 * * 1 command
4.3、&/nuhup:
任务置于后台。
常用:
python test.py&
nuhup python test.py&
五、网络操作:
5.1、ifconfig:
查看设置网卡参数。
命令格式: ifconfig [网络设备] [参数]
常用:
ifconfig eth0 up/down 启用或关闭指定网卡
ifconfig eth0 显示网卡信息
ifconfig 查看所有网卡信息
5.2、ping:
通过ICMP(Internet控制消息协议)发送消息来验证是否能连通另一台主机。
格式:
ping [参数] [主机名或IP地址]
参数:
-d 使用Socket的SO_DEBUG功能。
-f 极限检测。大量且快速地送网络封包给一台机器,看它的回应。
-n 只输出数值。
-q 不显示任何传送封包的信息,只显示最后的结果。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。通常是查看本机的网络接口是否有问题。
-R 记录路由过程。
-v 详细显示指令的执行过程。
-s 设置数据包的大小
5.3、netstat:
查看网络状态。
格式:
netstat [option]
参数:
-a: 显示所有
-n: 以ip形式显示
-p: 显示进程
-r: 显示路由表
-t: 只显示tcp
-u: 只显示udp
-i: 显示网络接口
常用:
1 netstat
2 netstat -nu 只显示udp / -t只显示tcp
3 netstat -r 显示路由表,作用同route
5.4、route:
查看路由以及增删路由。
格式:
route [option] [action]
参数:
-n 不解析名字
-v 显示详细的处理信息
-f 清除所有网关入口的路由表。
-p 与 add 命令一起使用时使路由具有永久性。
add:添加一条新路由。
del:删除一条路由。
-net:目标地址是一个网络。
-host:目标地址是一个主机。
常用:
route -n 显示路由表
route add/del default gw 192.168.120.1 删除和添加设置默认网关
route add -net 172.25.0.0 netmask 255.255.0.0 dev eth0 添加网关
5.5、traceroute:
查看路由轨迹。
格式:
traceroute[参数][主机]
参数:
-I 使用ICMP回应取代UDP资料信息。
-d 使用Socket层级的排错功能。
-s 设置本地主机送出数据包的IP地址。
-n 只显示IP
常用:
traceroute www.163.com
traceroute -n www.163.com 显示IP地址,不查主机名
5.6、nslookup:
查询DNS记录,查看域名解析是否正常,网络故障时用来诊断。
格式:
nslookup [-qt=type] domain [dns-server]
type为 dns的解析记录,如mx为设置查询域名邮件交换记录
常用:
nslookup baidu.com
nslookup -qt=mx 163.com 8.8.8.8
5.7、ssh:
安全远程链接主机。
格式: ssh [参数] 域名或IP地址
六、文件传输:
6.1、tftp:
tftp命令来自英文词组“Trivial File Transfer Protocol”的缩写,中文译为简单文件传输协议,其功能是基于TFTP协议进行的文件传输工作。用户可以通过文字模式将文件上传至远程服务器,亦可以从服务器下载文件到本地主机。
语法:tftp [参数] 域名或IP地址
常见指令:
connect: 连接远程TFTP服务器
mode: 文件传输模式
put: 上传指定文件
get: 下载指定文件
quit: 退出TFTP服务
verbose: 显示执行过程详细信息
trace: 显示包路径
status: 显示当前状态信息
binary: 二进制传输模式
ascii: ASCII传送模式
rexmt: 设置包传输的最长超时时间
timeout: 设置重传的最长超时时间
help: 显示帮助信息
?: 显示帮助信息
6.2、curl:
curl命令来自英文词组“CommandLine URL”的缩写,其功能是用于在Shell终端界面中基于URL规则进行的文件传输工作。
语法格式:curl [参数] 网址URL [文件名]
常见指令:
-a: 追加写入到指定文件
-A: 设置用户代理标头信息
-b: 设置用户Cookie信息
-d: 以HTTP POST方式传送数据
-o: 设置新的本地文件名
-O: 保留远程文件的原始名
-T: 上传指定文件
-u: 设置服务器的用户名和密码
示例:
获取指定网页源码: curl http://www.baidu.com
下载指定文件: curl -O http://www.baidu.com/robots.txt
打印指定网站的HTTP响应头信息: curl -I http://www.baidu.com
6.3、wget:
下载网络文件,从指定网址下载网络文件。wget命令非常稳定,一般即便网络波动也不会导致下载失败,而是不断地尝试重连,直至整个文件下载完毕。
语法:wget [参数] 网址URL [对象]
参考参数:同curl。
示例:
下载指定网络文件 wget http://www.baidu.com/robots.txt
下载并保存在本地 wget -O baidurts.txt http://www.baidu.com/robots.txt
下载指定文件,限速最高每秒300k wget --limit-rate=300k http://www.baidu.com/robots.txt
启动断点续传下载文件 wget -c http://www.baidu.com/robots.txt
6.4、rsync:
rsync(remote sync):远程同步工具,用于远程数据同步。rsync命令能够基于网络(含局域网和互联网)快速地实现多台主机间的文件同步工作。
rsync默认服务器端口为873。
语法格式:rsync [参数] 目录名
常见参数:
-d: 不递归目录文件,不传输子文件
-D: 保留设备文件信息
-n: 显示将要传输的文件列表
-o: 保留文件原始所有者身份
-p: 保留文件原始权限信息
-P: 显示进度信息
-q: 使用精简输出模式
-r: 递归处理所有子文件
-R: 使用相对路径
-t: 保留文件时间信息
-v: 显示执行过程详细信息
示例:
将本地目录(/Dir)与远程目录(192.168.10.10:/Dir)相关联,保持文件同步:
[root@linuxcool ~]# rsync -r /Dir 192.168.10.10:/Dir root@192.168.10.10's password: 此处输入远程服务器密码
将远程目录(192.168.10.10:/Dir)与本地目录(/Dir)相关联,保持文件同步:
[root@linuxcool ~]# rsync -r 192.168.10.10:Dir /Dir root@192.168.10.10's password: 此处输入远程服务器密码
关联两个本地的目录,保持文件同步:
[root@linuxcool ~]# rsync -r /Dir1 /Dir2
列出远程指定目录内的文件列表:
[root@linuxcool ~]# rsync 192.168.10.10:/Dir/ root@192.168.10.10's password: 此处输入远程服务器密码