常见命令

Linux 中的帮助文档

  • man

  • info:GNU 项目推荐的新一代文档格式,功能更强

    • m 显示菜单

    • f 跟随交叉引用,l 返回

  • --help或 -h :查看大部分程序自带的帮助文档

磁盘与文件统计

  • df 查看磁盘空间占用

  • du 统计文件占用空间

  • fdisk 分区管理

  • mkfs.ext3 磁盘格式

  • mount 磁盘挂载

  • umount 磁盘卸载

查找文件

find :功能最丰富的文件查找命令

基本用法示例:

find / -name test -print

查找 / 目录下 名字为 test 的文件,然后打印出文件名

常用格式:

find [路径] [选项] [查找规则] [动作]
  • [路径]可以有多个,以空格分隔

  • [选项]常用的有:

    • -depth 先找目录内容,再找目录自身,即先深入查找.

    • -follow 跟随符号链接,将软连接解为实际文件.

    • -maxdepth N 设置目录查找深度

    • -mount (或 -xdev) 不查找其他挂载的文件系统,如NFS等

  • 基于文件名的[查找规则]:

    • 例1: find . -name “*.php”找本目录下所有后缀名为 .php 的文件

    • 例2: find . -iname “x[abc]”查找本目录下所有文件名为 xa、xb或xc 的文件,且不区分大小写。

    • 例3: find . -regex ".*b.*3" 查找本目录下文件完整路径及名称匹配该正则的。

  • 基于时间的[查找规则]:

    • 例1: find . -mmin -60 查找本目录下修改时间为最近60分钟内的

    • 例2: find . -mmin +5 查找本目录下修改时间为5分钟之前的

    • 例3: find /tmp -atime -1 查找/tmp目录下最近1天(24小时)内被访问过的文件

    • 总结:

      find . -atime N

      其中 -atime 的位置也可以使用如下参数: -atime, -mtime, -ctime, -amin, -mmin, -cmin N

      time: 天(24小时),min: minute,分钟

      +N N时间前,-N N时间内的,n 等于N的

  • 基于文件类型的[查找规则]:

    • 例1: find . -type f查找本目录下所有的“文件”

    • 例2: find . -type d查找本目录下所有的“目录”

  • 其他[查找规则]:

    • 例1: find . -user root查找本目录下所有root用户的文件

    • 例2: find . -perm 600 查找本目录下所有权限为600的文件

  • [查找规则]的组合:

    • find . \( -name “_*“ -or -user root \) -type f查找本目录下(以_开头或root用户的)“文件”

    • 逻辑运算符: -not -or -and

  • 常用[动作]:

    • -print 打印出找到的文件,以\n结束

    • -print0 打印出找到的文件,无换行

    • -exec command 对找到的文件执行命令

    • -ok 同 -exec, 但在执行前会询问用户

    • -ls 列出文件详情

    • -exec 示例:

      find ./ -name "*.tmp" -exec unlink {} \;

      {} :指代找到的文件

      \; :表示-exec指定的命令结束,必须。

      安全起见也可以用 -ok

其他查找文件命令:

  • which :查找环境变量PATH下的可执行文件及别名(alias)

  • whereis:查找系统常见目录中的可执行文件、文档、源代码、配置文件等

  • locate:通过索引数据库查找文件

Linux 中的文本工具

  • cat —查看文件内容

  • head —查看文件头部

  • tail —查看文件尾部

  • more—分页查看文件内容

  • less—更强的分页查看文件内容

  • cut—按列查看文件内容,默认以 TAB 分隔

  • sort—对文件内容排序

  • uniq—对文件内容排重, -c 可统计连续重复行数量,资料:实例解说Linux命令行uniq

  • diff—对比文件内容

  • grep—查找文件内容

  • split—按行、字节等切分并输出文件

  • wc—字节、单词、行计算

cut :选择每一行中特定的列(字段),然后输出

示例:

查看系统中所有用户

cut -d: -f1 /etc/passwd
  • -d 指定分隔符

  • -f 指定输出的字段

sort :对文件中的行排序,默认以ASCII顺序排列

示例:

按passwd文件中的第三列数字排序,以“:”分隔每一列

sort -n -k3 -t: /etc/passwd
  • -n 按数字而不是ascii排序

  • -t 指定列的分隔符

  • -k 指定按第几列排序

  • -r 倒序排列

示例:

按第6列倒序排列,第3列正序排列

sort -t: -k6nr -k3n  /etc/passwd

grep :输出文本中匹配所指定正则表达式的行

命令格式:

grep [选项] 正则表达式 [文件]

常用[选项]:

  • -c 输出匹配到的行数

  • -E 启用更强大的正则表达式

  • -H 输出匹配到的行及所属的文件名

  • -i 不区分大小写匹配

  • -l 在文件中找到第一个匹配后,显示文件名,停止后续查找

  • -v 输出不匹配的行

  • --color 高亮显示匹配到的内容

例:

grep -cP 'bot|spider' ./access.log

显示 access.log 文件中出现 bot 或 spider 关键词的行数

split—按行、字节等切分并输出文件

命令格式:

split [选项] [文件] [文件名前缀]

常用[选项]:

  • -b:值为每一输出档案的大小,单位为 byte。

  • -C:每一输出档中,单行的最大 byte 数。

  • -d:使用数字作为后缀。

  • -l:值为每一输出档的行数大小。

  • -a:后缀长度

通过管道组合使用工具

管道

Linux 中有三个系统文件描述符: 0:标准输入; 1:标准输出; 2:标准错误输出。

标准输出、标准错误输出通常默认为当前屏幕。

管道是Linux进程间通信的方式之一

管道像一根供数据流通的单向管道

所有Linux程序的标准输出都可以通过管道传递给另一个程序作为标准输入

需求:分析如下网站访问日志文件,找出访问量最大的前10个IP地址,降序排列

123.151.47.117 - - [16/Feb/2014:00:00:02 +0800] "GET / HTTP/1.1"
220.171.166.19 - - [16/Feb/2014:00:00:06 +0800] "GET /search/mp3

找出IP,每行一个

cut -d " " -f1 ./access.log

去重并计数

uniq -c

排序(-n 按数字而不是ascii排序, -r 倒序排列)

sort -n -r

取前10行

head -10

最终命令

$ cut -d " " -f1 ./access.log | sort | uniq -c | sort -n -r | head -10

上面的结果如何保存下来?

输入/输出重定向

Linux 中有三个系统文件描述符: 0:标准输入; 1:标准输出; 2:标准错误输出。

>符号可重定向输出位置。

ls -l > ls_output.log将标准输出重定向到 ls_output.log文件

ls -l >> ls_append.log将标准输出重定向*追加*到 ls_output.log文件

ls -l 1> ls_output.log 2> ls_error.log

将 标准输出 重定向到 ls_output.log 文件,标准错误输出重定向到 ls_error.log 文件

ls -l 1> ls_out.log 2>&1

将标准输出重定向到 ls_out.log 文件,然后将标准错误输出重定向到和标准输出同样的地方。

more < xxx.txt输入重定向

上面操作的最终命令进行报错结果

$ cut -d " " -f1 ./access.log | sort | uniq -c | sort -n -r | head -10 > ip.log

将结果丢弃,也不输出

$ xxxxxxx > /dev/null

系统管理

ps 命令:显示当前进程

  • ps -ef 显示带启动命令行的进程信息

  • ps -u root 显示某用户的进程

  • ps -A 显示全部进程

  • ps -ejH 显示进程树

kill 命令:向进程发送信号,常用于终止某进程

  • kill -s PID : -s 指定信号

  • kill -9 PID 可用于强制某进程退出

  • killall可用于通过进程名称发送信号

fg 命令: 将后台任务调到前台

命令后加 & ,或Ctrl + Z 可将任务转到后台执行

后台执行中的任务,可以通过 “fg %任务序号”调到前台

crontab:让命令自动定时运行

crontab: 定时执行任务

基本格式 :

*  *  *  *  *  command
分  时  日  月  周

分(0-59) 时(0-23) 日(1-31) 月(1-12) 周(0-6)//0代表周日

每个 * 的位置除数字取值外,还可以有如下格式:

  • * 代表所有的取值范围内的数字;

  • / 代表“每”的意思,如 "*/5"表示每5个单位;

    • 代表范围,从某个数字到某个数字;

  • , 用于指定多个值。

常用命令:

service crond start 启动 crond 服务

crontab -l #列出cron服务的详细内容
crontab -u xxx -e #设定xxx用户的cron服务
crontab -u xxx -r #删除xxx用户的所有cron服务

注意事项

  1. crontab 中的各任务尽量使用绝对路径

  2. crontab 执行是以实际时间计算的,而不是以启动时间计算,因此如果系统有大量crontab任务,最好不要集中定在同一个时间启动。

示例:

每天早上6时0分

0 6 * * * echo "Good morning." >> /tmp/test.txt

每两个小时

0 */2 * * * echo "Have a break now." >> /tmp/test.txt

晚上11点到早上7点之间每两个小时,早上八点

0 23-7/2,8 * * * echo "Good dream:)" >> /tmp/test.txt

netstat: 查看网络状态

  • netstat -anpl 查看所有网络连接状态,带进程名称

Ifconfig : 查看网卡配置、ip地址信息

iptables: Linux 防火墙

  • service iptables start#启动服务

  • iptables -A INPUT -p tcp -s 1.2.3.4 --dport 80 -j DROP#所有来自 1.2.3.4 的80端口访问全部屏蔽

  • service iptables save#保存规则,否则重启失效

  • iptables -L -n --line-numbers #列出当前配置及规则号

  • iptables -D INPUT 4 删除INPUT类第4号规则

  • iptables -F清除所有规则

top 命令

常用操作:

  • P:按CPU使用量排列,

  • M:按内存使用量排列,

  • h:显示帮助 ,

  • q:退出

  • 1: 多 CPU 显示,

  • k:杀死进程,

  • r:设置进程Nice级别

load average: 0.00, 0.03, 0.05

平均负载:最近1分钟,最近5分钟,最近15分钟

%Cpu0  :  0.3 us,  1.0 sy,  0.0 ni, 98.3 id,  0.0 wa,  0.0 hi,  0.3 si,  0.0 st

查看系统运行状态

$ uname -a                   # 查看内核/操作系统/CPU信息
$ cat /etc/issue             # 查看操作系统版本
$ cat /proc/version          # 查看内核
$ cat /proc/cpuinfo          # 查看CPU信息
$ cat /proc/meminfo          # 查看内存信息
$ cat /proc/loadavg       #查看负载信息
$ free -m                    # 查看内存使用量和交换区使用量
$ hostname                   # 查看计算机名

软件安装

  • yum 安装(search install update remove)

  • rpm安装(-i –e -qa)

  • Apt安装(search install update remove)

  • 源码编译安装

压缩与解压缩

zip压缩与解压

zip压缩

zip -r test.zip ./*
  • -d 删除压缩包内文件

  • -m删除源文件

unzip解压缩

unzip test.zip

rar压缩与解压

rar压缩

rar a test.rar ./*

rar解压缩

unrar e test.rar

tar压缩与解压

tar压缩

tar –cvf a.tar a 
tar –czf a.tar.gz a 
tar –cjf a.tar.bz2 a 
tar –cf a.tar a 
tar -cvzf  a.tar.gz a --remove-files

tar解压缩

tar -xvf file.tar
tar -xzvf file.tar.gz
tar -xjvf file.tar.bz2
tar -xZvf file.tar.Z

其他命令:

gzip

bzip2

Uncompress

Last updated