本文内容源自互联网,多为脚本之家和众博客主的共享记录
博主为备份使用,欢迎分享此文,通过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 不过有点催眠,时长过长