首页
关于
README
Search
1
如何配置终端现代化Neovim
647 阅读
2
mdk3工具使用
520 阅读
3
关于C语言
472 阅读
4
Windows11pro 下载体验
455 阅读
5
关于Docker容器--0×01
379 阅读
默认分类
网络技术
渗透测试
编程语言
C语言
Python
Linux
搞机技巧
Termux
golang
数学
Search
标签搜索
printf
mach
sin cos tan
Toanle
累计撰写
40
篇文章
累计收到
1
条评论
首页
栏目
默认分类
网络技术
渗透测试
编程语言
C语言
Python
Linux
搞机技巧
Termux
golang
数学
页面
关于
README
搜索到
40
篇与
Toanle
的结果
2023-01-06
Linux下关于lsof命令使用
lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的。1.命令格式 lsof [参数][文件] 2.命令功能 用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)。找回/恢复删除的文件。是十分方便的系统监视工具,因为 lsof 需要访问核心内存和各种文件,所以需要 root 用户执行。lsof打开的文件可以是:普通文件目录网络文件系统的文件字符或设备文件(函数)共享库管道,命名管道符号链接网络文件(例如:NFS file、网络socket,unix域名socket)还有其它类型的文件,等等 3.命令参数-a 列出打开文件存在的进程-c<进程名> 列出指定进程所打开的文件-g 列出GID号进程详情-d<文件号> 列出占用该文件号的进程+d<目录> 列出目录下被打开的文件+D<目录> 递归列出目录下被打开的文件-n<目录> 列出使用NFS的文件-i<条件> 列出符合条件的进程。(4、6、协议、:端口、 @ip )-p<进程号> 列出指定进程号所打开的文件-u 列出UID号进程详情-h 显示帮助信息-v 显示版本信息 **4.使用实例:** 命令:lsof lsof输出各列信息的意义如下: 实例1:列出某个用户打开的文件信息命令:lsof -u username说明: -u 选项,u其实是user的缩写实例2:通过某个进程号显示该进行打开的文件命令:lsof -p 1
2023年01月06日
83 阅读
0 评论
1 点赞
2022-05-14
如何配置终端现代化Neovim
Neovim起因 巴西程序员 Thiago de Arruda Padilha(aka tarruda)向 Vim开源编辑器项目递交了两大补丁,对Vim的架构进行了大幅调整,结果遭到了Vim作者Bram Moolenaar的拒绝,因为对于Vim这样一个成熟的项目进行如此大的改变风险太高。于是tarruda发起了Vim fork项目Neovim,集资1万美元打造出21世纪的编辑器,提供更好的脚本、插件支持,整合现代的图形界面,Neovim是一款完全开源的项目。 GITHUB地址 , 官网地址 。该项目在今天2022年5月14日,依然拥有高达53.5k星,3.9k的fork。由此可见Neovim深受广大程序猿的喜爱。Neovim的优势NeoVim 目前在 Mac 和 Linux 上运作的很好,而且从项目的Commit上来看,项目发起人(PM)是个非常有经验的人,管理有条不紊, 不过项目迭代也是相当快,几天一个版本。Ubuntu 有现成的PPA源方便及时更新。目前来说, NeoVim 已经实现 Vim 大部分功能,兼容Vim 90%+以上的配置。 小部分没有实现和兼容.1.NeoVim 和 Vim 的差异2.NeoVim 只有终端版本. 没有 GUI 版本,但是Vim 有 GUI版本 (Gvim).3.NeoVim 目前的剪贴板功能(寄存器) 和 原生Vim实现不一 .4.NeoVim 配置文件入口和 Vim 不同, 可以通过 : version 查看.5.NeoVim 目前对外部语言的支持并不友好,目前他只对python支持比较完善,要支持Lua和其他外围语言相当麻烦, Vim则支持比较全面6.NeoVim 添加了异步函数,当然, Vim 暂时没有,Vim 8.0 也会补上这个功能7.NeoVim 解决了 Vim 在终端(Terminal ,Xterm等)下 alt 按键映射不响应的 bug,当然,Vim也有插件的解决方案。使用方法1.安装在debian类 ubuntu操作系统下,我们可以通过apt命令方便安装:sudo apt install neovim如果你是WINDOWS操作系统下,我们可以通过官方提供的安装方式安装: 官方安装方法 安装完后我们可以通过nvim 命令验证是否安装成功!(windoes系统用户可能还需额外配置环境)2.如何使用//进入nvim nevim //按ESC键进入命令模式。 :help config3.关于配置文件使用The Nvim config file is named "init.vim", located at: Unix ~/.config/nvim/init.vim Windows ~/AppData/Local/nvim/init.vim
2022年05月14日
647 阅读
0 评论
0 点赞
2021-10-27
linux中Mysql8.0使用说明
apt install mysql-server-8.01. 但是MySQL8.0 安装完成后出现无法远程连接的现象,这是因为MySQL8.0只支持 localhost 访问,我们必须设置一下才可以远程访问。 2. 命令登入服务器mysql 3.执行下面语句添加权限 use mysql;select host, user, authentication_string, plugin from user;查看user表的root用户Host字段是localhost,说明root用户只能本地登录,现在把他改成远程登录update user set host='%' where user='root'; 4.刷新权限 所有操作后,应执行FLUSH PRIVILEGES;5.检查服务器端口用到的其他命令 netstat -an | grep 3306 查看3306端口 ps -ef | grep mysqld 查看mysqld进程 sudo service mysqld start 启动mysql服务 sudo service mysqld stop 停止mysql服务 sudo ufw enable 允许防火墙 sudo ufw disable 禁止防火墙配置文件如下 vim /etc/mysql/mysql.d/my.cnf*[client] port = 3306socket = /tmp/mysql.sock[mysqld]user = mysql --- 表示MySQL的管理用户port = 3306 --- 端口socket = /tmp/mysql.sock -- 启动的sock文件log-bin = /data/mysql-binbasedir = /usr/local/mysqldatadir = /data/pid-file = /data/mysql.piduser = mysqlbind-address = 0.0.0.0server-id = 1 #表示是本机的序号为1,一般来讲就是master的意思skip-name-resolve禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间。但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求skip-networkingback_log = 600MySQL能有的连接数量。当主要MySQL线程在一个很短时间内得到非常多的连接请求,这就起作用,然后主线程花些时间(尽管很短)检查连接并且启动一个新线程。back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。如果期望在一个短时间内有很多连接,你需要增加它。也就是说,如果MySQL的连接数据达到max_connections时,新来的请求将会被存在堆栈中,以等待某一连接释放资源,该堆栈的数量即back_log,如果等待连接的数量超过back_log,将不被授予连接资源。另外,这值(back_log)限于您的操作系统对到来的TCP/IP连接的侦听队列的大小。你的操作系统在这个队列大小上有它自己的限制(可以检查你的OS文档找出这个变量的最大值),试图设定back_log高于你的操作系统的限制将是无效的。max_connections = 1000MySQL的最大连接数,如果服务器的并发连接请求量比较大,建议调高此值,以增加并行连接数量,当然这建立在机器能支撑的情况下,因为如果连接数越多,介于MySQL会为每个连接提供连接缓冲区,就会开销越多的内存,所以要适当调整该值,不能盲目提高设值。可以过'conn%'通配符查看当前状态的连接数量,以定夺该值的大小。max_connect_errors = 6000对于同一主机,如果有超出该参数值个数的中断错误连接,则该主机将被禁止连接。如需对该主机进行解禁,执行:FLUSH HOST。open_files_limit = 65535MySQL打开的文件描述符限制,默认最小1024;当open_files_limit没有被配置的时候,比较max_connections*5和ulimit -n的值,哪个大用哪个,当open_file_limit被配置的时候,比较open_files_limit和max_connections*5的值,哪个大用哪个。table_open_cache = 128MySQL每打开一个表,都会读入一些数据到table_open_cache缓存中,当MySQL在这个缓存中找不到相应信息时,才会去磁盘上读取。默认值64假定系统有200个并发连接,则需将此参数设置为200*N(N为每个连接所需的文件描述符数目);当把table_open_cache设置为很大时,如果系统处理不了那么多文件描述符,那么就会出现客户端失效,连接不上max_allowed_packet = 4M接受的数据包大小;增加该变量的值十分安全,这是因为仅当需要时才会分配额外内存。例如,仅当你发出长查询或MySQLd必须返回大的结果行时MySQLd才会分配更多内存。该变量之所以取较小默认值是一种预防措施,以捕获客户端和服务器之间的错误信息包,并确保不会因偶然使用大的信息包而导致内存溢出。binlog_cache_size = 1M一个事务,在没有提交的时候,产生的日志,记录到Cache中;等到事务提交需要提交的时候,则把日志持久化到磁盘。默认binlog_cache_size大小32Kmax_heap_table_size = 8M定义了用户可以创建的内存表(memory table)的大小。这个值用来计算内存表的最大行数值。这个变量支持动态改变tmp_table_size = 16MMySQL的heap(堆积)表缓冲大小。所有联合在一个DML指令内完成,并且大多数联合甚至可以不用临时表即可以完成。大多数临时表是基于内存的(HEAP)表。具有大的记录长度的临时表 (所有列的长度的和)或包含BLOB列的表存储在硬盘上。如果某个内部heap(堆积)表大小超过tmp_table_size,MySQL可以根据需要自动将内存中的heap表改为基于硬盘的MyISAM表。还可以通过设置tmp_table_size选项来增加临时表的大小。也就是说,如果调高该值,MySQL同时将增加heap表的大小,可达到提高联接查询速度的效果read_buffer_size = 2MMySQL读入缓冲区大小。对表进行顺序扫描的请求将分配一个读入缓冲区,MySQL会为它分配一段内存缓冲区。read_buffer_size变量控制这一缓冲区的大小。如果对表的顺序扫描请求非常频繁,并且你认为频繁扫描进行得太慢,可以通过增加该变量值以及内存缓冲区大小提高其性能read_rnd_buffer_size = 8MMySQL的随机读缓冲区大小。当按任意顺序读取行时(例如,按照排序顺序),将分配一个随机读缓存区。进行排序查询时,MySQL会首先扫描一遍该缓冲,以避免磁盘搜索,提高查询速度,如果需要排序大量数据,可适当调高该值。但MySQL会为每个客户连接发放该缓冲空间,所以应尽量适当设置该值,以避免内存开销过大sort_buffer_size = 8MMySQL执行排序使用的缓冲大小。如果想要增加ORDER BY的速度,首先看是否可以让MySQL使用索引而不是额外的排序阶段。如果不能,可以尝试增加sort_buffer_size变量的大小join_buffer_size = 8M联合查询操作所能使用的缓冲区大小,和sort_buffer_size一样,该参数对应的分配内存也是每连接独享thread_cache_size = 8这个值(默认8)表示可以重新利用保存在缓存中线程的数量,当断开连接时如果缓存中还有空间,那么客户端的线程将被放到缓存中,如果线程重新被请求,那么请求将从缓存中读取,如果缓存中是空的或者是新的请求,那么这个线程将被重新创建,如果有很多新的线程,增加这个值可以改善系统性能.通过比较Connections和Threads_created状态的变量,可以看到这个变量的作用。(–>表示要调整的值)根据物理内存设置规则如下:1G —> 82G —> 163G —> 32大于3G —> 64query_cache_size = 8MMySQL的查询缓冲大小(从4.0.1开始,MySQL提供了查询缓冲机制)使用查询缓冲,MySQL将SELECT语句和查询结果存放在缓冲区中,今后对于同样的SELECT语句(区分大小写),将直接从缓冲区中读取结果。根据MySQL用户手册,使用查询缓冲最多可以达到238%的效率。通过检查状态值'Qcache_%',可以知道query_cache_size设置是否合理:如果Qcache_lowmem_prunes的值非常大,则表明经常出现缓冲不够的情况,如果Qcache_hits的值也非常大,则表明查询缓冲使用非常频繁,此时需要增加缓冲大小;如果Qcache_hits的值不大,则表明你的查询重复率很低,这种情况下使用查询缓冲反而会影响效率,那么可以考虑不用查询缓冲。此外,在SELECT语句中加入SQL_NO_CACHE可以明确表示不使用查询缓冲query_cache_limit = 2M指定单个查询能够使用的缓冲区大小,默认1Mkey_buffer_size = 4M指定用于索引的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重写),到你能负担得起那样多。如果你使它太大,系统将开始换页并且真的变慢了。对于内存在4GB左右的服务器该参数可设置为384M或512M。通过检查状态值Key_read_requests和Key_reads,可以知道key_buffer_size设置是否合理。比例key_reads/key_read_requests应该尽可能的低,至少是1:100,1:1000更好(上述状态值可以使用SHOW STATUS LIKE 'key_read%'获得)。注意:该参数值设置的过大反而会是服务器整体效率降低ft_min_word_len = 4分词词汇最小长度,默认4如下transaction_isolation = REPEATABLE-READMySQL支持4种事务隔离级别,他们分别是:READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE.如没有指定,MySQL默认采用的是REPEATABLE-READ,ORACLE默认的是READ-COMMITTEDlog_bin = mysql-binbinlog_format = mixedexpire_logs_days = 30 #超过30天的binlog删除log_error = /data/mysql/mysql-error.log #错误日志路径slow_query_log = 1long_query_time = 1 #慢查询时间 超过1秒则为慢查询slow_query_log_file = /data/mysql/mysql-slow.logperformance_schema = 0explicit_defaults_for_timestamplower_case_table_names = 1 #不区分大小写skip-external-locking #MySQL选项以避免外部锁定。该选项默认开启default-storage-engine = InnoDB #默认存储引擎innodb_file_per_table = 1InnoDB为独立表空间模式,每个数据库的每个表都会生成一个数据空间独立表空间优点:1.每个表都有自已独立的表空间。2.每个表的数据和索引都会存在自已的表空间中。3.可以实现单表在不同的数据库中移动。4.空间可以回收(除drop table操作处,表空不能自已回收)缺点:单表增加过大,如超过100G结论:共享表空间在Insert操作上少有优势。其它都没独立表空间表现好。当启用独立表空间时,请合理调整:innodb_open_filesinnodb_open_files = 500限制Innodb能打开的表的数据,如果库里的表特别多的情况,请增加这个。这个值默认是300innodb_buffer_pool_size = 64MInnoDB使用一个缓冲池来保存索引和原始数据, 不像MyISAM.这里你设置越大,你在存取表里面数据时所需要的磁盘I/O越少.在一个独立使用的数据库服务器上,你可以设置这个变量到服务器物理内存大小的80%不要设置过大,否则,由于物理内存的竞争可能导致操作系统的换页颠簸.注意在32位系统上你每个进程可能被限制在 2-3.5G 用户层面内存限制,所以不要设置的太高.innodb_write_io_threads = 4innodb_read_io_threads = 4innodb使用后台线程处理数据页上的读写 I/O(输入输出)请求,根据你的 CPU 核数来更改,默认是4注:这两个参数不支持动态改变,需要把该参数加入到my.cnf里,修改完后重启MySQL服务,允许值的范围从 1-64innodb_thread_concurrency = 0默认设置为 0,表示不限制并发数,这里推荐设置为0,更好去发挥CPU多核处理能力,提高并发量innodb_purge_threads = 1InnoDB中的清除操作是一类定期回收无用数据的操作。在之前的几个版本中,清除操作是主线程的一部分,这意味着运行时它可能会堵塞其它的数据库操作。从MySQL5.5.X版本开始,该操作运行于独立的线程中,并支持更多的并发数。用户可通过设置innodb_purge_threads配置参数来选择清除操作是否使用单独线程,默认情况下参数设置为0(不使用单独线程),设置为 1 时表示使用单独的清除线程。建议为1innodb_flush_log_at_trx_commit = 20:如果innodb_flush_log_at_trx_commit的值为0,log buffer每秒就会被刷写日志文件到磁盘,提交事务的时候不做任何操作(执行是由mysql的master thread线程来执行的。主线程中每秒会将重做日志缓冲写入磁盘的重做日志文件(REDO LOG)中。不论事务是否已经提交)默认的日志文件是ib_logfile0,ib_logfile11:当设为默认值1的时候,每次提交事务的时候,都会将log buffer刷写到日志。2:如果设为2,每次提交事务都会写日志,但并不会执行刷的操作。每秒定时会刷到日志文件。要注意的是,并不能保证100%每秒一定都会刷到磁盘,这要取决于进程的调度。每次事务提交的时候将数据写入事务日志,而这里的写入仅是调用了文件系统的写入操作,而文件系统是有 缓存的,所以这个写入并不能保证数据已经写入到物理磁盘默认值1是为了保证完整的ACID。当然,你可以将这个配置项设为1以外的值来换取更高的性能,但是在系统崩溃的时候,你将会丢失1秒的数据。设为0的话,mysqld进程崩溃的时候,就会丢失最后1秒的事务。设为2,只有在操作系统崩溃或者断电的时候才会丢失最后1秒的数据。InnoDB在做恢复的时候会忽略这个值。总结设为1当然是最安全的,但性能页是最差的(相对其他两个参数而言,但不是不能接受)。如果对数据一致性和完整性要求不高,完全可以设为2,如果只最求性能,例如高并发写的日志服务器,设为0来获得更高性能innodb_log_buffer_size = 2M此参数确定些日志文件所用的内存大小,以M为单位。缓冲区更大能提高性能,但意外的故障将会丢失数据。MySQL开发人员建议设置为1-8M之间innodb_log_file_size = 32M此参数确定数据日志文件的大小,更大的设置可以提高性能,但也会增加恢复故障数据库所需的时间innodb_log_files_in_group = 3为提高性能,MySQL可以以循环方式将日志文件写到多个文件。推荐设置为3innodb_max_dirty_pages_pct = 90innodb主线程刷新缓存池中的数据,使脏数据比例小于90%innodb_lock_wait_timeout = 120InnoDB事务在被回滚之前可以等待一个锁定的超时秒数。InnoDB在它自己的锁定表中自动检测事务死锁并且回滚事务。InnoDB用LOCK TABLES语句注意到锁定设置。默认值是50秒bulk_insert_buffer_size = 8M批量插入缓存大小, 这个参数是针对MyISAM存储引擎来说的。适用于在一次性插入100-1000+条记录时, 提高效率。默认值是8M。可以针对数据量的大小,翻倍增加。myisam_sort_buffer_size = 8MMyISAM设置恢复表之时使用的缓冲区的尺寸,当在REPAIR TABLE或用CREATE INDEX创建索引或ALTER TABLE过程中排序 MyISAM索引分配的缓冲区myisam_max_sort_file_size = 10G如果临时文件会变得超过索引,不要使用快速排序索引方法来创建一个索引。注释:这个参数以字节的形式给出myisam_repair_threads = 1如果该值大于1,在Repair by sorting过程中并行创建MyISAM表索引(每个索引在自己的线程内)interactive_timeout = 28800服务器关闭交互式连接前等待活动的秒数。交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE选项的客户端。默认值:28800秒(8小时)wait_timeout = 28800服务器关闭非交互连接之前等待活动的秒数。在线程启动时,根据全局wait_timeout值或全局interactive_timeout值初始化会话wait_timeout值,取决于客户端类型(由mysql_real_connect()的连接选项CLIENT_INTERACTIVE定义)。参数默认值:28800秒(8小时)MySQL服务器所支持的最大连接数是有上限的,因为每个连接的建立都会消耗内存,因此我们希望客户端在连接到MySQL Server处理完相应的操作后,应该断开连接并释放占用的内存。如果你的MySQL Server有大量的闲置连接,他们不仅会白白消耗内存,而且如果连接一直在累加而不断开,最终肯定会达到MySQL Server的连接上限数,这会报'too many connections'的错误。对于wait_timeout的值设定,应该根据系统的运行情况来判断。在系统运行一段时间后,可以通过show processlist命令查看当前系统的连接状态,如果发现有大量的sleep状态的连接进程,则说明该参数设置的过大,可以进行适当的调整小些。要同时设置interactive_timeout和wait_timeout才会生效。[mysqldump]quickmax_allowed_packet = 16M #服务器发送和接受的最大包长度[myisamchk]key_buffer_size = 8Msort_buffer_size = 8Mread_buffer = 4Mwrite_buffer = 4M*
2021年10月27日
359 阅读
0 评论
71 点赞
2021-10-04
如何在Mysql(8.0)下面修改密码
Linux下mysql升级到8.0版本了,以往mysql5.7设置密码的方法已经失效,故各种查资料找方法,寻到mysql8.0root账号密码修改方法。*开始 当我们安装好mysql-8.0后,在root用户下,我们可以直接凭借root的特权直接进入mysql命令行态,但这样我们的服务器极其危险,任何攻击下服务器的不法分子都可以轻轻松松获取它想要的服务数据。那么我们现在就是如何给服务器添加密码1.我们需要重新启动下我们的mysql服务器systemctl rastatus mysql.server2.在root态下。我们进入mysql命令行。use mysql ;切换数据库3.此时输入ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';4.需要先将root密码置空update user set authentication_string='' where user = 'root';然后在执行第3步即可 5.刷新mysql相关系统权限表,退出FLUSH privileges; 好了,新的密码就设置好的
2021年10月04日
204 阅读
0 评论
0 点赞
2021-08-08
如何在自己linux服务器上搭建邮件系统
在生活中邮件为我们提供了便捷的生活方式,我们常见的邮件服务商有 qq@.com腾讯邮件, @foxmail腾讯企业邮件, gmail@.comGoogle邮件 ,136@.com移动邮件 ;等一些列;我们可以免费凭借手机号或者qq号就可以注册一个邮件账号,凭借经验我们可以根据@后面的网址快速判断你的朋友使用的什么邮件系统和你沟通;非常方便;但是我们我们企业工作中为了企业文化宣传,和数据隐私问题,我们又无法经常使用到其他邮件系统咋办啦:? 现在跟着我一起学习如何搭建一个自己的专属邮件系统吧 准备材料:已经备案了域名:.com .cn .ltd .edu .ciud 等一台linux服务器(debain,ubuntu.Redhat,Cenos);小白一个我们在把域名解析出来一个简单的邮件系统由:用户名@邮件主机名.邮件域名.域名后缀 例如:root@mail.toanle.ltd 解析记录类型必须是MX类型否着无法收到邮件;中间的记录值就填写你服务器的IP地址: 然后 ssh 连接我们的服务器,下载邮件系统程序:POSTFIXPostfix 是一种电子邮件服务器,它是由任职于IBM沃森研究中心的荷兰籍研究员Wietse Venema为了改良sendmail邮件服务器而产生的。最早在1990年代晚期出现,是一个开放源代码的软件这里我通过(ubuntu)apt命令下载安装:sudo apt install postfix在安装过程中它会安装: postfix ssl-cert两个程序修改 我们的postfix配置文件:cat /etc/postfix/main.cf myhostname = mail.toanle.ltd修改myhostname改为你解析的域名地址:{dotted startColor="#9f1414" endColor="#1989fa"/}好的,到了现在我们的服务器已经安装完毕;可以使用:sendmail 3143246477@qq.com来测试我们的邮件系统是否成功
2021年08月08日
194 阅读
0 评论
2 点赞
1
...
3
4
5
...
8