(ls -l|grep “^-“| wc -l)查看某个文件夹下文件的个数。 (ls -lR|grep “^-“| wc -l)查看某个文件夹下文件的个数,包括子文件夹下的文件个数。...(ls -l|grep “^d”| wc -l)查看某个文件夹下文件夹的个数。 (ls -lR|grep “^d”| wc -l)查看某个文件夹下文件夹的个数,包括子文件夹下的文件夹个数。...(ls -l| wc -l)查看文件夹下所有的文件和文件夹。也就是统计ls -l命令所输出的行数。...说明: ls -l 长列表输出该目录下文件信息(注意这里的文件,不同于一般的文件,可能是目录、链接、设备文件等) grep “^-“ 这里将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是...^d wc -l 统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于 一行信息对应一个文件,所以也就是文件的个数。
可是我看了一下代码仓库中的文件还在: 之前确实改了 Ruler 组件,但是为什么说找不到呢?...git 忽略了文件大小写的更改。...经过一番搜索,了解到 git 项目有相关的配置,我特地初始化了一个空的 git 仓库,进入 .git 目录: 打开 config 文件: 可以看出 git 默认是忽略大小写的,那我把它改为 false...改完后把代码推到仓库却看到两个文件: 然后我又看了下文档: 看来官方还是不推荐直接改 ignorecase 的默认值,那我们该如何使文件大小写更改能被 git 识别呢?...虽然问题解决了,但是我没有找到更好的规避方法,下次可能还会直接修改文件名而不是通过 git 命令,若有什么更好的方法,请留言!
查看系统的最大文件句柄数和文件句柄的使用者PID ulimit -n查看当前系统的最大句柄数显示如下 ulimit命令详解 ulimit -HSn x设置当前系统的文件句柄数为x 以上命令中,H指定了硬性大小...,S指定了软性大小,n表示设定单个进程最大的打开文件句柄数量。...个人觉得最好不要超过4096,毕竟打开的文件句柄数越多响应时间肯定会越慢。设定句柄数量后,系统重启后,又会恢复默认值。...如果想永久保存下来,可以修改.bash_profile文件,可以修改 /etc/profile 把上面命令加到最后. lsof命令查看有关文件句柄的详细信息,如当前系统打开的文件数量,哪些进程在使用这些文件句柄等等...lsof -p 【PID】查看进程PID打开的文件句柄详细信息 # lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more 查看当前进程打开了多少句柄数
Linux 3.2.0-23-generic (linux) 09/08/2014 _x86_64_ (8 CPU) 02:01:55 PM dentunusd file-nr inode-nr...值基本一致,所以它不包括buffer和cache的空间. kbmemused:这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间....%memused:这个值是kbmemused和内存总量(不包括swap)的一个百分比. kbbuffers和kbcached:这两个值就是free命令中的buffer和cache. kbcommit:保证当前系统所需要的内存...,即为了确保不溢出而需要的内存(RAM+swap)....如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
问题 默认的 git 对文件名是大小写是不敏感的,因此需要设置下。 对于这个问题,没有使用 git rm 来删除 repo 的文件,再次上传之后,怎么移除这个文件。...解决办法 如果 git 配置没有设置大小写敏感的话,直接复制下面的命令即可 git config core.ignorecase false 对于修改之前的文件,远端仓库没有删除,本地是手动删除。...解决办法就是,先备份本地修改后的文件到其他地方,这步非常重要,如果没有剪切或者备份的话,执行 git status 根本没有任何信息提示。...移到其他地方之后,执行git status,就可以看到文件提示已经删除了。...最后 git checkout xxx之前备份或者剪切的文件即可,手动copy回来也行。
背景 下午在搞代码部署的时候, 遇到一个文件名大小写的问题, 问题比较简单, 但是也简单整理下, 分享给大家。.../UserModal' in '/workspace/src/pages/User/UserList' 文件没找到, 可是我看了看代码, UserModal这不是好好地在这吗?...到线上仓库看了一下, 文件名是小写的 userModal。 怪不得文件找不到。 知道错误原因就很好办了。...直接把git的忽略大小写关了: git config core.ignorecase false 然后重新提交, 就OK了。...大意是说, 忽略大小写敏感是为了在不同的文件系统上更好的工作。 比如APFS,HFS +,FAT,NTFS等。
在linux环境下表名是区分大小写的 问题 执行SHOW VARIABLES LIKE '%lowercasetable_names%' 输出结果: ?...其中 0:区分大小写,1:不区分大小写 解决办法 在mysql的配置文件中添加 lowercasetable_names=1 实际解决方式 先查找mysql使用的配置文件 添加配置 重启mysql 查看是否生效...正常情况使用locate my.cnf命令可以列出所有的my.cnf文件 ps命令查看是否使用了指定目录的my.cnf 没有找到 [root@iZbts0ohz0hZ ~]# ps aux|grep...于是,在/etc目录下新建my.cnf文件,文件中的内容为: [mysqld] character_set_server=utf8 init_connect='SET NAMES utf8' basedir...] log-error=/var/log/mysqld.log pid-file=/work1/soft/mysql/data/mysqld.pid #指定客户端连接mysql时的socket通信文件路径
从linux源码看socket的close 笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情。...上篇博客讲了socket的阻塞和非阻塞,这篇就开始谈一谈socket的close(以tcp为例且基于linux-2.6.24内核版本) TCP关闭状态转移图: 众所周知,TCP的close过程是四次挥手...; socket_fd = socket(AF_INET, SOCK_STREAM, 0); ... // 此处通过文件描述符关闭对应的socket close(socket_fd) 而close(int...FD_CLR(fd, fdt->close_on_exec); // 释放文件描述符 // 将fdt->open_fds即打开的fd位图中对应的位清除 // 再将fd挂入下一个可使用的fd以便复用...直到现在自己带着问题独立看linux源码的时候,尽管有之前的基础,仍旧被其中的各种细节所迷惑。希望笔者这篇文章能帮助到阅读linux网络协议栈代码的人。
作者简介 赵晨雨:西安邮电大学2018级陈莉君教授研究生,天真无邪小白一枚,已经爱上linux内核而不能自拔,正在成长为内核狂热爱好者?...跟随陈老师学习linux内核两个月了,对linux内核产生了极大的兴趣,最近学习文件系统,有一些自己的看法,很荣幸能在linux内核之旅进行分享^_^ 本篇文章使用尽量通俗的语言来说明linux内核文件系统中各个数据结构之间的关系...由于linux内核足够复杂,就会有多种解释方式,我认为所有关于linux内核的书籍,都是不同作者对内核的不同的看法,说不定这些看法对于linus本人来说都是很巧妙的,所以我在这里也大胆地提出自己对linux...第一条线(绿色) 这一条线是进程部分,也就是以进程的眼光来看文件系统。task_struct是一个非常复杂的结构体,我们在这里只看与文件系统相关的字段。...所以,我们在学习内核的时候,心中有这些基本部分的概念,再来看内核就是另一种角度了。 由于自己接触linux内核时间不长,才疏学浅,班门弄斧了,如果有错误的地方欢迎大家指正,小赵万分感谢:-D
某次突然关闭连接…..会出现swp文件,那么就要使用ll -a找到swp文件然后 rm -f swp文件,就可以正常打开文件了 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn
前言 在linux的高性能网络编程中,绕不开的就是epoll。和select、poll等系统调用相比,epoll在需要监视大量文件描述符并且其中只有少数活跃的时候,表现出无可比拟的优势。...(匿名inode文件系统)的根目录下面。...的结构如下图所示: (注:由于是tcp socket,所以这边sock->ops=inet_stream_ops,这个初始化的过程在我的另一篇博客...(soft_irq),再通过linux的软中断机制调用net_rx_action,如下图所示: 注:上图来自PLKA(>) step2: 紧接着跟踪next_rx_action...总结 epoll作为linux下非常优秀的事件触发机制得到了广泛的运用。其源码还是比较复杂的,本文只是阐述了epoll读写事件的触发机制,探究linux kernel源码的过程非常快乐_。
从linux源码看epoll 前言 在linux的高性能网络编程中,绕不开的就是epoll。...epoll_create Unix的万物皆文件的思想在epoll里面也有体现,epoll_create调用返回一个文件描述符,此描述符挂载在anon_inode_fs(匿名inode文件系统)的根目录下面...(注:由于是tcp socket,所以这边sock->ops=inet_stream_ops,这个初始化的过程在我的另一篇博客>中,博客地址如下: https...(soft_irq),再通过linux的软中断机制调用net_rx_action,如下图所示: ?...总结 epoll作为linux下非常优秀的事件触发机制得到了广泛的运用。其源码还是比较复杂的,本文只是阐述了epoll读写事件的触发机制,探究linux kernel源码的过程非常快乐^_^。
Linux文件操作 Linux中,一切皆文件(网络设备除外)。 硬件设备也“是”文件,通过文件来使用设备。 目录(文件夹)也是一种文件。...Linux文件的结构 root:该目录为系统管理员(也称作超级管理员)的用户主目录。 bin:bin是Binary的缩写,这个目录存放着最经常使用的命令。...boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件和镜像文件。...deb:deb是Device(设备)的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。...mnt:临时挂载其他文件。 proc:包含了进程的相关信息。 ---- Linux文件的操作方式 文件描述符fd fd是一个大于等于0的整数。
最近公司项目的MySQL数据库要迁移到linux下,部署时日志总是显示报找不到一个表,用MYSQL查看明明有这个表。后来经百度,原来LINUX下的MYSQL默认是区分表名大小写的。...用命令查看当前是否区分大小写: *************************************** mysql> show variables like "%case%"; +-------...set (0.00 sec) ****************************************** lower_case_file_system | OFF 说明当前区分大小写
SAM ( Sequence Alignment Map ) 文件是reads比对到基因组后得到的结果文件,记录了reads mapping到基因组的各项信息。...BAM文件是SAM文件的二进制格式,保留SAM文件全部信息的同时极大压缩了SAM文件的体积,我们比对完成后获得的一般都是BAM文件。...SAM文件由两部分组成:注释信息 (header) 和比对结果。 ## 查看 BAM 文件的 header samtools view -h input.bam | head ?...不同的情况对应不同的值,这里的数字是所有情况的和。 3. RNAME:比对至参考序列的名称。 4. POS:比对到的位置。 5. MAPQ:比对质量。 6. CIGAR:比对情况信息。 7....RNEXT:与之配对的另一条reads所在的参考序列名称。"="表示位于同一个参考序列上,"*"表示没有另一条reads。 8. PNEXT:与之配对的另一条reads所在的位置。 9.
本文大部分讨论的是socket设置为block的情况,即setNonblock(false),仅在最后提及了nonblock socket(本文基于linux 2.6.32-431内核)。...kernel代码版本细微变化 值得注意的是,linux本身官方发布的2.6.32源码对于tcp_syn_retries2的解释和RFC并不一致(至少笔者阅读的代码如此,这个细微的变化困扰了笔者好久,笔者下载了和机器对应的内核版本后才发现代码改了...timeout = ((2 << boundary) - 1) * rto_base; ...... } ========================>linux 内核版本2.6.32.630时,将socket设置为非阻塞,然后用select系统调用去模拟超时,而没有走linux本身的超时逻辑,如下图所示: 由于没有java并没有设置so_sndtimeo的选项,所以在...java的SocketInputStream的sockRead0超时时间 java的超时时间由SO_TIMOUT决定,而linux的socket并没有这个选项。
在有些时候数据会存在缓存中而没有写入磁盘中 数据同步考入磁盘 sync 2.关机重启指令 指令 内容 shutdown/halt/poweroff 关机 reboot 重启 3.运行级别 级别0 关机 级别1 相当于Windows的安全模式
从linux源码看socket(tcp)的timeout 前言 网络编程中超时时间是一个重要但又容易被忽略的问题,对其的设置需要仔细斟酌。...本文大部分讨论的是socket设置为block的情况,即setNonblock(false),仅在最后提及了nonblock socket(本文基于linux 2.6.32-431内核)。...kernel代码版本细微变化 值得注意的是,linux本身官方发布的2.6.32源码对于tcp_syn_retries2的解释和RFC并不一致(至少笔者阅读的代码如此,这个细微的变化困扰了笔者好久,笔者下载了和机器对应的内核版本后才发现代码改了...在timeout>0时,将socket设置为非阻塞,然后用select系统调用去模拟超时,而没有走linux本身的超时逻辑,如下图所示: ?...java的SocketInputStream的sockRead0超时时间 java的超时时间由SO_TIMOUT决定,而linux的socket并没有这个选项。
今天笔者就来从Linux源码的角度看下Server端的Socket在进行bind的时候到底做了哪些事情(基于Linux 3.10内核)。...值得注意的是,由于对于<1024的端口号需要CAP_NET_BIND_SERVICE,我们在监听80端口号(例如启动nginx时候),需要使用root用户或者赋予这个可执行文件CAP_NET_BIND_SERVICE...这个特性在紧急重启以及线下调试的非常有用,建议开启。 SO_REUSEPORT SO_REUSEPORT是Linux在3.9版本引入的新功能。...鉴于此,Linux增加了SO_REUSEPORT,而之前bind中判断是否冲突的下面代码也是为这个参数而添加的逻辑: if(!reuseport || !...https://www.nginx.com/blog/socket-sharding-nginx-release-1-9-1/ 总结 Linux内核源码博大精深,一个看起来简单的bind系统调用竟然牵涉这么多
今天笔者就从Linux源码的角度看下Server端的Socket在进行Accept的时候到底做了哪些事情(基于Linux 3.10内核)。...关于epoll的原理可以看下笔者之前的博客《从linux源码看epoll》: https://www.cnblogs.com/alchemystar/p/13161781.html 在这里描述一下原因,...在accept_queue被填充后,由用户线程通过accept系统调用从队列中获取对应的fd 值得注意的是,当用户线程来不及处理的时候,内核会drop掉三次握手成功的连接,导致一些诡异的现象,具体可以看笔者的另一篇博客...,可以见笔者另一篇博客的详细分析 《从Linux源码看Socket(TCP)的listen及连接队列》: https://www.cnblogs.com/alchemystar/p/13845081.html...总结 Linux内核源码博大精深,每次扎进去探索时候都会废寝忘食,其间可以看到各种优雅的设计,在此分享出来,希望对读者有所帮助。
领取专属 10元无门槛券
手把手带您无忧上云