背景:在Linux下习惯使用ll、la、l等ls别名的童鞋到mac os可就郁闷了,
whichi ll
-bash: whichi: command not found
[xiangdong@jenkins_server_bj_sjs_10_71_182_25 .ssh]$ which ll
alias ll='ls -l --color=auto'
        /bin/ls
其实只要在用户目录下建立一个脚本“.bash_profile”,并输入以下内容即可:


ls -l --color=auto

1 2014-461deMacBook-Pro:~ root# cd ~
2 2014-461deMacBook-Pro:~ root#vim .bash_profile
加入:


  保存后,执行

3 2014-461deMacBook-Pro:~ root#source .bash_profile
=============================================

.bash_profile

alias l='ls -alhF'
alias la='ls -AFh'
alias ll='ls -lhAF'
alias l='ls -alhF'
alias la='ls -AFh'
alias ll='ls -lhAF'

然后在终端窗口中输入下列命令后,别名即可立即生效:
source ~/.bash_profile
source ~/.bash_profile

如果不知道如何创建,可以直接在“终端”窗口中依次执行如下命令:

.bash_profile完整创建命令Shell

cd ~
touch .bash_profile
echo "alias l='ls -alhF'" >>.bash_profile
echo "alias la='ls -AFh'" >>.bash_profile
echo "alias ll='ls -lhAF'" >>.bash_profile
source ~/.bash_profile

cd ~
touch .bash_profile
echo "alias l='ls -alhF'" >>.bash_profile
echo "alias la='ls -AFh'" >>.bash_profile
echo "alias ll='ls -lhAF'" >>.bash_profile
source ~/.bash_profile

来自:https://clang.cn/blog/749.html
https://www.cnblogs.com/daly2008/p/4160066.html
背景:Python很火,且连一些如ESP8266的硬件都支持Python了。
目前Python存在两个版本Python2和Python3系列,且这两个版本同时在更新与维护。到底是选择Python2还是选择Python3,取决于当前要使用的库、框架支持哪个版本。因此一台电脑上可能需要同时安装Python2和Python3两个版本。本文主要讲述的是如何在centos7系统中存在python2系列的同时安装python3.6.2(目前python3系列的最新版本)

1.安装升级相应的软件包
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make

2.下载python 3.6 的源码包
wget http://mirrors.sohu.com/python/3.6.2/Python-3.6.2.tgz

3.安装python3.6
tar zxvf Python-3.6.2.tgz -C /opt/
cd /opt/Python-3.6.2/  
./configure --prefix=/usr/local/python3
make && make install  

若遇到编译问题:
zipimport.ZipImportError: can't decompress data; zlib not available  #make && make install
yum install zlib zlib-devel -y

4.配置python,配置python3  pip3 软链接,设置软连接:目的是让我们直接在任何地方输入python3命令都可以得到python解释器的运行。
更改/usr/bin/python链接:
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
mv /usr/bin/pip{,.backup}
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip   #python2-pip没有,就没有这个pip.
查看是否安装成功
python3 -V
pip3 -V

更改/usr/bin/python默认链接,实现升级:
/usr/bin/python --version
Python 2.7.5
mv /usr/bin/python{,.backup}
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python


5.查看当python的版本,出现版本信息即为正确安装
python3 --version


6.更改yum脚本的python依赖
yum localinstall mysql-5.7.12-171123111505.el7.centos.x86_64.rpm
  File "/usr/libexec/urlgrabber-ext-down", line 28
    except OSError, e:
                  ^
# ls /usr/bin/yum*
# ls yum*
yum yum-config-manager yum-debug-restore yum-groups-manager
yum-builddep yum-debug-dump yumdownloader
更改以上文件头为
#!/usr/bin/python 改为 #!/usr/bin/python2

用Sed 一行搞定,参考自[实践OK]经常用到之linux sed 批量替换字符串,及模糊替换和模糊拼接的例子。http://jackxiang.com/post/2324/:
/usr/bin/yum-groups-manager  #!/usr/bin/python -tt
/usr/bin/yumdownloader #直接python后面有一个空格
/usr/bin/yum-debug-restore #!/usr/bin/python -tt
/usr/bin/yum-debug-dump  #!/usr/bin/python -tt
/usr/bin/yum-config-manager #!/usr/bin/python -tt
/usr/bin/yum-builddep  #!/usr/bin/python -tt
/usr/bin/yum  #python后面无空格
势必要有两种替换:
sed -i 's/#!\/usr\/bin\/python /#!\/usr\/bin\/python2.7 /' /usr/bin/yum-builddep
sed -i 's/#!\/usr\/bin\/python /#!\/usr\/bin\/python2.7 /' /usr/bin/yum-config-manager
sed -i 's/#!\/usr\/bin\/python /#!\/usr\/bin\/python2.7 /' /usr/bin/yum-debug-dump
sed -i 's/#!\/usr\/bin\/python /#!\/usr\/bin\/python2.7 /' /usr/bin/yum-debug-restore
sed -i 's/#!\/usr\/bin\/python /#!\/usr\/bin\/python2.7 /' /usr/bin/yumdownloader
sed -i 's/#!\/usr\/bin\/python /#!\/usr\/bin\/python2.7 /' /usr/bin/yum-groups-manager
sed -i 's/#!\/usr\/bin\/python$/#!\/usr\/bin\/python2.7/' /usr/bin/yum
sed -i 's/#!\/usr\/bin\/python$/#!\/usr\/bin\/python2.7/' /usr/libexec/urlgrabber-ext-down

这个-tt的没有啥用,只是起到警告作用,完全在替换时不要:
-t     Issue a warning when a source file mixes tabs and spaces for indentation in a  way  that  makes  it
              depend on the worth of a tab expressed in spaces.  Issue an error when the option is given twice.
-t 当源文件以制作缩进的方式混合制表符和空格时发出警告
               取决于用空格表示的选项卡的价值。 当该选项被赋予两次时发出一个错误。

7.测试用Python的Pip3安装Python扩展:
rpm -qf /bin/pip
python2-pip-8.1.2-5.el7.noarch
/bin/pip --version
pip 9.0.1 from /usr/lib/python2.7/site-packages (python 2.7)

pip3 --version
pip 9.0.1 from /usr/local/python3/lib/python3.6/site-packages (python 3.6)

pip3 install PyEmail
Collecting PyEmail
  Downloading https://files.pythonhosted.org/packages/ca/39/caf0436670b6fa9f072e322fab1a2b04d5631bdbdc8ea9857230aae02dd5/PyEmail-0.0.1.zip
Installing collected packages: PyEmail
  Running setup.py install for PyEmail ... done
Successfully installed PyEmail-0.0.1
You are using pip version 9.0.1, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

pip3 install ipdb
Collecting ipdb
  Downloading https://files.pythonhosted.org/packages/80/fe/4564de08f174f3846364b3add8426d14cebee228f741c27e702b2877e85b/ipdb-0.11.tar.gz
Requirement already satisfied: setuptools in /usr/local/python3/lib/python3.6/site-packages (from ipdb)
Collecting ipython>=5.0.0 (from ipdb)
  Downloading https://files.pythonhosted.org/packages/b1/7f/91d50f28af3e3a24342561983a7857e399ce24093876e6970b986a0b6677/ipython-6.4.0-py3-none-any.whl (750kB)
    62% |████████████████████            | 471kB 54kB/s eta 0:00:06
好一会下载安装就能装上这个,但是提示:You are using pip version 9.0.1, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
pip install --upgrade pip

pip install ipdb   #再一次安装这个Python的调试扩展
python -m pdb mail.py

最后,这些脚本总结起来放一块就这些,方便后期再安装之用:


来自:https://blog.csdn.net/hobohero/article/details/54381475
来自:https://blog.csdn.net/wjqwinn/article/details/75633714
背景:很常用的一些基础文本操作,记录下来备查。
一)把空格连接改为|连接:
#cat b
a b c d

awk -vOFS="|" 'NF+=0' b
a|b|c|d

[解析]
  替换字段分割符,必须要对字段有个action才能使OFS生效,这里我们运用 NF+=0 的方法,即有了操作,而并为改变其原有的值,很巧妙吧。

二)去空行:
cat a
1

2

3

awk NF a
1
2
3

[解析]
  排除空行,因为空行NF=0,0为假不会打印该行。

三)输出中间列:
#cat c
a b c d e f
1 2 3 4

awk 'NF-=2' c
a b c d
1 2

awk '{for(i=3;i<NF;i++)printf("%s ",$i);print $NF}' c
c d e f
3 4

$NF:最后一列

[解析]
  不输出后面2个字段和前面2个字段。

实践来自:https://blog.csdn.net/zwj1030711290/article/details/53923459





一)把空格连接改为|连接:
#cat b
a b c d

awk -vOFS="|" 'NF+=0' b
a|b|c|d


二)去空行:
cat a
1

2

3

awk NF a
1
2
3


三)
背景:鉴于安全的原因,如果你的电脑没有桌面锁密码,别人也能用,此时不安全,得把对应的自动填写的用户各、密码的Cookie清理掉,而对于那个Chrome记住并自动填写登录的用户名和密码也不安全,只需要输入验证码就进入了,于是查了下怎么给去掉这些的存在Chrome里,实践是可行的,很有必要记录下来,免得忘记了,无它。

一)如何在Chrome中删除特定于站点的Cookie:
chrome://settings/
高级-内容设置-Cookie-所有 Cookie 和网站数据[右侧有一个搜索Cookie:输入jackxiang.com]-点进去就有-XXXX.com 本地存储的数据:
PHPSESSID    --> X
userid            --> X
userpasswd    --> X

来自:http://mos86.com/67173.html


二)如何删除chrome保存的密码:
chrome://settings/
Ctrl+shift+del,里弹出一个清除浏览数据,里面有一个:密码项,再就是有一个选择是:过去七天、近四周、时间不限。
选一个时间,并勾选,其它给不勾选,执行即可。
如果你是当天数据的,选过去一天即可,依次类推。然后勾选<密码>项。最后选择清楚浏览数据。这样操作就完成啦。当你再次登录之前的网站时,你发现你就需要重新输入密码了。

来自:https://jingyan.baidu.com/article/f3ad7d0fe5e71309c3345baf.html
Sublime编辑器里,用正则把一堆IP粘贴选取出来:



来自:https://www.jb51.net/article/101221.htm
用ssh登录阿里云centos7主机,过一会儿会自动出现以下信息,
Message from syslogd@docker_test_bj_sjs_10_71_159_108 at Jun 11 17:49:08 ...
kernel:unregister_netdevice: waiting for lo to become free. Usage count = 1
在这个信息中,我这里按ctrl+c可以退回到

https://m.aliyun.com/yunqi/ask/2877/
[root@localhost ~]# mount -t xfs /dev/sdb /data        
mount: mount /dev/sdb on /data failed: Structure needs cleaning

--------------------------
可以使用xfs_repair来修复,但是要注意 xfs_repair修复的分区中的文件都会丢失,即使是du能正常显示的文件也会丢失。

[root@yw-0-0 /]# mount -a
mount: Structure needs cleaning

[root@yw-0-0 /]# xfs_repair /dev/sdl

来自:http://blog.51cto.com/zwcmcm/1650764
Linux中在终端打开图形界面的文件夹的方法   
终端输入nautilus /home进入home

       nautilus /etc 进入etc
一次类推吧,要是在以终端打开文件夹可以sudo apt-get install nautilus-open-terminal注销后登陆即可使用

一直在终端中用cd /目录 的方式进入字符界面的文件夹,有时你需要进入图形界面的文件夹,那么利用下面的方法从终端打开,替代或减少鼠标的点击次数,就能提高效率。   gnome-open /etc  ubuntu中 nautilus /etc  nautilus['nɔːtɪləs]这个命令就是以root权限打开一个窗口,来管理文件。比如你直接点击 计算机 里面有很多文件夹和文件是root用户才能操作,  所以你对该文件夹或文件不能进行粘贴,剪切,删除等操作,也不能建立新文件,而用nautilus命令后就可以了。 比如你要修改 /etc/apt/sources.list 不用终端的话,直接点文件夹进入该目录,你只有查看的权限,而用了nautilus命令后再进该目录,你就可以对里面的文件修改,删除,建新文件等。
mkfs.ext4 经yum update的升级到CentOS7.5后没了mkfs.ext4,于是 得安装:
安装https://mirrors.aliyun.com/centos/7.5.1804/os/x86_64/Packages/e2fsprogs-1.42.9-11.el7.x86_64.rpm这个包

[root@iZ889v050nrZ:~]
#cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)

[root@iZ889v050nrZ:~]
#rpm -qf /sbin/mkfs.ext4
e2fsprogs-1.42.9-11.el7.x86_64
想鼠标切换又能复制,怎么办?
set mouse=a可视下,用:按住 shift 键,然后选择。
在~/.vimrc中加入 set mouse=a 后,vim鼠标右键变得不能复制了,解决办法如下:
按住 shift 键,然后选择,此时表示由 X 处理该选择,copy 选项就 enable 了。如果放掉shift键,则由 vim处理该选择。

所以配置文件中的set mouse=a启动了所有模式, vim接管了鼠标的控制。

其中涉及的背景知识是:
鼠标事件有两种处理方式,程序处理和 X 处理。
如果 X 负责处理,则是左键选择,中间粘贴。
要让 vim 中由 X 负责处理,有两个方法:
1. 按住 shift 键,然后选择,此时由 X 处理该选择,copy 选项就 enable 了。如果放掉shift键,则由 vim处理该选择。
2. 在 .vimrc 中设置 set mouse= (就是说清空),此时vim永远不再干涉鼠标选择,永远把处理权交给X,这个时候鼠标就处于无模式编辑状态, 当然也能用鼠标来切换vim里面的tab窗口了,vim中的编辑光标也不会跟随鼠标了。
实践Ok来自:https://blog.csdn.net/sinkary/article/details/7531747

:set mouse=v
但这样后,Vim的标签就无法用鼠标切换了,http://jackxiang.com/post/9110/
想用鼠标点vim里的Tab,能切换标签,得重新运行::set mouse=a ,实践是可行的。
阅读全文
在Finder里,也不是类似下载文件夹里,输入:
Command+Shift+G
会弹出一个输入路径的框,输入路径也就跳转过去了。
遇到该问题并非安装的软件已损坏,而是Mac系统的安全设置问题,一般大多时候是在安装汉化或者破解版的时候会遇到。

但是之前设置过Mac的安全性和隐私,允许安装来自任何地方的软件。不应该出现该问题。

回去排查发现是因为自己升级Mac系统到最新版之后,安全性与隐私中没有了信任任何来源的选项。

Fix
解决的办法除了从 系统偏好设置中设置还可以通过如下命令来设置,设置完毕就会出现“任何来源”

修改系统配置:系统偏好设置… -> 安全性与隐私。修改为任何来源
如果没有这个选项的话 (macOS Sierra 10.12) ,打开终端,执行 sudo spctl –master-disable 即可。

bogon:~ root# sudo master-disablespctl
sudo: master-disablespctl: command not found
bogon:~ root# master-disablespctl
-sh: master-disablespctl: command not found
bogon:~ root# spctl --master-disable
bogon:~ root#


实践来源:https://blog.csdn.net/eagle5063/article/details/78802510
排序
按F9或者选择菜单:Edit > Sort Lines,对每行文本进行排序

查找重复行
排序好后,按Ctrl+F,调出查找面板
查找字符串:

^(.+)$[\r\n](^\1$[\r\n]{0, 1})+
注意:确保正则模式开关打开;若不可用,按Alt+R进行切换
点击Find。
实践发现先得F9,再查找重复,重复的一块,不同的线隔开。


删除重复行
排序好后,按Ctrl+H,调出替换面板
查找字符串:

^(.+)$[\r\n](^\1$[\r\n]{0, 1})+
注意:确保正则模式开关打开;若不可用,按Alt+R进行切换。
后面替换为空,即可留下一个即可。

替换字符串:
\1
点击Replace

来自:http://www.cnblogs.com/final/p/5427223.html
一)Yum安装:centos7编译好的strace安装源,在devtoolset-3包中有。

先添加 devtoolset-3 的安装源

yum install centos-release-scl-rh -y
yum install strace --enablerepo=centos-sclo-rh -y

直接安装

yum install strace

其他

1、devtoolset还有很多其他的工具可用,列表见 http://mirror.centos.org/centos/7/sclo/x86_64/rh/

2、还可以通过devtoolset切换高版本gcc编译环境,高版本的py等,详见  http://blog.fungo.me/2016/03/centos-development-env/

参考:https://www.softwarecollections.org/en/scls/rhscl/devtoolset-3/

二)源码装:
strace是一个功能强大的调试,分析诊断工具,主要用来监视系统调用。

1.下载strace-xxx.tar.xz

    下载网址是:http://sourceforge.net/project/showfiles.php?group_id=2861&package_id=2819;

2.解压

      $  xz -d   ***.tar.xz

      $  tar -xvf   ***.tar


      可以看到这个压缩包也是打包后再压缩,外面是xz压缩方式,里层是tar打包方式。

      补充:目前可以直接使用 tar xvJf  ***.tar.xz来解压

3.配置

        ./configure

4.编译

      make

5.安装

    make  install

6.使用



见博文:http://blog.csdn.net/u011630575/article/details/52077563
原因:外网试图登录SSH破解密码太多,出现大量的/usr/bin/ssh-agent -s进程。
解决办法如下:
cat  /etc/profile.d/ssh-agent.sh  

运行:
[root@localhost ~]# sh  /etc/profile.d/ssh-agent.sh  
Starting ssh-agent...
Agent pid 3625
[root@localhost ~]# ps -ef|grep 3625
root      3625     1  0 22:57 ?        00:00:00 ssh-agent
root      3647  3325  0 22:57 pts/2    00:00:00 grep --color=auto 3625

后面再多个SSH,只有四个ssh-agent进程:
ps -ef|grep ssh-agent            
root      3625     1  0 22:57 ?        00:00:00 ssh-agent
root      2442     1  0 22:54 ?        00:00:00 /usr/bin/ssh-agent -s
root      2785     1  0 22:55 ?        00:00:00 /usr/bin/ssh-agent -s
root      3131     1  0 22:56 ?        00:00:00 /usr/bin/ssh-agent -s
root      3527     1  0 22:57 ?        00:00:00 /usr/bin/ssh-agent -s
root      3878     1  0 22:58 ?        00:00:00 /usr/bin/ssh-agent -s

cat ~/.agent.env
SSH_AUTH_SOCK=/tmp/ssh-X1RtYLOVI2iq/agent.3623; export SSH_AUTH_SOCK;
SSH_AGENT_PID=3625; export SSH_AGENT_PID;
echo Agent pid 3625;

感觉进程数还是变多,无鸟用,于是干掉这个SSH-Client:
[root@localhost ~]# rpm -qf /usr/bin/ssh-agent
openssh-clients-7.4p1-13.el7_4.x86_64
[root@localhost ~]# rpm -e openssh-clients
错误:依赖检测失败:
        openssh-clients 被 (已安裝) virt-viewer-5.0-7.el7.x86_64 需要
        openssh-clients 被 (已安裝) python-meh-0.25.2-1.el7.noarch 需要
[root@localhost ~]# yum remove  openssh-clients -y
作为依赖被删除:
  anaconda-core.x86_64 0:21.48.22.121-1.el7.centos    anaconda-gui.x86_64 0:21.48.22.121-1.el7.centos  
  anaconda-tui.x86_64 0:21.48.22.121-1.el7.centos     initial-setup.x86_64 0:0.3.9.40-1.el7.centos      
  initial-setup-gui.x86_64 0:0.3.9.40-1.el7.centos    python-meh.noarch 0:0.25.2-1.el7                  
  python-meh-gui.noarch 0:0.25.2-1.el7                virt-viewer.x86_64 0:5.0-7.el7

参考自:https://blog.csdn.net/diamondxiao/article/details/52488628

一)SSH现象:



二)Linux桌面没了,出现:
系统出现kernel: audit: backlog limit exceeded提示
error: audit:backlog limit exceeded报错,audit缓冲大小瓶颈
来自:http://blog.51cto.com/jschu/1769025

三)如何强制重启?
有时候,linux 由于硬盘或者其它原因,
某个进程挂住了,怎么也杀不死,
输入 reboot 命令也无法重启。
这时候,一般只能按机箱上的reset健来重启了。
如果是远程ssh,那怎么办呢?


下面两行命令可以搞定:


echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger
=========================================================
Linux使用shutdown -r now 或者 reboot、init 6 命令无法重启时使用以下两条命令可强制重启:
echo 1 > /proc/sys/kernel/sysrq  
echo b > /proc/sysrq-trigger  
1./proc/sys/kernel/sysrq
向 sysrq 文件中写入1是为了开启 SysRq 功能。根据 linux/Documentations/sysrq.txt 中所说:SysRq 代表的是 Magic System Request Key。开启了这个功能以后,只要内核没有挂掉,它就会响应你要求的任何操作。但是这需要内核支持(CONFIG_MAGIC_SYSRQ 选项)。向 /proc/sys/kernel/sysrq 中写入0是关闭 SysRq 功能,写入1是开启,其他选项请参考 sysrq.txt。

2./proc/sysrq-trigger
立即重新启动计算机:
echo "b" > /proc/sysrq-trigger
立即关闭计算机:
echo "o" > /proc/sysrq-trigger



来自:https://my.oschina.net/dongsong/blog/915358

一)查看根路径下各个文件夹的文件数:
for i in /*; do echo $i; find $i |wc -l|sort -nr; done
二)发现/var的最多,于是再运行命令:
for i in /var/*; do echo $i; find $i |wc -l|sort -nr; done
/var/spool
2428535
三)再次进入:
for i in /var/spool/*; do echo $i; find $i |wc -l|sort -nr; done
/var/spool/postfix
2428437

四)再次深入:
for i in /var/spool/postfix/*; do echo $i; find $i |wc -l|sort -nr; done
/var/spool/postfix/maildrop
2428402

五)估计上面安装了postfiex,检查下:
rpm -qa|grep postfix
postfix-2.6.6-2.2.el6_1.x86_64

六)Google上搜索下原因:
mail没有成功的邮件。由于linux在执行cron时,会将cron执行脚本中的output和warning信息,都会以邮件的形式发送cron所有者, 而我的服务器中关闭了postfix,导致邮件发送不成功,全部小文件堆积在了maildrop目录下面。如果sendmail或者postfix正常运行,则会在/var/mail目录下也会堆积大量的邮件。

七)解决方法:
     1)修改“/etc/crontab” ,将‘MAILTO=root’替换成‘MAILTO=""’修改之后没有成功,需要重启crond服务才可以,也可从在crontab(crontab -e)中最前面直接加入MAILTO=""
     2)find /var/spool/postfix/maildrop -type f -exec rm -rf {} \;

参考:http://www.coooz.com/archives/825
          https://blog.csdn.net/zhangxinrun/article/details/51539587
分页: 3/327 第一页 上页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 下页 最后页 [ 显示模式: 摘要 | 列表 ]