secureCRT拖动上传,SFTP拖动上传文件到家目录:
https://blog.csdn.net/kxj19980524/article/details/85246778
一)ps在FreeBSD中截断的列宽:
ps aux | grep php
在zsh中,例如,输出
root  50282   0.0  1.4  49512 29584  -  Ss   23:03          0:00.05 php-fpm: master process (/usr/local/

您可以看到它在屏幕上运行并在结束时被截止.

在FreeBSD中,如何查看完整输出?

最佳答案 使用-w选项(必要时重复).尝试:

ps auxwww|grep php    
root  50282   0.0  1.4  49512 29584  -  Ss   23:03          0:00.06 php-fpm: master process (/usr/local/php7/etc/php-fpm.conf) (php-fpm)

有关更多信息,请参见the manual page


二)linux ps命令显示完整命令:
在linux上执行ps命令,输出往往被截断
ps -f -p5457
UID        PID  PPID  C STIME TTY          TIME CMD
root      5457  5449  0 4月26 pts/1   00:00:00 Worker***: master process  start_file=/data/www/manage.**


可以使用以下形式,显示完整的命令

ps -w -w -f -p5457
UID        PID  PPID  C STIME TTY          TIME CMD
root      5457  5449  0 4月26 pts/1   00:00:00 Worker***: master process  start_file=/data/www/manage.****.***.cn/********/GatewayWorker/start.php
或者
ps -f  -p5457|cat
UID        PID  PPID  C STIME TTY          TIME CMD
root      5457  5449  0 4月26 pts/1   00:00:00 Worker***: master process  start_file=/data/www/manage.****.***.cn/********/GatewayWorker/start.php
FreeBSD 社区宣布接下来项目将采用新的从 LLVM 衍生而来的行为准则(Code of Conduct,CoC)。



此前 2018 年对于 CoC 的调查中,FreeBSD 开发者给出的反馈是:

94% 的开发人员相信项目中尊重沟通很重要;1% 的人不同意
89% 的人认为 FreeBSD 应该欢迎所有背景的人;2% 反对
73% 的人表示行为不好的人应从项目中剔除,不论他们的技术贡献如何;9% 反对
35% 的人不满意 2018 年通过的行为守则,34% 保持中立,30% 表示满意
今年 6 月,通过审查其它开源行为准则,FreeBSD 核心团队进行了新一轮调查,不过将问题限定为:采用 LLVM 衍生的 CoC 还是 Go 衍生的版本,亦或是保持不变。结果是 63% 的人赞成采用 LLVM 衍生的行为准则。

通过前后两次社区开发者的调查,FreeBSD 最终采用了基于 LLVM 的 CoC。该 CoC 要求社区开发者:

友好耐心
热情好客
体贴
相互尊敬
对他人友善,并注意不要乱说话
持不同见解时多换位思考
具体内容可以查看:https://www.freebsd.org/internal/code-of-conduct.html
root如果没有umask(umask 000)则文件权限为666,目录权限为777,但是默认有的如下:
root的缺省zhiunmask是022,一般用户是002。
所以,root用户umask
0022

一般目录是:755,原因是777-022=755.
文件,默认是644,666-022=644。


=============umask 000 为什么执行下来不是 777而是666呢??==================

umask 000
umask
0000
touch index2.php
touch index3.php
-rw-rw-rw- 1 root root     0 Jun  8 15:08 index2.php
-rw-rw-rw- 1 root root     0 Jun  8 15:08 index3.php

原因:因为这是个普通文件,普通文件是不能在创建时具有执行权限的,所以要去掉x 权限位(7-1),所以权限是6(可读写,7-1-0),0就是umask。
ll -d bdc
drwxrwxrwx 2 root root 4096 Jun  8 15:23 bdc  #目录就是777了。

解释:unmask制定bai了新文件创建时的权限,unmask是个8进制的数du字。root的缺省zhiunmask是022,一般用户是002。如dao果用户的umask为000,则创建的文件权限为666,目录权限为777,运行umask命令可以查看用户自己的umask值。

当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask设置了用户创建文件的默认 权限,它与chmod的效果刚好相反,umask设置的是权限"补码",而chmod设置的是文件权限码。一般可在/etc/profile、/etc/bashrc、$ [HOME]/.bash_profile、$[HOME]/.profile或$[HOME]/.bashrc中设置umask值。具体取决于Linux发行版,比如Fedora19下要更改自己的umask值,在$[HOME]/.profile或$[HOME]/.bash_profile下的增加umask的值覆盖不了/etc/profile中的配置值的,必须在$[HOME]/.bashrc下增加umask值才可以永久定义自己的umask值。
一)关闭sunrpc 111端口的步骤:

ss -lnt
State       Recv-Q Send-Q                                Local Address:Port                                               Peer Address:Port              
LISTEN      0      128                                               *:111                                                           *:*      


lsof -i :111
COMMAND   PID USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
systemd     1 root   34u  IPv6     27796      0t0  TCP *:sunrpc (LISTEN)
systemd     1 root   35u  IPv4     27797      0t0  TCP *:sunrpc (LISTEN)
rpcbind 52067  rpc    4u  IPv6     27796      0t0  TCP *:sunrpc (LISTEN)
rpcbind 52067  rpc    5u  IPv4     27797      0t0  TCP *:sunrpc (LISTEN)

查看正在监听的111端口,由哪个服务使用
cat /etc/services | grep -w 111
sunrpc          111/tcp         portmapper rpcbind      # RPC 4.0 portmapper TCP
sunrpc          111/udp         portmapper rpcbind      # RPC 4.0 portmapper UDP


systemctl list-unit-files --all |grep rpcbind
rpcbind.service                             indirect
rpcbind.socket                              disabled
rpcbind.target                              static


核心语句:

CentOS6.X系统:
chkconfig rpcbind off
service rpcbind stop

核对是否真关了:
systemctl list-unit-files --all |grep rpcbind

111消失了:
ss -lnt
State       Recv-Q Send-Q                                Local Address:Port                                               Peer Address:Port              
LISTEN      0      128                                               *:22                                                            *:*                  
LISTEN      0      128                                               *:10050                                                         *:*                  
LISTEN      0      128                                              :::22                                                           :::*  


参考自:https://www.qiuvps.com/1595.html
https://my.oschina.net/u/1189928/blog/1824327


三)关闭rpc.statd服务
lsof  -i tcp:10588
COMMAND    PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
rpc.statd 1828 rpcuser    9u  IPv4  13392      0t0  TCP *:10588 (LISTEN)


which rpc.statd
/sbin/rpc.statd

rpm -qf /sbin/rpc.statd
nfs-utils-1.2.3-39.el6_5.3.x86_64

rpm -ql nfs-utils|grep '/etc/rc.d'
/etc/rc.d/init.d/nfs
/etc/rc.d/init.d/nfslock
/etc/rc.d/init.d/rpcgssd
/etc/rc.d/init.d/rpcidmapd
/etc/rc.d/init.d/rpcsvcgssd


/etc/init.d/nfslock stop  


lsof  -i tcp:631
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
cupsd   1865 root    6u  IPv6  13530      0t0  TCP [::1]:ipp (LISTEN)
cupsd   1865 root    7u  IPv4  13531      0t0  TCP xy.xxxx.xx:ipp (LISTEN)

rpm -qf `which cupsd`
cups-1.4.2-78.el6_9.x86_64

netstat -anp|grep 631
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      1865/cupsd          
tcp        0      0 ::1:631                     :::*                        LISTEN      1865/cupsd          
udp        0      0 0.0.0.0:631                 0.0.0.0:*                               1865/cupsd

1865     1    01:29:04 Mon Jun  1 17:53:58 2020 cupsd -C /etc/cups/cupsd.conf
1890     1    01:29:04 Mon Jun  1 17:53:58 2020 hald
1891  1890    01:29:04 Mon Jun  1 17:53:58 2020  \_ hald-runner
1923  1891    01:29:04 Mon Jun  1 17:53:58 2020      \_ hald-addon-input: Listening on /dev/input/event2 /dev/input/event0

kill -9 1865  # 干死,端口消失。

参考:http://coolnull.com/4038.html


三)特殊端口服务可能是mount 产生的端口:
mount端口是看不到程序的,只显示一个小横杠。
netstat -lntp|grep 54086
tcp        0      0 0.0.0.0:54086               0.0.0.0:*                   LISTEN      -


umount /data/webdata # umount后端口消失

实践来自:https://jackxiang.com/post/10577/


man 2 socket    #非阻塞的真实含义是没有连接时accept返回-1(Java里返回Null,C语言返回-1),没有数据时read返回0.
       SOCK_NONBLOCK   Set the O_NONBLOCK file status flag on the new open file description.  Using this
                       flag saves extra calls to fcntl(2) to achieve the same result.   #fcntl设置也成。

java里设置:ss.configureBlocking(false);  #重点 OS NOBLOCK。
C里:
    int listenfd = socket(AF_INET, SOCK_STREAM, 0);
    fcntl(listenfd, F_SETFL, O_NONBLOCK); // 设置非阻塞方式


        for(i=0; i<wait_fds; ++i ) // for循环中以进程处理epoll事件,更稳定。
        {
            if( events[i].data.fd == listenfd ){
                connfd = accept( listenfd, (struct sockaddr *)&clientaddr, &clilen );
                printf("accept return listenfd=%d\n",connfd);
                if( connfd < 0 ){
                    perror("connfd < 0");
                    exit(1);
                }

                // 设置非阻塞
                if (fcntl( connfd, F_SETFL, fcntl( connfd, F_GETFD, 0)|O_NONBLOCK) == -1){                
                    continue;
                }

accept、read、write: -1 不会阻塞。默认recv(5...阻塞。NIO在Java里指:
1)Java New:文件和楼socket都封装成新的东西,可以select统一侦听状态。
2)Unix NOBLOCKING。  

BLOCKING的缺点弊端:每客户端、每线程【阻塞】。

man 2 accept    #此调用在发生错误时返回-1.若成功则返回一个非负整数标识这个 连接套接字.  NOBLOCKING -1
man 2 read      #生错误时返回-1,并置 errno 为相应值.在这种情况下无法得知文件偏移位置是否有变化.在读取了一定量的数据后被信号所中断,并返回 -1(且 errno 被设置为EINTR),或者返回已读取的数据量.



1万个连接 1个人发来数据:

accept返回都是-1,来了数据读了一部分后,你又回去处理连接了,数据读不全。于是出现粘包。

但是你在一个循环里,全量遍历O(n)系统调用。

man 2 select:
多少条路、有多少个读的、多少个写的。

select(3,5)   # 3有没有连接,5有没有连接。

selec(t3,5,6,7,8,9,10,11)   O(1)只需要调一次即可。

accept (3) = 6
recv(5)   O(m)            #多路复用只能给你返回状态,程序需要自己调用R/W你的IO  ,只要自己去读去取就叫同步模型。Netty里全是同步IO模型:无论是在当前线程还是其它线程NIO BIO New IO(指文件、socket一块给弄成一个NewIO),N:还有一个是Noblocking,也就是没来连接时返回-1,读取不到socket数据时返回立即0。
                                 #异步:有阻塞么?没有阻塞的。 调用内核的一个方法(callback)(内核帮你把数据读写)

点击在新窗口中浏览此图片


man 2 epoll_create:
man 2 epoll_ctl

点击在新窗口中浏览此图片

点击在新窗口中浏览此图片



strace -ff -o out ./nginx

实际测试结果

创建 10000 个 TCP socket 会使用 31552 KB 内存(通过比较 /proc/meminfo 得出),即每个 TCP socket 占用 3.155 KB,这个数字很接近上面考虑 SLAB overhead 之后的计算结果。

代码:https://github.com/chenshuo/recipes/blob/master/tpc/bin/footprint.cc

小结

中文网络上这种似是而非、以讹传讹的说法很多,常见的还包括“epoll 快是因为用了共享内存来避免拷贝数据”等等,不可轻信。

来自:https://zhuanlan.zhihu.com/p/25241630
摘录作为一个后端开发工程师,在Linux中查看查看文件内容是基本操作了。尤其是通常要分析日志文件排查问题,那么我们应该如何正确打开日志文件呢?对于笔者这种小菜鸡来说,第一反应就是 cat,tail,vi(或vim)了,是的,我曾经用过好多次vim编辑器来查看日志文件(可耻)。

千万不要使用vi命令来查看大文件内容, 尤其对于那些几十G的大文件。因为vi仅仅是一个编辑器(可以理解为windows中的记事本),使用vi命令后则会把文件所有内容加载到内存中,如果内存不够大的话,则可能会导致服务器瘫痪。


cat test.txt
第1行
第2行

第3行
第4行

第5行
第6行

第7行
第8行

第9行
第10行

不按脚本,直接每一行都有行号:
cat test.txt
第1行
第2行
第3行
第4行
第5行
第6行
第7行
第8行
第9行
第10行
第11行
第12行
第13行
第14行
第15行
第16行
第17行
第18行
第19行
第20行
第21行

less

less命令比more更加有弹性,可以前后翻页,不止可以向上查找,也可以向下查找。
按键/命令
[pagedown] :向下翻页
[pageup] :向上翻页
/字符串:在当前显示的内容(翻页进度位置),向下查找这个字符串关键字
?字符串:向上查找字符串
n :重复前一个查找,与/或?有关, 比如前一个命令是?表示向上查找,此时n会向上查找
N:  反向的重复前一个查找
g :跳转到当前文件数据的第一行
G :跳转到当前文件数据的最后一行
q :退出当前文件的浏览

范例演示

数据截取
head

head命令用来提取文件的前n行,一般配合使用-n选项。当指定的行数为负数-x时,则会打印出除了后面x行的其他所有数据。
范例1:查看前10行数据
head -n 10 test.txt
head -n 10 test.txt
cat test.txt
第1行
第2行
第3行
第4行
第5行
第6行
第7行
第8行
第9行
第10行

范例2(一共10000行,没有空行):head -n -9989 test.txt
tail

从文件尾部截取数据。tail也是工作中最常用的命令,因为可以利用-f选项,一直刷新获取文件尾部最新数据。

选项与参数
-n   : 查看后n行数据,注意当n后面值带“+”号表示从第x行开始, 如 tail -n +1000 test.txt
-f  : 展示文件后面
范例1:查看尾部5行数据【tail -n 5 test.txt】

范例2:查看文件尾部数据,并实时刷新数据

tail -f test.txt

范例3:查看文件尾部5行数据,并实时刷新数据
tail -n 5 -f  test.txt


通用命令
管道:Shell 还有一种功能,就是可以将两个或者多个命令(程序或者进程)连接到一起,把一个命令的输出作为下一个命令的输入,以这种方式连接的两个或者多个命令就形成了管道(pipe),管道命令用"|"来表示。

范例:查看ll命令输出的前10行

ll | head -n 3

ll | head -n 10
grep :命令用于查找文件里符合条件的字符串,这两个命令也是linux中最常用的的,而在查看日志文件也通常会结合这两个命令一起使用。

范例:查看文件文件中那些行包含‘999’

cat -n test.txt | grep '999'

>> : 文件追加重定向命令,可以往文件末尾追加数据,正如上文 echo "第$i行" >> test.txt。

范例:将一个文件的最后10行复制到helloworld.txt中

tail -n 10 >> helloworld.txt

wc:文件字节数,字数,行数查看wc [-clw] [文件...],
-c或--bytes或--chars 只显示Bytes数。
-l或--lines 只显示行数。
-w或--words 只显示字数。
范例:查看文件行数
wc -l

案例实战
案例1:打印日志文件中第11到20行。
思路:首先获取前20行,然后在获取20行的后10行即可,需要使用管道命令。
head -n 20 text.txt | tail -n 10   #head和tail都是-n ,head -n 是头n行,tail -n是从第n+1行到行尾
cat -n test.txt | head -n 20 | tail -n 10(如果需要显示行号)

分解:
head -n 20 text.txt
cat test.txt
第1行
第2行
第3行
第4行
第5行
第6行
第7行
第8行
第9行
第10行
第11行
第12行
第13行
第14行
第15行
第16行
第17行
第18行
第19行
第20行

第二步,将上在输出通过管道从11行到最后:
head -n 20 test.txt |tail -n 10
第11行
第12行
第13行
第14行
第15行
第16行
第17行
第18行
第19行
第20行



来自:https://mp.weixin.qq.com/s/Q-NfY2sr4n2XiJwy8SsXDA
Mac 下安装使用tac命令:

1.  安装coreutils软件包:

brew install coreutils
ln -s /usr/local/bin/gtac /usr/local/bin/tac

2. 在MAC 上使用tail命令代替:
tail -r filename


Error: Cannot install coreutils because conflicting formulae are installed.
  md5sha1sum: because both install `md5sum` and `sha1sum` binaries

Please `brew unlink md5sha1sum` before continuing.

来自:https://blog.csdn.net/dongwuming/article/details/50836723?utm_source=blogxgwz6
背景:打包yum的仓库文件到外网机器解压时发现的,这个问题可以忽略,一般来讲,不影响正常使用。

今天头一次见到tar zxf files.tar.gz 会出现包内文件报错, implausibly old time stamp的问题,
由于压缩包是自己打包的, 单独访问的时候文件都是正常的. 后面搜索测试了一下问题解决了. 在此记录一下:. B$ r/ i7 W) z, U9 o  k( ^3 n
先把原文件(打包前的文件) 执行一下命令:: B3 A6 k# w* e- {* h
touch *
同步一下文件时间. 再重新打包, 然后再测试解包, ok 问题解决了.7 v0 Y9 p9 Q5 }' l& s5 @2 t6 s

0 ~/ D( S1 z0 T: Z
扩展:
文件时间大于你的系统时间,也就是说文件是早于当前时间创建/修改的,这个问题可以忽略,一般来讲,不影响正常使用。" {# L/ H8 ~1 _" g- B5 i
你也可以在展开文件后,用命令 “touch * ” 同步文件时间。( {+ H5 b  V+ d% @5 ?

参考:http://forum.ubuntu.org.cn/viewtopic.php?p=2059005
man pkg
which   Query the database for package(s) that installed a specific file.

pkg which /usr/local/lib/libicuio.so.58
/usr/local/lib/libicuio.so.58 was installed by package icu-58.2_2,1

#pkg which /usr/local/bin/openssl
/usr/local/bin/openssl was installed by package openssl-1.0.2l,1

来自:https://www.howtoing.com/pkg-command-examples-to-manage-packages-in-freebsd


附:从Ports存储库本地下载软件包
为了从Ports存储库本地下载软件包,而不在系统上安装软件包,请使用fetch开关运行pkg命令 。

下载的软件包二进制文件是压缩的.txz文件,可以在/ var / cache / pkg / system路径中找到。

# pkg fetch package_name
freebsd添加lib搜索路径的方法:
(1) 添加到LD_LIBRARY_PATH,这个多数人都知道了,坏处是传递的时候容易被砍掉,如apache
(2) ld.so.conf,设置了完全没用,不要试这个。。。
(3) ldconfig -m PATH,一次加载一次有效
(4) 修改/usr/local/libdata/ldconfig/,例如mysql,可以建一个文件/usr/local/libdata/ldconfig/mysql
内容是(假设装到了/usr/local/mysql):
/usr/local/mysql/lib/mysql
然后/etc/rc.d/ldconfig restart就行了

FreeBSD修改可执行文件路径和库文件路径
1、库文件路径修改:
FreeBSD和linux不是一样的。
在/etc/下加入ld-elf.so.conf里面写上你的目录,比如/usr/local/samba/lib,没有的话创建一个。
然后
sudo /etc/rc.d/ldconfig restart
or
/etc/rc.d/ldconfig forcerestart
好了,查看库文件路径
# ldconfig -r
# ldconfig -r | less
或者/etc/rc.conf里加ldconfig_path="",这是系统起来的时候再设置的。

2、可执行文件路径修改:
 
在用户目录下面,比如/root或者/home/ztz0223下面,打开.cshrc文件,修改set path部分:
# $FreeBSD: release/9.1.0/share/skel/dot.cshrc 242850 2012-11-10 06:05:04Z eadler $
#
# .cshrc - csh resource script, read at beginning of execution by each shell
#
# see also csh(1), environ(7).
# more examples available at /usr/share/examples/csh/
#
alias h          history 25
alias j          jobs -l
alias la     ls -aF
alias lf     ls -FA
alias ll     ls -lAF

# A righteous umask
umask 22

set path =
(/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin $HOME/bin)

修改上面set path比如:
set path =
(/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin
/usr/local/samba/bin $HOME/bin)



来自:https://www.xuebuyuan.com/1082615.html
https://www.cyberciti.biz/faq/freebsd-ldconfig-v-lost-dynamic-linker-configuration/
一、原理
Beyond Compare每次启动后会先检查注册信息,试用期到期后就不能继续使用。解决方法是在启动前,先删除注册信息,然后再启动,这样就可以永久免费试用了。

二、下载
首先下载Beyond Compare最新版本,链接如下:https://www.scootersoftware.com/download.php


三、安装
下载完成后,直接安装。

四、创建BCompare文件
1.进入Mac应用程序目录下,找到刚刚安装好的Beyond Compare,路径如下/Applications/Beyond Compare 2.app/Contents/MacOS。
2.修改启动程序文件BCompare为BCompare.real。
3.在当前目录下新建一个文件BCompare,文件内容如下:
/Applications/Beyond Compare 2.app/Contents/MacOS/BCompare
#!/bin/bash
rm "/Users/$(whoami)/Library/Application Support/Beyond Compare/registry.dat"
"`dirname "$0"`"/BCompare.real $@
4.保存BCompare文件。
5.修改文件的权限:
chmod a+x /Applications/Beyond Compare 2.app/Contents/MacOS/BCompare
以上步骤完成后,再次打开Beyond Compare就可以正常使用了,enjoy it。
转自:https://blog.csdn.net/wu__di/article/details/82390196
mac查看当前调用tcp的进程并关闭指定进程:
一)查看本机macbook打开的端口:
lsof -iTCP -sTCP:LISTEN
MotionPro  2766 jackXiang   16u  IPv4 0xc8299b5de6c3cc43      0t0  TCP localhost:60012 (LISTEN)
Adobe\x20  2858 jackXiang   13u  IPv4 0xc8299b5dea54da73      0t0  TCP localhost:15292 (LISTEN)
com.docke  2890 jackXiang    8u  IPv4 0xc8299b5dea125b5b      0t0  TCP localhost:56199 (LISTEN)
phpstorm   2918 jackXiang  186u  IPv4 0xc8299b5dea91527b      0t0  TCP localhost:6942 (LISTEN)
phpstorm   2918 jackXiang  362u  IPv4 0xc8299b5deaa2a8b3      0t0  TCP localhost:63342 (LISTEN)

二)查看连接远程端口:
lsof -iTCP -dTCP:LISTEN
lsof -iTCP -dTCP:LISTEN|grep Google   #查看google浏览器连接的端口
safara进程:
/System/Library/Frameworks/WebKit.framework/Versions/A/XPCServices/com.apple.WebKit.WebContent.xpc/Contents/MacOS/com.apple.WebKit.WebContent
  502 57037     1   0 11:42上午 ??         0:06.24 /System/Library/Frameworks/WebKit.framework/Versions/A/XPCServices/com.apple.WebKit.WebContent.xpc/Contents/MacOS/com.apple.WebKit.WebContent
分页: 1/38 第一页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 下页 最后页 [ 显示模式: 摘要 | 列表 ]