一. 常用命令
文件目录操作
- cd 切换目录
cd dirname
- ls 显示文件/目录属性1234567891011常见参数:-l :列出长数据串,包含文件的属性与权限数据等-a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)-d :仅列出目录本身,而不是列出目录的文件数据-h :将文件容量以较易读的方式(GB,kB等)列出来-R :连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来示例: ls -l /tmp```3. pwd 显示当前路径`pwd`4. mkdir 创建目录
mkdir newdir
mkdir -p newdir/newdir #递归创建目录
常见参数:
-r: 递归复制
-p: 保持属性复制
mv filename dirname 移动文件
mv oldfilename newfilename 对文件重命名
-i: 交互式
-r: 递归
-f: 强制
ln /etc/passwd passwd 创建硬链接
ln -s 创建软链接
chown [-R] user dir/file
chown [-R] user:group dir/file
chgrp [-R] groupname dir/file
参数:
-R: 递归更改
r=4,w=2,x=1
chmod xxx filename
-r 关机重启
-h 关机不重启
now 立刻关机
Linux共有七种执行等级:
–run level 0 :关机
–run level 3 :纯文本模式
–run level 5 :含有图形接口模式
–run level 6 :重新启动
参数说明:
-u: 指定用户id
-g: 指定用户组id
-d: 指定用户家目录
-m/M:创建家目录/M 不创建
-s: 指定用户登陆的shell
which ls 寻找ls命令所在位置
whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
locate passwd
用法: 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 查找目录
head -10 /etc/passwd 查看文件前10行
tail -5 /etc/passwd 查看文件后5行
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 #统计文件的字节数
|
|
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
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 分隔符
uniq [-icu]
选项与参数:
-i :忽略大小写字符的不同;
-c :进行计数
-u :只显示唯一的行
1 去重
cat words | sort |uniq
2 排序之后删除了重复行,同时在行首位置输出该行重复的次数:
#sort testfile | uniq -c
3 仅显示存在重复的行,并在行首显示该行重复的次数:
#sort testfile | uniq -dc
主要参数
[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开头的,并且是两个数字的行
at[参数][时间]
1 三天后的下午5点钟执行date : at 5pm+3 days date
2 删除定时任务:
通过atq查看任务号
atrm 任务号
3 显示定时任务内容
at -c 任务号
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
python test.py&
nuhup python test.py&
19:38:23 up 53 min, 2 users, load average: 0.11, 0.13, 0.16
开机时间 运行时长 在线用户 负载: 1min 5min 15min
free [-b|k|m|g]
total used free shared buffers cached
Mem: 1885320 494352 1390968 17080 688 207632
-/+ buffers/cache: 286032 1599288
Swap: 0 0 0
第一行: 内存总计 已经使用 空闲 多个进程共享的内存总额 缓冲 缓存
第二行: 除去缓冲缓存
第三行: swap空间使用情况
procs ———–memory———- —swap– —–io—- -system– ——cpu—–
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 1183708 2340 1374156 0 0 214 21 220 899 4 1 93 1 0
ps [option]
-A :所有的进程均显示出来
-a :不与terminal有关的所有进程
-u :有效用户的相关进程
-x :一般与a连用 可列出较完整的信息
-l :以长列表形式显示
-o :自定义显示
ps -aux/-ef 显示所有进程信息
ps -ax -o pid,%cpu,%mem –sort=-%cpu,-%mem | head -10 显示cpu以及内存占用最高的10个进程
top [option]
参数:
d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
p 通过指定监控进程ID来仅仅监控某个进程的状态。
S 指定累计模式
s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
i 使top不显示任何闲置或者僵死进程
h或者? 显示帮助画面,给出一些简短的命令总结说明。
k 终止一个进程。
i 忽略闲置和僵死进程。
q 退出程序。
r 重新安排一个进程的优先级别
s 改变两次刷新之间的延迟时间
M 根据驻留内存大小进行排序。
P 根据CPU使用百分比大小进行排序。
T 根据时间/累计时间进行排序。
top //每隔5秒显式所有进程的资源占用情况
top -d 2 //每隔2秒显式所有进程的资源占用情况
top -c //每隔5秒显式进程的资源占用情况
常用参数:
-A:所有报告的总和。
-u:CPU利用率
-v:进程、I节点、文件和锁表状态。
-d:硬盘使用报告。
-r:没有使用的内存页面和硬盘块。
-g:串口I/O的情况。
-b:缓冲区使用情况。
-a:文件读写情况。
-c:系统调用情况。
(1) sar -b 5 5 // IO传送速率
(2) sar -B 5 5 // 页交换速率
(3) sar -c 5 5 // 进程创建的速率
(4) sar -d 5 5 // 块设备的活跃信息
(5) sar -n DEV 5 5 // 网路设备的状态信息
(6) sar -n SOCK 5 5 // SOCK的使用情况
(7) sar -n ALL 5 5 // 所有的网络状态信息
(8) sar -r 5 5 // 内存和swap空间使用情况
ifconfig eth0 up/down 启用或关闭指定网卡
ifconfig eth0 显示网卡信息
ping [参数] [主机名或IP地址]
参数:
-d 使用Socket的SO_DEBUG功能。
-f 极限检测。大量且快速地送网络封包给一台机器,看它的回应。
-n 只输出数值。
-q 不显示任何传送封包的信息,只显示最后的结果。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。通常是查看本机的网络接口是否有问题。
-R 记录路由过程。
-v 详细显示指令的执行过程。
ping www.163.com
ping -R www.163.com
netstat [option]
参数:
-a: 显示所有
-n: 以ip形式显示
-p: 显示进程
-r: 显示路由表
-t: 只显示tcp
-u: 只显示udp
-i: 显示网络接口
1 netstat
2 netstat -nu 只显示udp / -t只显示tcp
3 netstat -r 显示路由表,作用同route
ss -s 我想查看当前服务器的网络连接统计
ss -l 我想查看所有打开的网络端口
ss -a 查看这台服务器上所有的socket连接
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 添加网关
traceroute[参数][主机]
参数:
-I 使用ICMP回应取代UDP资料信息。
-d 使用Socket层级的排错功能。
-s 设置本地主机送出数据包的IP地址。
-n 只显示IP
traceroute www.163.com
traceroute -n www.163.com 显示IP地址,不查主机名
nslookup [-qt=type] domain [dns-server]
type为 dns的解析记录
nslookup baidu.com
nslookup -qt=mx 163.com 8.8.8.8
```