Linux 和 Windows PowerShell 常用工具/命令 记录

Linux 常用工具:

enca: http://dl.cihar.com/enca/   文件名编码转换 iconv: 文件编码转换 convmv: 文件名编码转换 ldd: 查看可执行文件或动态链接库的依赖库 getconf: 查看配置信息(如getconf LONG_BIT可知当前系统是32位还是64位版本) tcpdump: 监视网络服务 sync: 将缓冲区内容写入磁盘    echo 3 > /proc/sys/vm/drop_caches: 手动释放缓存 man: 文档

man [章节号] 手册名称 1. Standard commands (标准命令) 2. System calls (系统调用) 3. Library functions (库函数) 4. Special devices (设备说明) 5. File formats (文件格式) 6. Games and toys (游戏和娱乐) 7. Miscellaneous (杂项) 8. Administrative Commands (管理员命令)

export $ENV_VAR:/usr/bin (环境变量)

PATH (可执行文件目录) LD_LIBRARY_PATH (C/C++库文件目录) /etc/ld.so.conf (C/C++ 库文件目录表)

uptime: 系统1分钟、5分钟和15分钟的系统平均负载 free: 内存使用情况 iostat: 磁盘IO使用情况 pidstat: 查看进程状态 ipcs: 查看共享内存、消息、信号量信息,如:ipcs -m 共享内存 nm: 查看二进制的符号列表 objdump –CS –l [bin文件]: 不反人类的反编译 strace: yumdownloader: 下载RPM软件包(需安装yum-utils)

常用命令及快捷键:

ps -aux:  查看进程信息 ps -o majflt minflt -C [command name] 来查看进程的majflt, minflt的值(压力测试时使用) netstat  -tuanp: 查看进程占用端口,  netstat -aep: 查看所有占用的网络端口信息 Ctrl+r : 最近历史命令 ! 匹配最近历史 cd - :上一次访问的目录 Ctrl + u 和 Ctrl + y: 删除当前行,恢复删除的行 Ctrl + c : 换行重新输入命令 Ctrl + d : 某些程序的中断命令 lsof: 查看被打开的文件(该指令可用于查找标记删除但未被真正删除的文件[会被标记为 deleted ], 详见 http://www.ibm.com/developerworks/cn/aix/library/au-lsof.html )

字符串操作:

  1. #, 删除左边第一个匹配串,保留右边字符串
  2. ##, 删除左边最后一个匹配串,保留右边字符串
  3. %, 删除右边第一个匹配串,保留左边字符串 4 %, 删除右边最后一个匹配串,保留左边字符串
  4. :0:N, 保留左边第一个字符起的N个字符
  5. :X 保留左边第X个字符起的N个字符
  6. :0-X:N, 保留右边第X个字符起的N个字符
  7. :0-X, 保留左边第一个字符起的N个字符
  8. /a/b 用b替换第一个出现的a
  9. //a/b 用b替换所有出现的a
  10. /#a/b 用b替换前缀a
  11. /%a/b 用b替换后缀a
var="http://www.owent.net"
echo ${var#*/}      # 删除var左边第一个*/后的内容      (/www.owent/net)
echo ${var##*/}     # 删除var左边最后一个*/后的内容     (www.woent.net)
echo ${var%/*}      # 删除var右边第一个/*后的内容      (http:/)
echo ${var%%/*}     # 删除var右边最后一个/*后的内容     (http:)
echo ${var:0:5}     # 保留var左边第一个字符起的5个字符    (http:)
echo ${var:7}       # 截取var第7到结尾的字符串        (www.owent.net)
echo ${var:0-5:3}   # 保留var右边第5个字符起的3个字符    (t.n)
echo ${var:0-5}     # 截取var最后5个字符           (t.net)
echo ${var/www/api} # 把第一个www替换为api             (http://api.owent.net)
echo ${var//e/f}        # 把所有www替换为api          (http://www.owfnt.nft)
echo ${var/#http/https} # 把http前缀替换为https       (https://www.owent.net)
echo ${var/%net/com}    # 把net后缀替换为com          (http://www.owent.com)

系统信息(IP等):

MAC地址: /sbin/ifconfig eth1 2> /dev/null | grep 'HWaddr' | awk '{print $5}'
IP地址:/sbin/ifconfig eth1 2> /dev/null | grep 'inet addr' | awk '{print $2}' | cut -d: -f2
子网掩码:/sbin/ifconfig eth1 2> /dev/null | grep 'Mask' | cut -d: -f4
/tmp/resolv.conf.auto 2> /dev/null | grep 'nameserver' | awk '{print $2}'#
系统运行时间:/bin/cat /proc/uptime 2> /dev/null | awk -F. '{run_days=$1 / 86400;run_hour=($1 % 86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf("%d天%d时%d分%d秒",run_days,run_hour,run_minute,run_second)}'
共发出数据包:/sbin/ifconfig eth0 2> /dev/null | grep 'TX packets' | awk '{print $2}'|cut -d: -f2
共接受数据包:/sbin/ifconfig eth0 2> /dev/null | grep 'RX packets' | awk '{print $2}'|cut -d: -f2

使Linux脚本或者命令输出的结果不换行(在网页中应用较多)
echo -e "`ifconfig eth0 2> /dev/null | grep 'inet addr' | awk '{print $2}' | cut -d: -f2`\c"

用硬件检测程序kuduz探测新硬件:service kudzu start ( or restart)
dmesg (查看所有启动时检测到的硬件信息)
lspci (显示外设信息, 如usb,网卡等信息)
cat /etc/sysconfig/hwconf
mpstat
查看PCI设备:lspci
查看USB设备:lsusb -v
查看网卡状态:sudo ethtool eth0
查看CPU信息:cat /proc/cpuinfo 或 lscpu
显示当前硬件信息:sudo lshw
全面的显示bios、cpu、内存等硬件信息:dmidecode

特殊文件:

网络名称: /etc/sysconfig/network 网卡: /etc/sysconfig/network-scripts/* 网卡信息缓存: /etc/udev/rules.d/70-persistent-net.rules

KVM和网络配置:

virsh:虚拟机管理 virt-install:虚拟机安装

建议还是搞个GUI工具,然后可以连接上只有命令行的宿主机管理,会方便的多。比如虚拟机里搞个GUI版本的Linux,远程连接到宿主机上。

CentOS的网络管理是NetworkManager和原来的network.service并存,并且NetworkManager先启动。

brctl:网桥管理nmcli:NetworkManager的命令行工具 nmtui:NetworkManager的TUI工具(和GUI比较像了)

Linux的KVM虚拟机默认是NAT网络,如果需要使用网桥可以先用brctl或者nmcli或者nmtui把virbr0网桥删了

然后再用nmcli或者nmtui添加网桥,最后把原来的网络连接桥接上来即可。

其他的网络防火墙方面的记在《关于firewalld和systemd的一些命令速记》

Bash:

umask: 默认创建文件的权限(取反) export: 申明为环境变量

/etc/hosts: hosts文件 /etc/profile : 登入后执行脚本 ~/.bash_login : 同上,限定用户 ~/.bash_profile : 同上 ~/.profile : 同上 ~用户名 : 用户Home目录

~/.bash_history: 命令历史记录

Vim:

命令行模式 / 向下搜索 ? 向上搜索

v 进入可视化模式   V 可视化模式中进入行 i 光标处插入 I 行首插入 o 换行插入 O 前行插入 a 光标后插入 A 行尾插入 s 替换 S 替换行 w 下一个单词头 e 下一个单词尾 b 前一个单词 d 剪切 D 剪切到行尾 dd 剪切行 dw剪切单词 yy 复制一行 p 粘贴 c 删除并转到编辑模式  C 删到行尾并转为编辑模式 x 向后删除 X 向前删除 n 下一个搜索项 N 上一个搜索项 u 取消修改 U 取消当前行的修改

文本替换:

搜索规则

:n,$s/从第n行到结尾,类似正则表达式

:%s/ 全文搜索

搜索规则

:n,$s/从第n行到结尾,类似正则表达式

:%s/ 全文搜索

��则表达式 :%s/ 全文搜索

替换规则

/g 全行替换

如: :s/src/dst/  文本替换(当前行第一个src替换为dst) :s/src/dst/g 文本替换(当前行所有src替换为dst) :%s/src/dst/g 文本替换(所有行第一个src替换为dst) :%s/src/dst/g 文本替换(所有行所有src替换为dst)

分屏

:He 上分屏浏览 :He! 下分屏浏览 :Ve 左分屏浏览 :Ve! 右分屏浏览 Ctrl+w 分屏切换 :set scb 分屏同步移动 :set scb! 解除分屏同步移动 :E 目录导航 :split/vsplit 分屏/垂直分屏打开 ctrl-w 上/下/左/右 切换到上/下/左/右窗口 ctrl-w ctrl-w 切换到下一个窗口 ctrl-w_  最大化当前窗口 ctrl-w= 所有窗口设为相同大小 :hide 隐藏当前窗口 :­nly 关闭当前窗口外的所有窗口 :b N 打开窗口N

关键字导航

Ctrl+N 向下查找关键字关键字[插入模式下], Ctrl+P 向上查找关键字[插入模式下] Ctrl + X 和 Ctrl + D 宏定义补齐 Ctrl + X 和 Ctrl + ] 是 Tag 补齐 Ctrl + X 和 Ctrl + F 是文件名补齐 Ctrl + X 和 Ctrl + I 也是关键词补齐,但是关键后会有个文件名,告诉你这个关键词在哪个文件中 Ctrl + X 和 Ctrl +V 是表达式补齐 Ctrl + X 和 Ctrl +L 对整行补齐。

字符相关

【guu 】 – 把一行的文字变成全小写。或是【Vu】 【gUU】 – 把一行的文件变成全大写。或是【VU】 按【v】键进入选择模式,然后移动光标选择你要的文本,按【u】转小写,按【U】转大写 【ga】 –  查看光标处字符的 ascii 码 【g8】 – 查看光标处字符的 utf-8 编码 【gf】  - 打开光标处所指的文件 (这个命令在打到#include 头文件时挺好用的,当然,仅限于有路径的) 【*】或【#】在当前文件中搜索当前光标的单词

缩进相关

【>>】向右给它进当前行 【<<】向左缩进当前行 【=】  - 缩进当前行 (和上面不一样的是,它会对齐缩进) 【=%】 – 把光标位置移到语句块的括号上,然后按=%,缩进整个语句块(%是括号匹配) 【G=gg】 或是 【gg=G】  - 缩进整个文件(G是到文件结尾,gg 是到文件开头) :set autoindent/noautoindent 自动缩进 :set smartindent/nosmartindent 智能缩进 :set tabstop=4 制表符长度为4 :set shiftwidth=4 缩进符为长度为4的空格 ctrl-t, ctrl-d 插入模式的缩进和取消缩进 >> 缩进 << 取消缩进

文件系统

:e . 打开文件目录 :Sex 分割窗口并开启文件目录 :ls List buffers :cd .. :args 查看文件列表 :args * 批量打开文件 :grep gf 打开光标指向的文件

Windows PowerShell:

MS的审美真实与众不同啊,我使用Windows PowerShell干的第一件事就是开管理员模式进然后该背景颜色 然后,设置允许执行脚本文件

Set-ExecutionPolicy Unrestricted
Set-ExecutionPolicy RemoteSigned

然后安装Cygwin或MinGW的MSYS,还是用POSIX命令集吧

编译器命令:

gcc -dM -E - < /dev/null # GCC查看 预定义宏
cpp -dM  < /dev/null # GCC查看 预定义宏
cc -v fred.c # HP-UX ansi C compiler 查看 预定义宏
cc -## fred.c  # SCO OpenServer C compiler 和 Sun Studio C/C++ compiler 查看 预定义宏
cc -qshowmacros -E fred.c # IBM AIX XL C/C++ compiler 查看 预定义宏
clang -dM -E - < /dev/null # Clang 查看 预定义宏
# VC 查看 预定义宏,查文档吧 http://msdn.microsoft.com/en-us/library/b0084kay(v=vs.110).aspx

Linux查看系统信息命令

工具查询地址: http://bhami.com/rosetta.html

最后记录一下我常用的软件包:

Posix环境:

tar zip unzip gzip lzip zlib binutils gcc gdb cmake subversion git make colorgcc colordiff diffutils automake texinfo curl wget ncurses libncurses bison rsync uuid-devel valgrind telnet cppcheck openssl-devel

开发工具&库:

openssl-devel readline-devel ncurses-devel libunwind-devel python php-cli java-1.8.0-openjdk

Linux专用:

yum-remove-with-leaves yum-download bleachbit yum-plugin-fastestmirror dstat sar ipcalc iotop htop atop iptraf rtorrent aria2 p7zip

Linux - LLVM - Clang 套件:

llvm clang dragonegg lldb

Linux桌面:

cinnamon gnome-tweak-tool numix-gtk-theme imsettings-cinnamon  : 用于切换系统输入法

小工具:

figlet

编辑工具:

pandoc ctex/miktex

图像处理:

gimg darktable GraphicsMagick

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小特工作室

Navi.Soft31.开发工具(含下载地址)

1系统简介 1.1功能简述 在软件开发过程中,我们需要经常对字符串、文件、数据库操作。有时需要浏览Json格式串,有时需要浏览Xml格式串,有时需要读取txt或...

25190
来自专栏SeanCheney的专栏

ViEmu的vi-vim编辑器教程

http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html

40080
来自专栏前端布道

全方位理解JavaScript的Event Loop

下面我们一个一个的来了解 Event Loop 相关的知识点,最后再一步一步分析出本段代码最后的输出顺序。

11330
来自专栏深度学习之tensorflow实战篇

Python3 pandas read_csv 读取txt文件报错:IOError: Initializing from file failed

错误代码: data=pd.read_csv(‘C:\Users\lenovo\Desktop\停用词文件\后缀词处理260\handle_data_01....

63560
来自专栏Seebug漏洞平台

34c3 部分Web Writeup

34c3应该算是2017年年末的最后一个惊喜了,比赛题目虽然有非预期导致难度降了很多,但是从CTF中能学到什么才是最重要的,其中Web有3个XSS题目,思路非常...

467100
来自专栏阮一峰的网络日志

JavaScript与有限状态机

有限状态机(Finite-state machine)是一个非常有用的模型,可以模拟世界上大部分事物。 ? 简单说,它有三个特征:   * 状态总数(stat...

38270
来自专栏测试驿栈

Jmeter(三十一)_dummy sampler模拟数据驱动

之前写过一篇数据驱动的文章 数据驱动测试 ,但是内容过于简单,有些关键的地方没有写明白。这两天参照了一下官方文档,重新整理了一篇数据驱动测试!

40130
来自专栏前端知识分享

深入理解Vue的生命周期

  谈到Vue的生命周期,相信许多人并不陌生。但大部分人和我一样,只是听过而已,具体用在哪,怎么用,却不知道。我在学习vue一个多礼拜后,感觉现在还停留在初级阶...

15330
来自专栏大前端_Web

javascript运行机制:并发模型 与Event Loop

版权声明:本文为吴孔云博客原创文章,转载请注明出处并带上链接,谢谢。 https://blog.csdn.net/wkyseo/articl...

26910
来自专栏用户2442861的专栏

webStorm 3.0配置使用主题背景色等

http://www.cnblogs.com/jikey/archive/2012/01/16/2323590.html

29210

扫码关注云+社区

领取腾讯云代金券