命令行实践指南

本文内容源自互联网,多为脚本之家和众博客主的共享记录

博主为备份使用,欢迎分享此文,通过Ctrl+F查找指令。

浏览方式瀑布流,参考复制了liunx在线教程,众gitbook文档和技术类文档

本文使用方法,实践即可 打开对应系统的命令行然后输入命令行指令。

CMD-微软系统命令行

C:\AUTOEXEC.BAT 是每次系统启动时都会自动运行的, 可以将每次启动时都要运行的命令放入该文件中。

开机自动运行也可以把bat批处理放到到启动文件夹

保持cmd运行打开管理员运行 兼容性选项中勾选使用管理员身份运行

cmd快捷键

F1:粘贴最后执行的命令(逐个字符) F2:粘贴最后执行的命令(直到输入的字符) F3:粘贴上次执行的命令 F4:删除当前提示文本直到输入的字符 F5:粘贴最近执行的命令(不循环) F6:粘贴 ^Z 到提示 F7:显示以前执行的命令的可选列表 F8:粘贴最近执行的命令(循环) F9:询问 F7 列表中要粘贴的命令编号

title

“名字” cmd GUL标题自定义

比如 ‘title ktd’ 界面标题为ktd

net start

查看开启了哪些服务

color 2

设置cmd为绿色 右键cmd界面框设置的属性里可以设置颜色还有透明度

color

颜色值 设置cmd控制台前景和背景颜色;0=黑、1=蓝、2=绿、3=浅绿、4=红、5=紫、 6=黄、7=白、8=灰、9=淡蓝、A=淡绿、B=淡浅绿、C=淡红、D=淡紫、E=淡黄、F=亮白

timeout /t 5

等待5s

ver

显示windows系统版本

winver

弹出一个窗口显示版本信息(内存大小、系统版本、补丁版本、计算机名)

BREAK

取消当前的运行,快捷键 Ctrl + C

taskmgr

调出任务管理器

mkdir

创建目录

echo

打印参数,可以作为写注释,可当做暂停

set /p tmp=留言

比如: set /p tmp=操作结束,请按回车键退出…

cls

清空界面代码,初始化

TIME

显示系统时间

PAUSE

暂停当前程序的运行

cacls

文件名 查看文件的访问用户权限列表

set

检查所有的环境变量

set USER //

显示系统用户名相关的变量

sysdm.cpl

打开系统属性

SystemPropertiesAdvanced.exe

打开环境变量

where

显示变量文件具体路径 比如where python 就能显示python路径名称

set

介绍一下命令行配置环境变量 进入目标文件夹。复制文件路径地址,path添加文件夹 输入 “set 变量名=变量内容”即可。 比如将path设置为“d:\nmake.exe”, 只要输入set path=”d:\nmake.exe”。 set 和 setx 都可以用来设置环境变量,但是它们也有所不同: set :在当前终端立即生效,但只在当前终端中生效(临时有效) setx:在当前终端不会生效,但在新打开的终端都会生效(永久有效) setx慎用,因为是永久生效

::

刷新

explorer

打开目标系统文件

批处理中调用外部程序的命令

explorer D:
start D:\

start /max

start /max http://127.0.0.1
cmd打开特定网站

start

start (此处可指定浏览器)http://www.google.com 打开指定网站

explorer shell:startup

例如打开环境变量界面

ipconfig /all

查看ip配置

netstat -ano|findstr

查看特定端口号

netstat -ano|findstr 8080

查看8080端口号

端口知识也是比较基础的, 总之一般保存原有端口号就可以默认的80,8080端口 端口占用的情况,也就是说,这个软件就是需要这个默认端口作为本地地址 要是刚好换一个动态端口可以说是这就成了多余的动作

netstat

持续监视运行的tcp端口

net share

查看共享

netstat -an

直接列出当前tcp端口

taskkill /f /t /im

taskkill /f /t /im “程序.exe”终止某程序

dir

列出当前文件目录

dir /b

查看当前路径下所有文件和文件夹

dir /b /s

可以查看当前路径下的所有文件和文件夹以及子目录下的文件。 (在c盘主目录使用很壮观哦,相当于,命令行列出c盘所有文件名)

tree

文件生命树型结构显示出目录。

操作-写入文件

cmd创建一个文件并写入指定内容打开 将c盘文件列表写入 a.txt 中:

  • md a.txt
  • cd a.txt
  • dir c:. > a.txt
  • explorer a.txt

    command1 & command2:

    依次执行 command1、command2。

    command1 && command2:

    执行 command1,当 command1 执行成功时,执行 command2

    command1 || command2:

    执行 command1,当 command1 执行失败时,执行 command2。 && 和 || 实际上就是 与、或 逻辑运算。

net config

查看系统网络

netstat

netstat -a 查看开启了哪些端口,常用netstat -an netstat -n 查看端口的网络连接情况,常用netstat -an netstat -v 查看正在进行的工作 netstat -p 协议名 例:netstat -p tcq/ip 查看某协议使用情况(查看tcp/ip协议使用情况) netstat -s 查看正在使用的所有协议使用情况

计算机运行命令全集

winver———检查Windows版本 winver———检查Windows版本 Msconfig.exe—系统配置实用程序 devmgmt.msc— 设备管理器 notepad——–打开记事本 secpol.msc—–本地安全策略 services.msc—本地服务设置 sfc /scannow—windows文件保护 taskmgr——–任务管理器 cmd.exe——–CMD命令提示符 Nslookup——-IP地址侦测器

Liunx命令行

建议下载wsl,

这样就能在微软系统学习liunx命令行

不建议新人尝试安装双系统,

引导部分必定会出错,

所以虚拟机运行linux镜像是最佳选择。

这里我实测使用wsl,

其实是足够满足liunx命令行体验的

bash进入wsl的linux命令行环境

以下操作在bash界面运行

uname -a

显示系统,详细

df -T

查看系统文件类型

ls -al /

显示根的目录列表,主目录

ctrl+z

退出当前命令运行状态

echo [文本]

打印一行文本

pwd

我在哪里,输出当前文件路径

cd

改变bash所在当前路径

ls

列出文件目录名称,

ls-l

更为详细

ls -a

同时显示隐藏文件

ls -F

同时显示辨识文件, 文件名后面带 / 就是主目录, 可执行文件 是 * 。

ls -R

同时显示当前文件及相关文件子目录

ls -laF

组合,实用指令

touch

新建一个文件

测试: 先输入, ls 查看当前文件目录 然后,输入 touch [“文件名称”] ,比如 touch myfile ls ,目录添加了一个新文件,新建文件 myfile 成功

dig

dig www.google.com 从域名查IP地址

sudo fsck /dev/sda

系统文件修复

cat

显示某文件内容,写入内容到文件 此命令较多样化

cat /etc/passwd

显示etc的密码文件内容

cat

cat [文件名] [文件名] 显示两个文件的内容 #### cat>[文件名] 也可以新建文件

cat>test

接下来操作,创建一个文件并写入内容 新建一个名为 test 的 文件 现在可以继续输入 文本内容, 输入 “ ok linux “ ctrl+D,即可保存, 然后 cat test , 输出 ok linux ,恭喜操作成功。

history

显示历史曾经输入过什么命令, 很实用的命令行, 日志可以直接复制下来, 作为未来自制的bash脚本参考

clear

现在命令行输出的命令内容已经有点多了 输入 clear ,清屏界面,也是非常实用了

cp

复制某文件 cp [文件复制源][想要拷贝的文件路径]

mv

重命名某文件 ,可以移动文件 mv [原文件名][新文件名]

mkdir

新建文件目录,和新建文件有区别 项目文件,先 mkdir goodfile(新文件名), 这就创建了一个主目录 mkdir -p goodfile/2/3 ,将创建子目录

re

re命令是用于删除文件和目录 据说有几个神秘指令可以让liunx系统删除自己 所以,一般要注意要删除的文件是否重要

测试: 删除之前的 test 文件吧 ,先 ls ,rm test ,ls,成功删除 test 文件

find

尝试按照属性搜索某文件

alias

为命令行指令创建一个新的别名

exit

退出bash命令行

echo”hello World”»peanuts.txt

打印输入文本至一个新建文件

测试: echo”hello World” 存储一些文本

,引导文本到一个文件 (此过程,如果没有文件也会直接创建一个新文件) peanuts.txt (就是目标文件)

env

输出bash环境变量

su

切换用户身份

cat /etc/passwd

显示用户线程

sudo cat /etc/shadow

储存用户认证

cat /etc/group

用户管理组文件

sudo useradd bob

切换用户

passwd

密码设置

cat /etc/apt/sources.list

查看包管理器添加的列表 即 Debian 系统源文件路径

ps

用于报告当前系统的进程状态

top

实时查看系统的整体运行情况

kill

杀死一个进程

ping

查看网络上的主机是否工作

netstat

显示网络连接、路由表和网络接口信息

nc(netcat)

建立 TCP 和 UDP 连接并监听

su

切换当前用户身份到其他用户身份

touch [file]

创建新的空文件

mkdir [dir]

创建目录 (这样明显)

chmod

变更文件或目录的权限

chown

变更某个文件或目录的所有者和所属组

nano / vim / emacs

字符终端的文本编辑器

进程管理

top

可以实时动态地查看系统的整体运行情况。

ps

用于报告当前系统的进程状态。可以搭配 kill 指令随时中断、删除不必要的程序。 查看某进程的状态:$ ps -aux | grep [file],其中返回内容最左边的数字为进程号(PID)。

比如让我们查看 top 看守护 ,有top 和 bash 可以看, $ ps -aux | grep top $ ps -aux | grep bash 就能看到进程号了

kill

用来删除执行中的程序或工作。 删除进程某 PID 指定的进程:$ kill [PID

ifconfig

查看或设置网络设置 ifconfig 运行时, 提示需要下载一个包, 那么就到了运用Linux包管理器的时候了 sudo apt install net-tools 结束后 ctrl+c 退出 再次输入ifconfig,成功运行ifconfig

nano / vim / emacs

字符终端的文本编辑器(呼唤某上古神器)

exit

退出 shell

Linux重要的文件目录介绍

/bin、/sbin:链接到 /usr/bin,存放 Linux 一些核心的二进制文件,其包含的命令可在 shell 上运行。

/boot:操作系统启动时要用到的程序。

/dev:包含了所有 Linux 系统中使用的外部设备。需要注意的是这里并不是存放外部设备的驱动程序,而是一个访问这些设备的端口。

/etc:存放系统管理时要用到的各种配置文件和子目录。

/etc/rc.d:存放 Linux 启动和关闭时要用到的脚本。

/home:普通用户的主目录。

/lib、/lib64:链接到 /usr/lib,存放系统及软件需要的动态链接共享库。

/mnt:这个目录让用户可以临时挂载其他的文件系统。

/proc:虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息。

/root:系统管理员的主目录。

/srv:存放一些服务启动之后需要提取的数据。

/sys:该目录下安装了一个文件系统 sysfs。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建时,对应的文件和目录也在内核对象子系统中被创建。

/tmp:公用的临时文件存放目录。

/usr:应用程序和文件几乎都在这个目录下。

/usr/src:内核源代码的存放目录。

/var:存放了很多服务的日志信息。

UID 和 GID

Linux 是一个支持多用户的操作系统,每个用户都有 User ID(UID) 和 Group ID(GID),

UID 是对一个用户的单一身份标识,而 GID 则对应多个 UID。知道某个用户的 UID 和 GID 是非常有用的,

一些程序可能就需要 UID/GID 来运行。可以使用 id 命令来查看:

$ id root

uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),19(log)

$ id firmy

uid=1000(firmy) gid=1000(firmy) groups=1000(firmy),3(sys),7(lp),10(wheel),90(network),91(video),93(optical),95(storage),96(scanner),98(power),56(bumblebee)

UID 为 0 的 root 用户类似于系统管理员,它具有系统的完全访问权。我自己新建的用户 firmy,其 UID 为 1000,是一个普通用户。GID 的关系存储在 /etc/group 文件中:

$ cat /etc/group

所有用户的信息(除了密码)都保存在 /etc/passwd 文件中,而为了安全起见,加密过的用户密码保存在 /etc/shadow 文件中,此文件只有 root 权限可以访问。

$ sudo cat /etc/shadow

root:$6$root$wvK.pRXFEH80GYkpiu1tEWYMOueo4tZtq7mYnldiyJBZDMe.mKwt.WIJnehb4bhZchL/93Oe1ok9UwxYf79yR1:17264:::::: firmy:$6$firmy$dhGT.WP91lnpG5/10GfGdj5L1fFVSoYlxwYHQn.llc5eKOvr7J8nqqGdVFKykMUSDNxix5Vh8zbXIapt0oPd8.:17264:0:99999:7:::

由于普通用户的权限比较低,这里使用 sudo 命令可以让普通用户以 root 用户的身份运行某一命令。使用 su 命令则可以切换到一个不同的用户:

$ whoami

firmy

$ su root

whoami

root whoami 用于打印当前有效的用户名称,shell 中普通用户以 $ 开头,root 用户以 # 开头。在输入密码后,我们已经从 firmy 用户转换到 root 用户了。

核心转储

当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存、寄存器状态、堆栈指针、内存管理信息等记录下来,保存在一个文件中,这种行为就叫做核心转储(Core Dump)。

开启核心转储

输入命令 ulimit -c,输出结果为 0,说明默认是关闭的。 输入命令 ulimit -c unlimited 即可在当前终端开启核心转储功能。

环境变量

环境变量字符串都是 name=value 这样的形式。

大多数 name 由大写字母加下划线组成,一般把 name 部分叫做环境变量名 , value 部分则是环境变量的值,而且 value 需要以 ‘\0’ 结尾。

环境变量定义了该进程的运行环境。

分类

按照生命周期划分

永久环境变量:修改相关配置文件,永久生效。

临时环境变量:使用 export 命令,在当前终端下生效,关闭终端后失效。

按照作用域划分

系统环境变量:对该系统中所有用户生效。

用户环境变量:对特定用户生效。

设置方法

在文件 /etc/profile 中添加变量,这种方法对所有用户永久生效。如:

Set our default path

PATH=”/usr/local/sbin:/usr/local/bin:/usr/bin”

export PATH

添加后执行命令 source /etc/profile 使其生效。

在文件 ~/.bash_profile 中添加变量,这种方法对当前用户永久生效。其余同上。

直接运行命令 export 定义变量,这种方法只对当前终端临时生效。

常用变量

使用命令 echo 打印变量:

$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl

$ echo $HOME /home/firmy

$ echo $LOGNAME firmy

$ echo $HOSTNAME firmy-pc

$ echo $SHELL /bin/bash

$ echo $LANG en_US.UTF-8

使用命令 env 可以打印出所有环境变量: $ env

COLORFGBG=15;0 COLORTERM=truecolor …

使用命令 set 可以打印出所有本地定义的 shell 变量: $ set ‘!’=0 ‘#’=0 …

使用命令 unset 可以清除变量: unset $变量名

procfs

procfs 文件系统是 Linux 内核提供的虚拟文件系统,为访问系统内核数据的操作提供接口。之所以说是虚拟文件系统,是因为它不占用存储空间,而只是占用了内存。用户可以通过 procfs 查看有关系统硬件及当前正在运行进程的信息,甚至可以通过修改其中的某些内容来改变内核的运行状态。

cat /proc/cpuinfo

记录 CPU 相关的信息

/proc/meminfo

系统中关于当前内存的利用状况等的信息:

扩张网站:

CTF简明指南 https://firmianay.gitbook.io/ctf-all-in-one/1_basic/1.3_linux_basic

liunx教程(在我入门liunx,也就是写此文的时候,freevode刚好出的视频) https://www.youtube.com/watch?v=sWbUDq4S6Y8 不过有点催眠,时长过长