Linux实用命令精简提示版

一、实用命令

1、远程文件复制(scp)

scp:secure copy
scp [参数] [原路径] [目的路径]

  • 参数: -r 对于目录递归复制
    eg:scp -r root@10.6.159.147:/opt/spft/test /opt/soft

2、定时任务(crontab)

contab [-u username] [-l | -e | -r]

  • 参数:
    -l: 列出当前的定时任务
    -r:删除所有的定时任务
    -e:编辑定时任务(单个删除)
  • -e的结果
    * * * * * 命令 (分 时 日 月 周 命令)
    * 代表任意值; ,逗号代表多个值; -减号代表范围;/n代表每隔n个单位
    在这里插入图片描述
  • 搭配使用anacron命令,防止在该执行时由于没有执行(掉电等原因),恢复后重新执行。
  • 相关文件 /etc/crontab,系统管理时用到

3、下载(wget)

wget支持HTTP,HTTPS和FTP协议,可以使用HTTP代理

  • wget [参数] [URL地址]
  • 参数:
    -O:下载后重命名
    -b:后台下载
wget http://www.minjieren.com/wordpress-3.1-zh_CN.zip
wget -O wordpress.zip http://www.minjieren.com/download.aspx?id=1080

4、查看程序各个段的大小 size

/opt/app/todeav1/colin/tests# size main
text    data     bss     dec     hex filename
1259     540      16    1815     717 main

5、top(Linux下的任务管理器)

$top
    top - 09:14:56 up 264 days, 20:56,  1 user,  load average: 0.02, 0.04, 0.00
    Tasks:  87 total,   1 running,  86 sleeping,   0 stopped,   0 zombie
    Cpu(s):  0.0%us,  0.2%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.2%st
    Mem:    377672k total,   322332k used,    55340k free,    32592k buffers
    Swap:   397308k total,    67192k used,   330116k free,    71900k cached
    PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    1 root      20   0  2856  656  388 S  0.0  0.2   0:49.40 init
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd
    3 root      20   0     0    0    0 S  0.0  0.0   7:15.20 ksoftirqd/0
    4 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0
  • 第一行:
    • 09:14:56 : 系统当前时间
    • 264 days, 20:56 : 系统开机到现在经过了多少时间
    • 1 users : 当前2用户在线
    • load average: 0.02, 0.04, 0.00: 系统1分钟、5分钟、15分钟的CPU负载信息
  • 第二行:任务,87个进程
  • 剩下的应该能看懂

6、free(查看可用内存)

/opt/app/tdev1$free
             total       used       free     shared    buffers     cached
Mem:       8175320    6159248    2016072          0     310208    5243680
-/+ buffers/cache:     605360    7569960
Swap:      6881272      16196    6865076
  • buffercached 的区别:buffer是解决磁盘与内存速率不匹配问题的,cached是解决CPU与内存速率不匹配问题的。他们都是内存中的一块区域。
  • freeavailable :available是应用程序看到的可用内存,free是真实的可用内存,是内核看到的。available = free + buffer +cached。应用程序内存不够用时内核会将buffer和cached腾出来给应用程序。

7、pstack (跟踪进程栈)

pstack pid

8、sort(排序)

  • sort 命令将以默认的方式将文本文件的第一列以ASCII 码的次序排列,并将结果输出到标准输出

  • -n 按数字进行排序 VS -d 按字典序进行排序
    -r 逆序排序
    -k N 指定按第N列排序

  • 使用 uniq可以消除重复行

sort unsort.txt | uniq      // 消除重复行
sort unsort.txt | uniq -c   // 统计各行出现的次数
sort unsort.txt | uniq -d   // 找出重复行

9、xargs

  • 以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据
  • 有些命令不支持管道,需要xargs 如下
find /sbin -perm +700 |ls -l       #这个命令是错误的
find /sbin -perm +700 |xargs ls -l   #这样才是正确的
  • -n 3 :每行3个参数输出
  • -d X:分隔符为X,默认分割符换行,空格
  • -I {} :将前面的输出每一个作为参数传递给后面的指令
  • -0:以 \0作为分割符 (等同于 -d \0)

10、文本处理(tr, grep,sed,awk)

二、系统状态监测

1、sar——System Activity Reporter(系统活动情况报告)

参数太多了。。。

sar -u 2 5  # cpu状态,每2秒输出一次,共输出五次
sar -q      # 查看cpu负载,输出任务队列,进程数,1,5,15的平均负载
sar -r      # 查看内存
sar -W      # 查看交换空间
sar -B      # 内存分页监控
sar -b      # I/O 和传输速率监控

2、netstat(查看网络状态)

  • -a:显示所有连线中的Socket
  • -u:udp
  • -t:tcp
  • -p:显示用于连接的程序识别码和程序名称
  • -n:显示ip连接的 ip 地址而非域名
  •   netstat -apn   # 常用
    

3、vmstat(监视内存使用情况)

4、iostat(监视设cpu负载,磁盘读写)

  • cpu
  • 磁盘

三、基本命令

1、find(用于查找文件)(locate)

  • locate 建立索引,去查所以,非实时查找
find path -option [-print] [-exec/-ok command] {} \;

path:在第一个-option之前的为path,path为空则默认当前目录
[-print]:默认的expression,默认输出,-delete 删除
[-print0]: 以-0作为文件分割符,默认为\n,这样输出全在一行
-exec command:对找出来的文件执行commend命令
-ok 好像是在commed是 rm时,删除前有提示
注意:在{} 与 \ 之间有空格。{}在执行时会被替换成前面查到的文件名
option选项:

  • ctime / atime / mtime n:n天内被读取过的文件
  • perm 664 : 权限为664
  • type:f:一般文件 d:目录 l:符号链接(除此外还有e、b、p)
  • name: 文件或目录名,参数为正则匹配
// 1、将当前目录及其子目录下所有文件后缀为 .c 的文件列出来:
find . -name "*.c"

// 2、将目前目录其其下子目录中所有一般文件列出
find . -type f

// 3、将当前目录及其子目录下所有最近 20 天内更新过的文件列出:
find . -ctime -20

// 4、查找 /var/log 目录中更改时间在 7 日以前的普通文件,并在删除之前询问它们:
find /var/log -type f -mtime +7 -ok rm {} \;

// 5、查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:
find . -type f -perm 644 -exec ls -l {} \;

// 6、查找系统中所有文件长度为 0 的普通文件,并列出它们的完整路径:
find / -type f -size 0 -exec ls -l {} \;

// 7、查找txt和pdf文件
find . \( -name "*.txt" -o -name "*.pdf" \) -print

// 8、否定参数 ,查找所有非txt文本:
find . ! -name "*.txt" -print

2、cat、head、tail、more(用于查看文件)

# 显示时同时显示行号:
cat -n filename
# 按页显示列表内容:
ls -al | more
# 显示文件前5行:
head -5 filename
# 显示文件倒数前五行:
tail -5 filename

tail -10f filename   # 实时显示文件的后10行内容,f即follow

# 查看两个文件间的差别:
diff file1 file2

nl filename  // 带有行号的输出文件内容

3、file(显示文件信息:类型,编码等)

4、touch(更新文件时间或者建立新文件)

  • 文件时间atime:(access time),mtime:(modification time);ctime:(state time)
  • touch [-a | m | c] filename 没有就新建

5、chmod(改权限)

  • u:拥有者; g:组; o:其他; a:全部
  • +/- r/w/x;

6、df,du(磁盘状态查看)

  • df: Disk Free
  • du: Disk Used
  • df会统计元数据(Meta Data),另外在文件删除但是仍有程序打开文件的时候du不会统计,df会。所以有时候 df > du.
df -h  # h:human,使用易读的方式显示M、G等
	   # 磁盘使用情况
du -sh  # -s :递归统计当前目录下文件的大小

7、|| 和 &&

&&:前面成功,则执行后面一条,否则,不执行
||:前面失败,则后一条执行
下面两个执行效果相同

ls /proc && echo  suss! || echo fail
if ls /proc; then echo suss; else echo fail; fi

8、wc(统计行和字符)

$wc -l file // 统计行数
$wc -w file // 统计单词数
$wc -c file // 统计字符数

9、ps、pstree

ps au 列出当前用户的进程
ps aux 所有

  • a:所有
  • f:进程依赖关系(包含每个进程的父进程)
  • x:详细信息

pstree pid/user 列出pid / user相关的进程树,默认从init进程为根打印

kill -9 pid  # 强制退出
kill -15 pid # 正常退出(默认选项)

10、tar(压缩打包)

tar -czvf test.tar.gz a.c  # 将a.c压缩为test.tar.gz
tar -xzvf test.tar.gz      # 解压

四、Vim

  • 三种模式
  • 一般命令模式下:
    • 0或者功能键【home】:移动光标到本行最前面
    • $或者功能键【End】:移动光标到本行末尾
    • /word:查找word,搭配(n/N)查找上一个或下一个
    • :n1,n2s/word1/word2/g” :在n1行n2行之间查找(常用::1,$s/word1/word2/g:第一行到最后一行)
    • 剪切:dd; 复制:yy; x/X删除; p/P:粘贴
    • 多行:nyy,ndd, 例如 20yy = 复制光标所在向下的20行
    • u:恢复,【ctrl】+r:重做
    • .:小数点重复上一条指令

五、基础知识

1、连接

在这里插入图片描述
详见:图示软硬链接的区别

硬链接软连接
与源文件地位相同新建一个文件
普通文件文件类型“l”,连接文件
删除后只要硬链接文件数不为零就能找到源文件删除源文件显示找不到文件
ln -s log2013.log link2013  # 建立软连接 -s 参数
ln log2013.log ln2013   # 建立硬链接

2、杀死僵尸进程的方法

  • 杀死其父进程

3、文件的三个时间

  • atime:access time
  • ctime:change time (文件状态改变,文件属性,权限,iNode号等)
  • mtime:modification time

4、环境变量(PATH)

PATH = $PATH:<PATH1>:<PATH2>
export PATH
  • 冒号分割
  • export命令
  • 上面是临时更改PATH,永久更改可以修改 \etc\profile

5、export

  • 变量使用export $value 后value值可以在当前bash的子shell中使用

6、shell脚本的调试方法

  • 方法一:通过 echo 输出变量的值(注,变量引用使用 $ 符号)

  • 方法二:通过选项

    • 选项:
      -n 读一遍脚本但不执行,用于检查语法错误
      -v 一边执行脚本,一边将命令打印输出
      -x 一边执行一边将命令和结果都打印输出
    • 使用参数有下面 三种方式
       1、命令行提供参数: bash -[n/x] scrip.sh 
       2、或者在脚本第一行:#!/bin/sh -x
       3、或者在脚本中使用  set -x (启用)  set +x (禁用)
        ```
    
  • 方法三:通过trap调试
    trap ‘command’ signal
    signal:EXIT,ERR,DEBUG

  • 方式四:使用调试工具bashdb

bashdb --debug scriptname
  • 1、列出代码和查询代码类:
    • l 列出当前行以下的10行
    • - 列出正在执行的代码行的前面10行
    • . 回到正在执行的代码行
    • w 列出正在执行的代码行前后的代码
    • /pat/ 向后搜索pat
    • ?pat?向前搜索pat
  • 2、Debug控制类:
    • h 帮助
    • help 命令 得到命令的具体信息
    • q 退出bashdb
    • x 算数表达式 计算算数表达式的值,并显示出来
    • !! 空格Shell命令 参数 执行shell命令
      使用bashdb进行debug的常用命令(cont.)
  • 3、控制脚本执行类:
    • n 执行下一条语句,遇到函数,不进入函数里面执行,将函数当作黑盒
    • s n 单步执行n次,遇到函数进入函数里面
    • b n 在行号n处设置断点
    • del n 撤销行号n处的断点
    • c n 一直执行到行号n处
    • R 重新启动当前调试脚本
    • Finish 执行到程序最后
    • cond n expr 条件断点

更详细的可以参考:

Linux工具快速教程
Linux 命令大全

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值