博客
关于我
Linux常用命令(二)
阅读量:348 次
发布时间:2019-03-04

本文共 5002 字,大约阅读时间需要 16 分钟。

重定向与后台运行程序

1. 重定向

在Linux系统中,> 用于将命令的标准输出重定向到某个文件,而 >> 用于追加到该文件。如果文件不存在,>>> 都会首先创建该文件。

示例

echo Hello, World! > output.txtecho More Content >> output.txt

执行上述命令后,output.txt 文件将包含以下内容:

Hello, World!More Content

2. 错误输出重定向与合并输出

1> 用于将正确的输出重定向到指定文件,而 2> 用于将错误输出重定向到指定文件。要将错误和正确输出合并到同一个文件,可以使用以下命令:

command 1> output.txt 2>&1

这等价于:

command > output.txt 2>&1

示例

ls -l 2>&1 > output.txt

执行上述命令会将 ls -l 的输出和错误信息都重定向到 output.txt 文件中。

3. 追加输出到文件

>> 用于追加到文件中,与 > 不同,> 会清空文件内容。要将错误和正确输出都追加到同一个文件,可以使用:

command 1>> output.txt 2>&1

示例

ls -l 1>> output.txt 2>&1

执行上述命令会将 ls -l 的输出和错误信息都追加到 output.txt 文件中。

4. 忽略错误输出

要将错误输出直接丢向垃圾站,可以使用:

command 1> output.txt 2> /dev/null

示例

ls -l /nonexistentfile 1> output.txt 2> /dev/null

执行上述命令会将正确输出重定向到 output.txt 文件中,错误输出则被丢弃。


2. 后台运行程序(nohup)

在Linux中,nohup 用于不挂断地运行命令。使用 nohup 后,命令会继续运行,即使用户退出终端。使用方法如下:

示例

nohup python -u myscript.py > log.out 2>&1 &

执行上述命令会将 myscript.py 后台运行,输出信息保存在 log.out 文件中。


3. 压缩与解压

压缩命令

tar -cvf jpg.tar *.jpgtar -czf jpg.tar.gz *.jpgtar -cjf jpg.tar.bz2 *.jpgtar -cZf jpg.tar.Z *.jpgrar a jpg.rar *.jpgzip jpg.zip *.jpg

解压命令

tar -xvf file.tartar -xzvf file.tar.gztar -xjvf file.tar.bz2tar -xZvf file.tar.Zunrar e file.rarunzip file.zip

常用参数

  • -c:创建压缩档案
  • -x:解压
  • -v:显示详细过程
  • -f:指定文件名
  • -z:使用 gzip
  • -j:使用 bzip2
  • -Z:使用 compress
  • -r:递归压缩或解压

4. 网络相关(netstat)

语法

netstat [-acCeFghilMnNoprstuvVwx] [-A 
<网络类型>
] [--ip]

参数说明

  • -a:显示所有连线中的Socket
  • -A <网络类型>:列出该网络类型连线中的相关地址
  • -c:持续列出网络状态
  • -C:显示路由器配置的快取信息
  • -e:显示网络其他相关信息
  • -F:显示FIB
  • -g:显示多重广播功能群组组员名单
  • -h:在线帮助
  • -i:显示网络界面信息表单
  • -l:显示监控中的服务器的Socket
  • -M:显示伪装的网络连线
  • -n:直接使用IP地址
  • -o:显示计时器
  • -p:显示正在使用Socket的程序识别码和程序名称
  • -r:显示路由表
  • -s:显示网络工作信息统计表
  • -t:显示TCP传输协议的连线状况
  • -u:显示UDP传输协议的连线状况
  • -v:显示指令执行过程
  • -V:显示版本信息
  • -w:显示RAW传输协议的连线状况
  • --ip:此参数的效果和指定 -A inet 参数相同

5. 进程查看器(ps)

命令参数

  • -a:显示所有进程
  • -A:显示所有进程
  • -c:显示进程的真实名称
  • -e:显示环境变量
  • -f:显示程序间的关系
  • -l:显示与作业相关的信息
  • -u:指定用户的所有进程
  • -aux:列出目前所有的正在内存中的程序
  • -C <命令>:列出指定命令的状况
  • --lines <行数>:每页显示的行数
  • --width <字符数>:每页显示的字符数

输出含义

  • F:程序的旗标
  • S:进程状态
  • UID:程序的用户ID
  • PID:进程ID
  • PPID:父进程ID
  • CPU:CPU使用率
  • MEM:内存使用率
  • TIME+:程序启动后占用的总CPU时间
  • CMD:执行的命令

6. 任务管理器(top)

返回信息

$ toptop - 09:14:56 up 264 days, 20:56, 1 user, load average: 0.02, 0.04, 0.00Tasks: 87 total, 1 running, 86 sleeping, 0 stopped, 0 zombieCpu(s): 0.0%us, 0.2%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.2%stMem: 377672k total, 322332k used, 55340k free, 32592k buffersSwap: 397308k total, 67192k used, 330116k free, 71900k cachedPID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND1 root      20   0  2856  656  388 S  0.0  0.2   0:49.40 init2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd3 root      20   0     0    0    0 S  0.0  0.0   7:15.20 ksoftirqd/04 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0

交互操作指令

  • q:退出top命令
  • <Space>:立即刷新
  • s:设置刷新时间间隔
  • c:显示命令完全模式
  • t:显示或隐藏进程和CPU状态信息
  • m:显示或隐藏内存状态信息
  • l:显示或隐藏uptime信息
  • f:增加或减少进程显示标志
  • S:累计模式
  • P:按%CPU使用率排行
  • T:按MITE+排行
  • M:按%MEM排行
  • u:指定显示用户进程
  • r:修改进程renice值
  • kill:进程
  • i:只显示正在运行的进程
  • W:保存对top的设置到文件/toprc,下次启动将自动调用toprc文件的设置
  • h:帮助命令

7. 跨机远程拷贝(scp)

命令格式

scp [参数] [原路径] [目标路径]

常用参数

  • -1:强制使用ssh1或ssh2协议
  • -4:只使用IPv4寻址
  • -6:只使用IPv6寻址
  • -B:使用批处理模式(不询问传输口令或短语)
  • -C:允许压缩
  • -p:保留文件的修改时间、访问时间和访问权限
  • -q:不显示传输进度条
  • -r:递归复制整个目录
  • -v:详细方式显示输出
  • -c cipher:加密传输
  • -F ssh_config:指定一个替代的ssh配置文件
  • -i identity_file:从指定文件中读取传输时使用的密钥文件
  • -l limit:限定用户所能使用的带宽(单位:Kbit/s)
  • -o ssh_option:如果习惯于使用ssh_config(5)中的参数传递方式
  • -S program:指定加密传输时所使用的程序

使用示例

  • 从远处复制文件到本地目录:
  • scp root@10.6.159.147:/opt/soft/demo.tar /opt/soft/
    1. 递归复制目录到本地:
    2. scp -r root@10.6.159.147:/opt/soft/test /opt/soft/
      1. 上传本地文件到远程机器:
      2. scp /opt/soft/demo.tar root@10.6.159.147:/opt/soft/scptest
        1. 上传本地目录到远程机器:
        2. scp -r /opt/soft/test root@10.6.159.147:/opt/soft/scptest

          8. 定时任务(crontab)

          命令格式

          crontab [-u user] file crontab [-u user] [-e | -l | -r]

          命令参数

          • -u user:指定用户
          • file:文件路径,指定crontab任务列表文件
          • -e:编辑crontab文件
          • -l:显示crontab文件内容
          • -r:删除crontab文件

          crontab文件格式

          分 时 日 月 星期 要运行的命令

          常用方法

        3. 创建并提交crontab文件:
        4. crontab -u username davecron
          1. 查看crontab文件:
          2. crontab -l
            1. 备份crontab文件:
            2. crontab -l > $HOME/mycron
              1. 删除crontab文件:
              2. crontab -r

                使用示例

              3. 每1分钟执行一次myCommand
              4. * * * * * myCommand
                1. 每小时的第3和第15分钟执行:
                2. 3,15 * * * * myCommand
                  1. 在上午8点到11点的第3和第15分钟执行:
                  2. 3,15 8-11 * * * myCommand
                    1. 每隔两天的上午8点到11点的第3和第15分钟执行:
                    2. 3,15 8-11 */2 * * * myCommand
                      1. 每周一上午8点到11点的第3和第15分钟执行:
                      2. 3,15 8-11 * * 1 myCommand
                        1. 每晚的21:30重启smb:
                        2. 30 21 * * * /etc/init.d/smb restart

                          9. 查看系统进程通信(ipcs、ipcrm)

                          查看系统使用的IPC资源

                          ipcs

                          查询IPC资源

                          ipcs -m  # 共享内存ipcs -q  # 消息队列ipcs -s  # 信号量ipcs -l  # 查看最大容量

                          移除IPC对象

                          ipcrm -M shmkey  # 共享内存ipcrm -q msqid  # 消息队列ipcrm -s semid  # 信号集

                          10. 抓包工具(tcpdump)

                          抓包特定网口

                          tcpdump -i eth0

                          抓取指定数量的包

                          tcpdump -c 2 -i eth0

                          抓包并写入文件

                          tcpdump -w 20120606.pcap -i eth0

                          读取保存的抓包文件

                          tcpdump -r 20120606.pcap

                          抓取特定协议的包

                          tcpdump -i eth0 arp

                          抓取特定端口的包

                          tcpdump -i eth0 port 22

                          抓取目标IP和端口的包

                          tcpdump -i eth0 dst 10.70.121.92 and port 22

                          11. 程序调试工具(strace、pstack)

                          strace跟踪系统调用

                          strace -f -F -o ~/straceout.txt myserver

                          pstack跟踪进程栈

                          pstack 7013

                          strace和pstack配合使用

                          strace -T -tt -e trace=all -p 28979 > output.txt

                          12. 列出系统打开的文件(lsof)

                          查看所有打开文件

                          lsof

                          查看指定进程的文件

                          lsof -c mysql

                          查看指定用户的文件

                          lsof -u username

                          查看指定文件的进程

                          lsof -d txt

                          查看网络连接

                          lsof -i

                          查看网络文件系统

                          lsof -N

                          查看域名socket文件

                          lsof -u

                          查看指定目录的文件

                          lsof -d /path/to/directory

    转载地址:http://myqe.baihongyu.com/

    你可能感兴趣的文章
    Python基本语法与变量类型
    查看>>
    python基本数据类型(容器)- tuple list dict set
    查看>>
    python基本工资的调整方案_Python薪资又涨了!这可咋办!
    查看>>
    Python基准测试和性能分析内存管理和垃圾回收
    查看>>
    Python基于RESTful风格的接口自动化测试实战
    查看>>
    python基于pygame实现跨年烟花效果
    查看>>
    python基于flask搭建http服务(四)—— Docker容器化部署
    查看>>
    python基于flask搭建http服务(二)—— 实现Excel上传、数据清洗、入库
    查看>>
    python基于flask搭建http服务(三)—— 使用gunicorn部署项目
    查看>>
    python基于flask搭建http服务(一)—— 实现数据查询和Excel导出
    查看>>
    Python块键盘/鼠标输入
    查看>>
    Python在正确的时区获取当前时间
    查看>>
    python在心理学研究中的应用有哪些_心理学在线研究可用平台简介和应用进展
    查看>>
    python系列【仅供参考】:python tornado 集成redis消息订阅的异步任务之后tornado主程序无法启动,解决方案
    查看>>
    Python在列表理解中使用枚举
    查看>>
    python在使用HTMLTestRunner时,报告为空,错误提示<_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf_8'>...
    查看>>
    python在gpu上运行_【python】python开启GPU加速
    查看>>
    Python在def函数中使用for循环
    查看>>
    Python在def函数中使用for循环
    查看>>
    Python在Conda环境中,但在Windows虚拟环境中没有激活
    查看>>