Linux下获取当前的目录,需执行以下命令: $(cd `dirname $0`;pwd) 其中, dirname $0,取得当前执行的脚本文件的父目录 cd `dirname $0`,进入这个目录(...切换当前工作目录) pwd,显示当前工作目录(cd执行后的) 在使用的过程中需注意此事项: 命令中“`”不是英文的单引号,而是英文输入法下的“~”同一个按键下面的那个符号。
大家好,又见面了,我是你们的朋友全栈君。...Linux下配置bond0 1.使用network接管网络服务,停止使用NetworkManager,如若没有network服务,安装network-scripts安装包即可 2.做之前备份网卡配置文件...配置模板 前景要求:6个网口,两两配置bond0,连接名分别为servicebond、cloudbond、storagebond,三个平面的VLan ID分别为19,320,414 一、配置连接名 #...ifcfg-servicebond NAME=servicebond BONDING_MASTER=yes TYPE=Bond DEVICE=servicebond BONDING_OPTS="mode=0.../network-scripts/ifcfg-enp132s0f0 <<CCC BOOTPROTO=none DEVICE=enp132s0f0 ONBOOT=yes MASTER=servicebond
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。那么如何在Windows系统下安装Linux呢?...你可以选择安装Windows和Linux双系统,如果你只是体验一番,那么我建议你采用虚拟机的方式安装Linux,这也是本文要介绍的方法。...2)在VMware的基础上,通过ISO镜像文件,安装LINUX操作系统。 一. 安装VMware 首先,安装VMware,自然要双击VMware的安装包。经过一点运行之后,便出来这个界面。...(注意:安装过程,可能会让你输入密钥......根据你VMware的型号,百度吧) 这样,就安装完成了 二. 搭建Linux虚拟机 双击软件,打开界面, 开始创建虚拟机。...这里要再提醒一下: 如果你选的LINUX版本不同,安装步骤可能会有所不同,但都大同小异。按照步骤一步一步来,是肯定可以成功的。
. $ 在Linux Shell脚本中,$#用来表示传入的参数数量。例如: shell脚本test0 #!.../test0 The number of parametes is 0. $ ./test0 1 2 3 The number of parametes is 3. $ ..../test0 a bc The number of parametes is 2. 2. $@ 在Linux Shell脚本中,$#用来表示传入的参数列表。例如: shell脚本test1 #!...遍历$@ for var in $@ do echo "$var" done 3. 0,0,1 在Linux Shell脚本中,$0用来表示要执行的shell脚本名称。...$1,$2用来表示传入到脚本中对应位置的参数,例如: shell脚本test2 #!
Linux 下的init 0,1,2,3,4,5,6知识介绍 对于这个知识点,自己以前一直不了解,今天特意总结下,作为自己的一个学习记录 一. init是Linux系统操作中不可缺少的程序之一。...init 0,对应的系统会运行,/etc/rc.d/rc0.d里指定的程序。...内核状态下重点就做了一件事情,就是挂载根文件系统并试图找到用户态下的那个init程序。...具体kernel_execve函数如下(这里赞不分析,暂时让大家理性的感受一下第一次看linux内核代码的感受,这里主要面向第一次接触linux代码的小伙伴哦。)...,和windows里面的实际应用程序一样,一个程序就是一个进程,比如我们在windows任务管理器里面就可以看到如下图所示: 在我们linux系统里面的话,在init进程转换为用户状态下后,后面有一些我们比较熟悉的进程操作
ring3的Inline hook在之前已经实现过了,再看看ring0的Inline hook该如何实现。...kd> dd 80505450 + 74 * 4 kd> u 8057b182 我这里因为windbg的原因没有显示函数名称,到pchunter里面确认一下,地址确实是一样的 那么我们要实现Inline...获取进程的EPROCESS结构,在0x174偏移存放着进程名,我们通过打印进程名来查看一下哪些进程调用了NtOpenFile这个函数 char* p = "r0 InlineHook"; void FilterNtOpenFile...jmp_code[0] = 0xE9; *(ULONG*)&jmp_code[1] = jmpAddr; 这里就需要写入内存了,这里需要关闭页的只读保护,定义一个ShutPageProtect函数将...CR0寄存器的WP位置0 //关闭页只读保护 __asm { push eax; mov eax, cr0; and eax, ~0x10000;
一、什么是bonding Linux bonding 驱动提供了一个把多个网络接口设备捆绑为单个的网络接口设置来使用,用于网络负载均衡及网络冗余 二、bonding应用方向 1、网络负载均衡...如果在内网中,文件服务器为了管理和应用上的方便,大多是用同一个IP地址。对于一个百M的本地网络来说,文件服务器在多 个用户同时使用的情况下,网络压力是极大的,特别是SAMABA和NFS服务器。...如果在有限的资源的情况下,实现网络负载均衡,最好的办法就是 bonding 2、网络冗余 对于服务器来说,网络设备的稳定也是比较重要的,特别是网卡。在生产型的系统中,网卡的可靠性就更为重要了。...把多块网卡绑定到一个IP地址,当一块网卡发生物理性损坏的情况下,另一块网卡自动启用,并提供正常的服务,即:默认情况下只有一块网卡工作,其它网卡做备份 三、bonding实验环境及配置 1、实验环境...MAC地址 mode=6,表示load balancing (round-robin)为负载均衡方式,两块网卡都工作,但是该模式下无需配置交换机,因为做bonding的这两块网卡是使用不同的MAC地址
然而你知道吗,著名的Instagram服务器就是是用Python+Django搭建的,而且月活用户超过7亿。...要知道Python+Django是一个以速度慢著称的web框架,一定是python的某个优点深深的吸引了他们。...它有点反人类的缩进让人抓狂,但同时简洁的语法让你一目十行。更何况,它还有成吨的库,开箱即用,让Python成为百变金刚,并且可以在所有主流平台完美运行。可以说,没有最好的语言,只有最合适的语言。...最近的TIOBE编程语言排行,Python已经到了第四位,3.777%,紧紧跟在C++之后。说到最近Python的兴起,就不能不谈人工智能的兴起。...人工智能如今进入第三次高潮,得益于深度学习Deep Learning技术的出现。随着Theano、TensorFlow、Caffee等框架的出现,深度学习真正走入寻常百姓家,开启了AI的大规模的应用。
由于linux系统的稳定性,大部分的PHP服务器都被部署在linux上,而且像redis等扩展在linux能得到更好的支持,所以对于PHP程序员来说,使用linux的功底也相当重要,接下来总结一下我从一开始在...linux下安装配置linux的心得。...用过小巧的virtual box,在win7下安装要改theme主题文件,辛苦装好的环境因为未知原因(兼容问题排除后,猜测是BIOS设置的问题,可参考)打不开虚拟机而放弃后,终于选择了VM,VM下安装linux...说一下要注意的地方吧:虚拟机配置选择“桥接模式”,这样,虚拟机和主机就在同一个IP段下,可以很轻松地互相访问,VM下如图: ? 然后是我们经常要遇到的问题网络配置、和虚拟之间的交互、yum配置。...网络配置 vi /etc/sysconfig/network-scripts/ifcfg-eth0 按需求修改以下信息 DEVICE=eth0 //网卡序号 NAME="System eth0"//设备名
Linux内核&发行版Linux内核是Linux操作系统的核心部分,它负责管理计算机的硬件资源和提供系统调用接口。...用户可以根据自己的需求选择适合的Linux内核版本。Linux发行版本Linux发行版是基于Linux内核的操作系统,它包含了用户界面、系统工具和应用软件。...Fedora:由Red Hat公司支持的Linux发行版,注重最新的软件和技术。Arch Linux:一个滚动更新的Linux发行版,提供了简单而灵活的操作和软件包管理。...命令行基本操作在Linux系统中,命令行是进行系统操作和管理的主要方式。下面是一些常见的命令行基本操作:命令使用方法:在命令行中输入命令,按下Enter键执行该命令。...tab键自动补全:在命令行中输入命令的部分内容,按下Tab键可以自动补全命令。history命令:使用history命令可以查看之前执行的命令历史记录。
这个表就是一个把 Ring3 的 Win32 API 和 Ring0 的内核 API 联系起来。...这个参数是一个指针指向一个地址,这里表示的是与上面的内核函数相对应的参数个数,例如第一个为18,参数个数就为18/4 = 6 这里找一下OpenProcess在SSDT表的索引,首先bp OpenProcess...,系统会把他用32位数据表示,拆分成19:1:12的格式,如下: 分析一下0-11这低12位组成一个真正的索引号,第12位表示服务表号,13-31位没有使用。...简单介绍下CR0寄存器: 可以看到这里使用32位寄存器,而在CR0寄存器中,我们重点关注的是3个标志位: PE 是否启用保护模式,置1则启用。...WP WP为1时, 不能修改只读的内存页 , WP为0时, 可以修改只读的内存页。 所以在进行HOOK时,只要把CR0寄存器中的WP位置为0,就能对内存进行写入操作。
,例如第一个为18,参数个数就为18/4 = 6 [image-20220215114438649.png] 这里找一下OpenProcess在SSDT表的索引,首先bp OpenProcess [image...,系统会把他用32位数据表示,拆分成19:1:12的格式,如下: [image-20220215160737509.png] 分析一下0-11这低12位组成一个真正的索引号,第12位表示服务表号,13-...但是需要注意的是SSDT表所在的内存页属性是只读,没有写入的权限,所以需要把该地址设置为可写入,这样才能写入自己的函数,使用的是CR0寄存器关闭只读属性。...简单介绍下CR0寄存器: [image-20220215160834842.png] 可以看到这里使用32位寄存器,而在CR0寄存器中,我们重点关注的是3个标志位: PE 是否启用保护模式,置1则启用...WP WP为1时, 不能修改只读的内存页 , WP为0时, 可以修改只读的内存页。 所以在进行HOOK时,只要把CR0寄存器中的WP位置为0,就能对内存进行写入操作。
前言 Linux下有3个特殊的进程,idle进程(PID = 0), init进程(PID = 1)和kthreadd(PID = 2) idle进程由系统自动创建, 运行在内核态 idle进程其pid...rest_init创建init进程(PID =1)和kthread进程(PID=2) Linux在无进程概念的情况下将一直从初始化部分的代码执行到start_kernel,然后再到其最后一个函数调用rest_init...大致是在vmlinux的入口startup_32(head.S)中为pid号为0的原始进程设置了执行环境,然后原是进程开始执行start_kernel()完成Linux内核的初始化工作。...从rest_init开始,Linux开始产生进程,因为init_task是静态制造出来的,pid=0,它试图将从最早的汇编代码一直到start_kernel的执行都纳入到init_task进程上下文中。...树根是系统自动构造的(或者说是由内核黑客手动创建的),即在内核态下执行的0号进程,它是所有进程的远古先祖。
Linux 提供了丰富的命令以及帮助手册,当需要了解某个命令的作用及用法时,可以使用 man 查看一下其帮助手册,同时也可以使用 man man 查看 man 命令的使用方法。...当需要了解与编程相关的系统调用以及库函数的用法时,也可以通过 man 查看接口的帮助手册。此外,系统相关的配置文件的介绍也可以通过 man 来查看。...man 可以查询不同类型的帮助手册,当目标存在多个不同类型的帮助手册时,我们可以指定要查找的手册类型,也可以不指定,此时 man 会搜索所有类型的帮助手册,但是只会按照预定义的顺序展示第一个。...只有安装了设置了 setuid 位的 man 才会产生有用的效果 --no-subpages 出线成对的手册页名时,第二个手册页名作为单独的手册页名,而是不第一个手册页的子手册页。...usr/share/man/man1/man.1.gz ---- 参考文献 [1] man(1) manual [2] GNU troff (Groff) — a GNU project [3] Linux
在处理一些数据集的时候,我们经常会碰到数据集的文件名是按时间戳(time stamp),或者其他方式命名的文件,比如下图所示: ?...而我们在编写程序时,往往希望读入的这些数据集的文件名是一种更简洁的形式,比如按照索引(index)方式:1.png,2.png,3.png...,那么如何批量重命名一个文件夹下的文件名呢?...方法很简单,只需要在Terminal里面进入数据集所在的文件夹,输入以下命令即可: i=1; for x in *; do mv $x $i.png; let i=i+1; done 重命名后的数据集如下...,可以看到文件名已经变成了按数字索引编号,这样就不用担心程序难以适配不同数据集数据的问题了: ?
大家好,又见面了,我是你们的朋友全栈君。 1....Linux zip命令 压缩 zip -r filename.zip ./* // 将当前目录下的所有文件和文件夹全部压缩成 filename.zip文件 -r表示递归压缩子目录下所有文件...Linux tar命令 -c: 建立压缩档案 -x: 解压 -t: 查看内容 -j: 通过bzip2的支持进行压缩/解压,此时文件最好为*.tar.bz2 -z: 通过gzip的支持进行压缩/解压,此时文件最好为...Linux rar命令 要在Linux下处理.rar文件,需要安装RAR for Linux yum install rar 压缩 rar a filename * //将所有的文件压缩成一个rar...包,名为filename.rar 解压 unrar e filename.rar test // 将filename.rar中的所有文件解压到.
下面是我的配置信息: set shortmess=atI syntax enable syntax on set ai set nu set ruler set autoindent set nocompatible...set si set wrap set showmatch set smartindent set cin set hlsearch au BufReadPost * if line("'\"") > 0|...if line("'\"") <= line("$")|exe("norm '\"")|else|exe "norm $"|endif|endif "删除行末的空格 autocmd BufWritePre
安全内容 Access - 文件最后被访问的时间 Modify - 文件内容最后被修改的时间 Change - 文件属性或者内容最后被修改的时间 Birth - 文件创建时间(Linux 下不支持)...用户的可用剩余块数 Inodes: Total - 文件系统上的总节点数 Free - 文件系统上的剩余节点数 间接(跟进)软连接 默认情况下,stat 不会跟进软连接。.../run/systemd/resolve/stub-resolv.conf Size: 39 Blocks: 0 IO Block: 4096 symbolic...stat -t /etc /etc 12288 24 41ed 0 0 801 8126465 147 0 0 1573068933 1573068927 1573068927 0 4096 为了获取关于文件或者文件系统的完整格式指令列表...总结 stat命令打印了文件和文件系统的信息。 在 Linux 下,还有其他几个命令可以显示文件信息。ls就是最有用的一个,但是它只显示stat信息中的一部分。
一、简介 free命令是最经常使用的命令之一,用于查看内存使用情况。 free命令可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer。...输出简介 Mem 行(第二行)是内存的使用情况。...Swap 行(第三行)是交换空间的使用情况。 total 列显示系统总的可用物理内存和交换空间大小。 used 列显示已经被使用的物理内存和交换空间。...shared 列显示被共享使用的物理内存大小。 buff/cache 列显示被 buffer 和 cache 使用的物理内存大小。 available 列显示还可以被应用程序使用的物理内存大小。...请注意,这只是一个很理想的计算方式,实际中的数据往往有较大的误差 周期性查看怎么办? 使用 free -s 10 ,这里的 10 代表间隔10秒查看 ``
本文最先发布在: https://www.itcoder.tech/posts/modprobe-command-in-linux/ Linux kernel 是 Linux 操作系统的核心部分。...它管理着系统资源,并且它是你的计算机软硬件之间的桥梁。 Linux kernel 有一个模块化设计。一个 kernel 模块,通常被称为 驱动程序,是用来扩展内核功能的一段代码。...在这篇文章中,我们将会讲解如何使用modprobe来从 Linux 内核中 添加或者移除模块。modprobe是kmod的一部分,它是用来管理 Linux 内核模块的多个程序的封装二进制包。...,在新的一行指定模块,或者创建一个新的.conf文件。...三、总结 modprobe命令可以允许你添加或者移除 Linux 内核模块。
领取专属 10元无门槛券
手把手带您无忧上云