背景:运行一个alfred的workflow后(https://www.mac69.com/news/399.html),终端exit;它不退出,不爽,于是找到解决办法了,如下:
解决Mac终端exit退出不爽:

入手Mac后发现各种不爽,比如在终端输入exit命令后,竟然不退出,以下解决:

  ------->终端

    -------->偏好设置

      ------->描述文件

            -------->Shell

              --------->单shell退出时:

                          选择:关闭窗口
————————————————
原文链接:https://blog.csdn.net/u010164190/article/details/60772827
/usr/local/nginx/conf/vhosts/yum.qr.cntv.net.conf



关闭前:
Connection: keep-alive
Content-Encoding: gzip
Content-Type: text/xml
Date: Wed, 18 Sep 2019 02:23:28 GMT
ETag: W/"5d80ad08-bb9" 【】
ip_network: 234.253
Last-Modified: Tue, 17 Sep 2019 09:53:12 GMT
Server: nginx
Transfer-Encoding: chunked
Vary: Accept-Encoding

关闭后:
http://yum.qr.cntv.net/centos/6/x86_64/repodata/repomd.xml
Connection: keep-alive
Content-Encoding: gzip
Content-Type: text/xml
Date: Wed, 18 Sep 2019 02:18:51 GMT
ip_network: 234.254
Last-Modified: Tue, 17 Sep 2019 09:53:12 GMT
Server: nginx
Transfer-Encoding: chunked
Vary: Accept-Encoding


来自:http://nginx.org/en/docs/http/ngx_http_core_module.html
Syntax:  etag on | off;
Default:  
etag on;
Context:  http, server, location
This directive appeared in version 1.3.3.


二)关闭 if_modified_since off;的方法。
默认是开启的

可以参考两个方案(实践没有成功)

第一在nginx.conf里设置

if_modified_since off|on;
第二在具体的location段里

location ~* \.(?:manifest|appcache|html?|xml|json)$ {
# add_header  Last-Modified $date_gmt;
  # add_header  Last-Modified ""; #不想要就置空
# add_header  Cache-Control "public";
}
PS:$date_gmt是内嵌变量,具体参考ngx_http_ssi_module模块

nginx如果打开了SSI模块,会默认关闭header中的last-modified输出
https://blog.csdn.net/weixin_34168700/article/details/92438695
((3+5)*7-20)/6

div.c  plus.c  sub.c  times.c



./plus 5|./times 7|./sub 20|./div 6
3
6


来自:https://mp.weixin.qq.com/s/0a_T8UKFNiaQueYrUs1TCw
并发与并行是两个既相似而又不相同的概念
并发性,又称共行性,是指能处理多个同时性活动的能力
并行是指同时发生的两个并发事件,具有并发的含义
而并发则不一定并行,也亦是说并发事件之间不一定要同一时刻发生。
并发的实质是一个物理CPU(也可以多个物理CPU) 在若干道程序之间多路复用,并发性是对有限物理资源强制行使多用户共享以提高效率。
并行性指两个或两个以上事件或活动在同一时刻发生。在多道程序环境下,并行性使多个程序同一时刻可在不同CPU上同时执行。
所有的并发处理都有排队等候,唤醒,执行至少三个这样的步骤.所以并发肯定是宏观概念,在微观上他们都是序列被处理的,只不过资源不会在某一个上被阻塞(一般是通过时间片轮转),所以在宏观上看多个几乎同时到达的请求同时在被处理。如果是同一时刻到达的请求也会根据优先级的不同,而先后进入队列排队等候执行。
1、要在桌面上创建新文件夹,请单击桌面并按[shift + cmmand + n]。

2、按下步骤一所示的按钮后,桌面此时会创建个未命名文件夹。如果不小心按多了,创建了多个文件夹,要撤消,请按cmmand + z。


来自:https://zhidao.baidu.com/question/1239552110247618779.html
背景:在CentOS里修改错了,怎么办呢?于是用下面的方法实现了重新还原,再修改,这种情况修改后最后新开终端,否则发现错了再也进不去root后,无法修改,还好有这个办法可行。

通过 pkexec visudo 修改了 /etc/sudoers 文件,文件格式错误,结果无法使用 sudo,无法修改回去了,咋办?

在网上搜索半天,找到一个风骚的解决办法:

假设你是通过 ssh 连接服务器,那就创建两个连接会话。
在第一个会话中,使用这个命令获取进程 PID:
echo $$
在第二个会话中,用下面的命令启动授权代理:
pkttyagent --process [PID]
回到第一个会话,运行命令:
pkexec visudo
再回到第二个会话,输入当前用户的密码。
回到第一个会话,发现已经可以编辑 /etc/sudoers 了!!!
谁能告诉我这里的授权机制是什么?原文链接在这里:
https://askubuntu.com/a/1053617/297291
FreeBSD 上的成功步骤:


来自:https://mp.weixin.qq.com/s?__biz=MzU3NTgyODQ1Nw==&mid=2247486217&idx=1&sn=0bc9d610e69a32f0a8f230a554cd8489&chksm=fd1c738fca6bfa9994751642ed544f5a4db957ee58a816b57c10c3da2d26d5be5e108a27b322&scene=27#wechat_redirect
对于同一个SLB下的服务器N台访问自己的VIP,会出现1/N的的概率访问不通的解释:
S-->SLB-->D
16.1.1.1 -> 18.1.1.1->出现在SLB里访问的口当SLB的VIP向自己进行回包时,查路由表时,发现源地址一样,导致SLB不再转包,原因是源的目的地址都一样:
X@eth10 IP 18.1.1.1 > 18.1.1.1: S 4229408411:4229408411(0) win 64240 cmss  #这俩地址一样了于是不再转发,于是发的包没有回收到,于是出现业务上卡住了。



防火墙经过地址转换抓包详解:
https://blog.csdn.net/shiyuqi_blog/article/details/90230186
防火墙DNAT与SNAT详谈:
https://blog.51cto.com/luosea/1686022

R表示收到,X表示发出,R@eth1是从eth1口收到数据包。X@eth2是从2口发出数据包
16.1.1.1>18.1.1.2 表示IP 16.1.1.1发给IP 18.1.1.2
Seq后面的数是序列号 request和reply的号一致就是一个数据包

抓包过程详解:
防火墙eth1口收到16.1.1.1发给18.1.1.2的request数据包
接着从eth2口这个request数据包转发出去
然后防火墙eth2口收到18.1.1.2发给16.1.1.1的reply数据包
防火墙再从eth1口转发这个reply给16.1.1.1
---------------------
作者:一只认真的鱼
来源:CSDN
原文:https://blog.csdn.net/shiyuqi_blog/article/details/90230186
版权声明:本文为博主原创文章,转载请附上博文链接!

Centos7修改grub启动菜单等待时间:
vi /boot/grub2/grub.cfg

找到并更改启动时间(timeout)


From:https://www.cnblogs.com/OceanF/p/9837554.html
1、错误描述
[sdb] No Caching mode page found
[sdb] Assuming drive cache:write through
....
Could not boot
/dev/root does not exist

2、进入安装选择内核界面时,按下e键

vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet
更改为(即更改inst.stage2=hd:后面的内容即可)
vmlinuz initrd=initrd.img inst.stage2=hd:/dev/sdb1:/ quiet

说明:
sdb1是你系统安装系统所在的U盘的挂载名称,可以通过 ls /dev/sd*获取。
我的是:/dev/sda /dev/sdb /dev/sdb1

一般是sdb1,因为硬盘一般是sda,可能会有不同,具体看情况。

再按下CTRL + X 快捷键即可继续安装了。

实践来自:https://blog.51cto.com/407866527/2109066
#cat stdouterr.c


解答:这段代码的输出是什么呢?你可以快速的将代码敲入你电脑上(当然,拷贝更快),然后发现输出是
World!Hello
果然:
./stdouterr
World!Hello

这是为什么呢?在默认情况下,stdout是行缓冲的,他的输出会放在一个buffer里面,只有到换行的时候,才会输出到屏幕。而stderr是无缓冲的,会直接输出,举例来说就是printf(stdout, "xxxx") 和 printf(stdout, "xxxx\n"),前者会憋住,直到遇到新行才会一起输出。而printf(stderr, "xxxxx"),不管有么有\n,都输出。


stdout憋住,证明换行才会输出:
#cat stdouterr.c


#./stdouterr
Hello Hello   #stdout换行输出
World! Hello  #World!是stderr输出,会立即输出,在它上面Hello的前面输出。



make stdouterr
cc     stdouterr.c   -o stdouterr

./stdouterr
Can't open it!
Can't open it!
Can't open it!


./stdouterr > tmp.txt              
Can't open it!

这3句效果不是一样啊,有什么区别吗?

有区别。
stdout -- 标准输出设备 (printf("..")) 同 stdout。
stderr -- 标准错误输出设备
两者默认向屏幕输出。
但如果用转向标准输出到磁盘文件,则可看出两者区别。stdout输出到磁盘文件,stderr在屏幕。


cat tmp.txt
Can't open it!
Can't open it!



实践来自:https://blog.csdn.net/qingzhuyuxian/article/details/80391143
systemctl status rpcbind -l
● rpcbind.service - RPC bind service
   Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; enabled; vendor preset: enabled)
   Active: failed (Result: start-limit) since Wed 2019-06-12 22:54:51 CST; 27min ago
  Process: 7679 ExecStart=/sbin/rpcbind -w $RPCBIND_ARGS (code=exited, status=0/SUCCESS)
Main PID: 7680 (code=exited, status=1/FAILURE)

Jun 12 22:54:51 mother_virtualbox_bj_sjs_10_10_0_108 systemd[1]: Starting RPC bind service...
Jun 12 22:54:51 mother_virtualbox_bj_sjs_10_10_0_108 systemd[1]: Started RPC bind service.
Jun 12 22:54:51 mother_virtualbox_bj_sjs_10_10_0_108 rpcbind[7680]: cannot get uid of 'rpc': Success
Jun 12 22:54:51 mother_virtualbox_bj_sjs_10_10_0_108 systemd[1]: rpcbind.service: main process exited, code=exited, status=1/FAILURE
Jun 12 22:54:51 mother_virtualbox_bj_sjs_10_10_0_108 systemd[1]: Unit rpcbind.service entered failed state.
Jun 12 22:54:51 mother_virtualbox_bj_sjs_10_10_0_108 systemd[1]: rpcbind.service failed.
Jun 12 22:54:51 mother_virtualbox_bj_sjs_10_10_0_108 systemd[1]: start request repeated too quickly for rpcbind.service
Jun 12 22:54:51 mother_virtualbox_bj_sjs_10_10_0_108 systemd[1]: Failed to start RPC bind service.
Jun 12 22:54:51 mother_virtualbox_bj_sjs_10_10_0_108 systemd[1]: rpcbind.service failed.




先删除rpcbind

rpm –e –nodeps rpcbind

再重新安装一次

yum install rpcbind



http://www.it610.com/article/4385613.htm

Linux 下修改用户的UID和所在组的GID实践如下:


useradd  jackX -u 798
usermod -u 863 jackX
groupmod -g 863 www



修改UID
Usage:

usermod -u NEW-UID username
1
Examples:

## original UID is 1007
root@pts/0 $ id newjames
uid=1007(newjames) gid=1008(james) 组=1008(james)

## change 1007 to 2007
root@pts/0 $ usermod -u 2007 newjames

## modified to 2007
root@pts/0 $ id newjames
uid=2007(newjames) gid=1008(james) 组=1008(james)

修改GID/group-name
Usage:

groupmod -g NEW-GID groupname
1
Examples:

## james to newjames, but james's group is still 'james'
root@pts/0 $ groupmod -g 2007 newjames
groupmod:“newjames”组不存在

root@pts/0 $ id newjames
uid=2007(newjames) gid=1008(james) 组=1008(james)

root@pts/0 $ groupmod -g 2007 james


修改群组名称:
## try to rename group

root@pts/0 $ groupmod --help
用法:groupmod [选项] 组

选项:
  -g, --gid GID                 将组 ID 改为 GID
  -h, --help                    显示此帮助信息并推出
  -n, --new-name NEW_GROUP      改名为 NEW_GROUP
  -o, --non-unique              允许使用重复的 GID
  -p, --password PASSWORD   将密码更改为(加密过的) PASSWORD
  -R, --root CHROOT_DIR         chroot 到的目录


root@pts/0 $ groupmod -n newjamesgroup james


## find that group was renamed
root@pts/0 $ id newjames
uid=2007(newjames) gid=1008(newjamesgroup) 组=1008(newjamesgroup)


## try to change GID
root@pts/0 $ groupmod -g 2007 james

root@pts/0 $ id newjames
uid=2007(newjames) gid= 2007(newjamesgroup) 组= 2007(newjamesgroup)


修改用户名称
Usage:

usermod -l login-name old-name
1
修改用户的名称 old-name 改成 login-name,别的都没有改变。其实我们也应该考虑是否把用户的HOME目录也改成新的用户。

另外这里有个问题需要注意

如果出现如下报错

root@pts/0 $ usermod -l newjames james
usermod: user James is currently used by process 12345
1
2
说明有用james用户运行的程序,需要把相关的程序停掉之后再执行上面的命令

Examples:

## add user 'james' for test
root@pts/0 $ useradd james

## check original id
root@pts/0 $ id james
uid=1007(james) gid=1008(james) 组=1008(james)

## check HOME directory
root@pts/0 $ ls -ld /home/james/
drwx------ 2 james james 4096 12月 23 11:46 /home/james/

## try to change or rename and verify
root@pts/0 $ usermod -l newjames james

root@pts/0 $ id james
id: james: no such user

root@pts/0 $ id newjames
uid=1007(newjames) gid=1008(james) 组=1008(james)


## check HOME folder
root@pts/0 $ ls -ld /home/james/
drwx------ 2 newjames james 4096 12月 23 11:46 /home/james/

root@pts/0 $ ls -ld /home/newjames
ls: 无法访问/home/newjames: 没有那个文件或目录
Dev-web-solr [~] 2016-12-23 11:47:22

从上面可以看出,变化只仅仅是username,UID/GUID/HOME目录都没有改变
---------------------

原文:https://blog.csdn.net/eagle5063/article/details/53842528
vimdiff 的优势在于能同时查看各个文件的差别,而:
vimdiff *   则对整个目录的文件进行比对,如果复制:
yy 后再control+w(w按两次)跳到另一个文件里按p粘贴上去,
发现原来那行不需要了,于是得dd删掉,而此时再通过control+w(w按两次)到第仨文件,再按p时,则是粘贴的内容是刚删的那行内容,怎么办?



用寄存器:
a-z26个命名寄存器中的a即可,如下:
可以用"{register}y来拷贝到{register}中, 用"{register}p来粘贴{register}中的内容。

实践:
"ayy可以拷贝当前行到寄存器a中,而"ap则可以粘贴寄存器a中的内容。

结论:合理地使用可以极大地提高效率。


===========================================================================
"+p可以粘贴剪切板的内容,
":p可以粘贴上一个Vim命令(比如你刚刚费力拼写的正则表达式),
"/p可以粘贴上一次搜索关键词(你猜的没错,正是normal模式下的/foo搜索命令)。
在Vim中可通过:reg来查看每个寄存器当前的值。


来自:https://harttle.land/2016/07/25/vim-registers.html
分页: 1/37 第一页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 下页 最后页 [ 显示模式: 摘要 | 列表 ]