admin管理员组

文章数量:1531723

catalog

  • WIndows与Unix基本命令
  • Bat文件
    • 规范
    • 注释
  • Windows-CMD
    • 介绍
    • 管道`|`, 重定向`> <`
    • 相对位置
    • fc
    • 创建文件
    • 删除文件/文件夹
    • 创建文件夹
    • 输出文件内容
    • 中文乱码 CHCP
  • vim
    • 缩进
    • 查找
    • 显示行号
    • 删除
    • 视图跳转
    • 复制
    • Deprecated
  • tmux
    • 复制粘贴
    • tmux
    • ctrl d
    • ctrl a, d
    • tmux a
    • tmux a, s
    • tmux a, shift 5
    • tmux a, shift "
    • tmux a, z
    • Deprecated
  • Sh脚本文件
    • 创建一个sh文件
    • 命名行参数
  • linux命令
    • 查看文件信息
    • sh文件示例
    • `expr`四则运算
    • 注释
    • 声明字符串常量
      • 访问
      • 长度
    • `$()` 将(标准输出)重定向到(常量)
    • 字符串切割
    • linux命令 与 shell命令
    • echo 标准输出
    • sort排序
    • 输出文件内容
    • 写入并覆盖文件
    • 读出文件并写入另一个文件
    • (命令行参数) 和 (标准输入), 管道
    • `> 和 >>` 将(标准输出)重定向到(文件)
    • `<` 将(文件) 流入 (标准输入)
    • `xargs` 将(标准输入)重定向到(命名行参数)
    • 管道`|` 将 (标准输出) 重定向 (标准输入)
    • 查找文件/目录
    • 查找文件内容
    • 历史命令
    • 下载工具
    • sh文件
    • 选中、复制、粘贴
    • source引入头文件
    • 重定向
    • 函数
    • for/while循环/continue
    • #! /bin/bash
    • chmod
    • 条件if
    • expr
      • length
      • 四则运算
      • 比较
    • 字符串、变量
      • 只读变量
      • 全局变量
    • 打印
    • 取字符串/数组 的长度
    • 脚本参数
    • 进程id
    • 获取(命令)返回值
    • 数组
  • linux文件系统
  • 命令
    • 进程
    • ctrl + c/d
    • seq
    • read/echo
    • data
    • bash
    • touch
    • ls
    • cp
    • mkdir
    • mv
    • cat
    • rm
    • history
    • tmux
    • vim
  • Linux命令
    • rm
    • file
    • arch
    • 管道
    • 环境变量
      • 修改环境变量
      • PATH环境变量
    • LD_LIBRARY_PATH
    • C_INCLUDE_PATH, CPLUS_INCLUDE_PATH
    • PYTHONPATH
    • JAVA_HOME, CLASSPATH
  • 常用命令
    • top
    • df
    • free
    • du
    • ps
    • kill
    • netstat
    • w
    • ping
    • ls
    • chmod
    • find
    • grep
    • ag
    • wc
    • tree
    • xargs
    • more
    • head, tail
    • history
    • md5sum
    • tar
    • sudo
    • apt-get
    • pip

WIndows与Unix基本命令

分类 Windows 系统 Unix 系统
文件列表 dir ls
切换目录 cd cd
建立目录 md mkdir
删除目录 rd rmdir
比较文件 fc diff
复制文件 copy cp
移动文件 move mv
文件改名 ren mv
删除文件 del rm

Bat文件

规范

开头写成: @echo off, 就像sh文件的开头#! /bin/bash

echo off是: 下面的命令, 不展示在命令行中;
@在一个命令前: 该命令不展示在命令行

注释

:: hhh

Windows-CMD

介绍

Windows 自带的命令行界面有两个。

  • “命令提示符”(cmd)是其中较为古老的一个,功能也相对简单。
  • PowerShell 是较新的一个命令行界面,自带的功能丰富,但相对臃肿。

两个界面都可以在开始菜单中找到。

管道|, 重定向> <

详见 下面的Linux, 一样的

相对位置

Windows下, 与 Linux, 在处理绝对位置时, 是非常非常不同的!!!

Linux下, 需要是: ./a.exe

而在Windows下, 必须是: a.exe, 不可以加./


因此: 在Linux下是: system( "./go.exe"), 而在Windows下必须是: system( "go.exe")

fc

fc a.out b.out 比较两个文件的差异

创建文件

echo > a.txt

删除文件/文件夹

del a.txt
del dir

创建文件夹

mkdir dir

输出文件内容

type a.txt

中文乱码 CHCP

数据,存在计算机上的二进制,是已经确定了!!!
(毕竟,一个exe已经生成了)

关键是,如何去解析 这些(二进制)!!! 以什么编码方式,去解析。

CHCP  // 获取当前代码页

CHCP 65001		' utf-8 '
CHCP 936		' gb2312 '

vim

缩进

v选中一些行后, ( 按shift + >是向右缩进) ( 按shift + <是向左缩进)

查找

/abc 查看所有的含abc的位置

显示行号

:set nu 显示行号

:set nonu 不显示行号

删除

ggdG 删除

视图跳转

x G: 视图回到 (第x行)

G: 视图到 (最后一行)

x 回车: 视图往下移动 (x行)

page uppage down: 视图移动

复制

选中: v

复制: 按v进入选中模式, 然后选中后, 按y

粘贴: p粘贴

剪切一行: dd剪切一行


复制代码
:set paste进入复制模式, 复制完后: : set nopaste

Deprecated

`ggdG` 剪切所有内容

gg=G    ' 格式化代码 '

u      ' 撤销 '

v      ' 然后, 按方向键, 进行文本的选中 '

y	' 复制 所选中的内容.   y是yank复制    (无法复制出来, 即仅限于vim里)'
yy  ' 复制一行 '

p   ' 粘贴   paste '

:set paste   ' 当你要shift+insert, 往vim里 粘贴进一些文本时, 要设置这个模式; 否则你的文本, 和他原来的格式 不一样 '

:set nopaste  ' 绝大多数下, 都是使用这个模式 (默认vim也是这个模式); 只有当你要粘贴时, 设置paste, 粘贴完毕, 就设置回去nopaste '

/abc '查找 找所有`abc`字符串(按“回车”后,按`n` 可以进行迭代) '

解释paste模式

	int x;
	a
b

当你在;的后面, 按下回车时, 你肯定是希望光标在a 处 这就是nopaste模式, 即他会自动给你缩进

但是, 当你要粘贴文本时, 你肯定不希望, 在你文本中的 每个’\n’后面, 都新加一个tab缩进. 即让文本按照本来的样子来粘贴, 这就是paste模式

tmux

复制粘贴

ctrl a, [ 进入(复制模式), (然后你点击左键, 按住, 一旦松开, 就表示复制了)

ctrl a, ] 粘贴

(只在tmux里有效), 在外界不可以; (在外界, 使用ctrl+v也不行, 即, 他和本机电脑的粘贴板无关, 但ctrl insert会进入电脑粘贴板)

tmux

如果是在(非tmux)模式下, 则开始一个新的tmux

ctrl d

如果是在(tmux)模式下, 则 (退出) 并 (删除) 该tmux

ctrl a, d

如果是在(tmux)模式下, 则 (退出) 并 (挂起) 该tmux

tmux a

如果是在(非tmux)模式下, 则 进入 (被挂起了的) tmux

tmux a, s

如果是在(tmux)模式下, 则 展示所有的tmux目录

tmux a, shift 5

如果是在(tmux)模式下, 则 在(右侧) 产生一个 新的分屏tmux

tmux a, shift "

如果是在(tmux)模式下, 则 在(下侧) 产生一个 新的分屏tmux

tmux a, z

如果是在(tmux)模式下, 将当前的分屏tmux, 全屏展示 或 取消全屏展示

Deprecated

tmux  ' 打开一个新的tmux '
tmux a   ' 打开之前挂起的tmux (即恢复你之前的那些分屏状态) '

ctrl + a, shift + 5   ' 左右分屏 '
ctrl + a, shift + "   ' 上下分屏 (注意, 是引号键)'

ctrl + a, 方向键   ' 切换视图 '

ctrl + d   ' 删除tmux, 退出; '
ctrl + a, d  ' 挂起tmux, 退出;   [ctrl+d, a]是保存tmux 退出, 然后[tmux a]是恢复之前的tmux状态 '
'比如你当前有很多的分屏, 你想要保存下来, 明天继续 '

ctrl + a, s   ' 查看所有挂起的tmux  (即被ctrl+d的) '
然后, 选中某个, 按x y  ' 删除某个tmux;     按下x, 下面命令行会提示 是否删除'

ctrl + a, z   ' 全屏/取消全屏 '

直接鼠标左击选中(复制)
ctrl + a, ]    ' 粘贴,  但只能在tmux里粘贴 '

按住shift选中, ctrl+insert ' 也会选中其他tmux, 最好提前给ctrl+a,z 全屏'
shift + insert  ' 粘贴 '


Sh脚本文件

以下的内容, 不仅适用于Sh文件, 也可以直接在shell里直接录入
其实是一样的, 因为sh文件里的内容, 就是在shell里执行的

创建一个sh文件

  • 第一步
    在文件里开头输入: #! /bin/bash
    一个sh文件, 必须开头写上这句话; 注释, 也不可以写在第一行
    否则, 你执行./xx.sh时, 没有 (自动补全)的功能
  • 第二步
    对该文件chmod +x xx.sh 给予(执行权限), 否则./xx.sh执行不了

命名行参数

当执行脚本时: ./xx.sh aa bb cc

在sh文件里面, 通过${1}就得到第一个命名行参数 aa;
${0}是: ./xx.sh, 即对应的下标为: 0 1 2 3

即, 可以看做是: 有名称为0 1 2 3 ...的 常量

通过$#, 可以得到 (最大的下标值), 即上面的3

linux命令

查看文件信息

ldd main.exe 查看这个程序, 链接了哪些DLL

        ntdll.dll => /c/WINDOWS/SYSTEM32/ntdll.dll (0x7ff9462f0000)
        KERNEL32.DLL => /c/WINDOWS/System32/KERNEL32.DLL (0x7ff944490000)
        KERNELBASE.dll => /c/WINDOWS/System32/KERNELBASE.dll (0x7ff944050000)
        msvcrt.dll => /c/WINDOWS/System32/msvcrt.dll (0x7ff944850000)
        libstdc++-6.dll => /mingw64/bin/libstdc++-6.dll (0x62860000)
        libgcc_s_seh-1.dll => /mingw64/bin/libgcc_s_seh-1.dll (0x63240000)
        libwinpthread-1.dll => /mingw64/bin/libwinpthread-1.dll (0x64940000)


nm main.exe 查看(符号表所有的全局变量/函数) (由于符号太多, 一般是: nm main.exe | grep xx)
(符号表, 是在exe里的!!! 而符号表很大的, 一般上线的程序, 会将这个符号表 从exe里删除掉)
(比如, exe的大小是54Kb; 删除(符号表)后, exe的大小是: 16Kb)
strip main.exe删除掉(符号表) 此时, exe的大小 就变小了; 再使用(nm main.exe)就没有符号表了

file main.exe 查看(文件信息)


size main.exe 查看程序的各个段

   text    data     bss     dec     hex    filename
   9916    2348    2432   14696    3968    main.exe

sh文件示例

len=$(expr ${
    #1} - 4)	#4为文件的后缀 ".cpp"
name=${1:0:len}

比如, 你输入的是: a.sh abc.cpp
那么, len == 3, name == abc

expr四则运算

shell不支持直接, 需要借助expr

expr 5 - 3, 等价于: expr "5" - "3"
将结果直接输出到 (标准输出)

var=$(expr 5 - 3) 存到常量里

注释

# hhh

声明字符串常量

data=123

注意, =前后不能有空格


a=123a="123" 是完全一样的!!!

没有(数

本文标签: 命令文件管道cmdWindows