CentOS tree命令详解

如果没有tree命令,请先安装

yum -y install tree

Lnux下tree命令详解---linux以树状图逐级列出目录的内容命令
#############################################################################
命令格式
tree <选项或者是参数> <分区或者是目录>
#############################################################################
(1) tree 最长使用的参数或者是选项 

-a 显示所有文件和目录。
[root @liyao~]# tree -a
.
|-- .bash_logout
|-- .bash_profile
|-- .bashrc
|-- .cshrc
|-- .gconf
|   `-- apps
|       |-- %gconf.xml
|       `-- gnome-session
|           |-- %gconf.xml
|           `-- options
|               `-- %gconf.xml
|-- .gconfd
|   `-- saved_state
|-- .tcshrc
|-- anaconda-ks.cfg
|-- install.log
`-- install.log.syslog
**************************************************************************************
-d 显示目录名称而非内容。
[root @liyao~]# tree -d
.
`-- liyao

1 directory

*****************************************************************************
-f 在每个文件或目录之前,显示完整的相对路径名称。
[root@liyao ~]# tree -f
.
|-- ./anaconda-ks.cfg
|-- ./install.log
|-- ./install.log.syslog
`-- ./liyao
1 directory, 3 files
*****************************************************************************
-F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。
[root@liyao ~]# tree -F
.
|-- anaconda-ks.cfg
|-- install.log
|-- install.log.syslog
`-- liyao/

1 directory, 3 files
*****************************************************************************
-r 以相反次序排列
[root@liyao ~]# tree -r
.
|-- liyao
|-- install.log.syslog
|-- install.log
`-- anaconda-ks.cfg

1 directory, 3 files
*****************************************************************************
-t 用文件和目录的更改时间排序。
[root@liyao ~]# tree -t
.
|-- liyao
|-- anaconda-ks.cfg
|-- install.log
`-- install.log.syslog

1 directory, 3 files
[root@liyao ~]# ls -l
total 56
-rw------- 1 root root  1012 Jul  3 21:43 anaconda-ks.cfg
-rw-r--r-- 1 root root 27974 Jul  3 21:43 install.log
-rw-r--r-- 1 root root  4708 Jul  3 21:43 install.log.syslog
drwxr-xr-x 2 root root  4096 Jul  3 23:30 liyao
*****************************************************************************
-L n 只显示 n 层目录 (n 为数字)
[root@liyao ~]# tree -L 2
.
|-- anaconda-ks.cfg
|-- install.log
|-- install.log.syslog
`-- liyao
`-- baobao

2 directories, 3 files
*****************************************************************************
--dirsfirst 目录显示在前文件显示在后
[root@liyao ~]# tree --dirsfirst
.
|-- liyao
|   `-- baobao
|-- anaconda-ks.cfg
|-- install.log
`-- install.log.syslog

2 directories, 3 files

#####################################################################
(2) 可以加的参数,但是不是经常用得到

-A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。
-C 在文件和目录清单加上色彩,便于区分各种类型。
-D 列出文件或目录的更改时间。
-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
-i 不以阶梯状列出文件或目录名称。
-I 不显示符合范本样式的文件或目录名称。
-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
-n 不在文件和目录清单加上色彩。
-N 直接列出文件和目录名称,包括控制字符。
-p 列出权限标示。
-P 只显示符合范本样式的文件或目录名称。
-q 用"?"号取代控制字符,列出文件和目录名称。
-s 列出文件或目录大小。
-u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
-x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。

参考:http://www.centoscn.com/CentOS/help/2013/0926/1715.html
参考:http://blog.csdn.net/feeltouch/article/details/46643379

linux tar.gz zip 解压缩 压缩命令

tar
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件

这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。

-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出

下面的参数-f是必须的

-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。

# tar -cf all.tar *.jpg
这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。

# tar -rf all.tar *.gif
这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。

# tar -uf all.tar logo.gif
这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。

# tar -tf all.tar
这条命令是列出all.tar包中所有文件,-t是列出文件的意思

# tar -xf all.tar
这条命令是解出all.tar包中所有文件,-x是解开的意思

压缩
tar –cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg
tar –czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar –cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar –cZf jpg.tar.Z *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for Linux
zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux

解压
tar –xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2 //解压 tar.bz2
tar –xZvf file.tar.Z //解压tar.Z
unrar e file.rar //解压rar
unzip file.zip //解压zip

总结
1、*.tar 用 tar –xvf 解压
2、*.gz 用 gzip -d或者gunzip 解压
3、*.tar.gz和*.tgz 用 tar –xzf 解压
4、*.bz2 用 bzip2 -d或者用bunzip2 解压
5、*.tar.bz2用tar –xjf 解压
6、*.Z 用 uncompress 解压
7、*.tar.Z 用tar –xZf 解压
8、*.rar 用 unrar e解压
9、*.zip 用 unzip 解压

全站图片src添加前缀JS方法

全站图片src添加前缀JS方法

<script type="text/javascript">
window.onload=function(){
var imgs = document.getElementsByTagName('img');
for(var i = 0;imgs[i];i++){
var thttp = imgs[i].getAttribute('src').indexOf("http");
var tok = imgs[i].getAttribute('src').indexOf("//");
if(thttp == -1 || tok == -1) {imgs[i].setAttribute('src', 'https://www.yingzi.biz/' + (imgs[i].getAttribute('src') || ''));}
}
}

一定用setAttribute,getAttribute,切忌莫直接用imgs[i].src = 'http//aaa/' + imgs[i].src

CentOS Linux服务器安全设置

引言:

我们必须明白:最小的权限+最少的服务=最大的安全

所以,无论是配置任何服务器,我们都必须把不用的服务关闭、把系统权限设置到最小话,这样才能保证服务器最大的安全。下面是CentOS服务器安全设置,供大家参考。

一、注释掉系统不需要的用户和用户组
注意:不建议直接删除,当你需要某个用户时,自己重新添加会很麻烦。
cp  /etc/passwd  /etc/passwdbak   #修改之前先备份
vi /etc/passwd  #编辑用户,在前面加上#注释掉此行
#adm:x:3:4:adm:/var/adm:/sbin/nologin
#lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
#sync:x:5:0:sync:/sbin:/bin/sync
#shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
#halt:x:7:0:halt:/sbin:/sbin/halt
#uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
#operator:x:11:0:operator:/root:/sbin/nologin
#games:x:12:100:games:/usr/games:/sbin/nologin
#gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
#ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin    #注释掉ftp匿名账号
cp /etc/group   /etc/groupbak   #修改之前先备份
vi /etc/group  #编辑用户组,在前面加上#注释掉此行
#adm:x:4:root,adm,daemon
#lp:x:7:daemon,lp
#uucp:x:14:uucp
#games:x:20:
#dip:x:40:
二、关闭系统不需要的服务
service acpid stop  chkconfig acpid off   #停止服务,取消开机启动  #电源进阶设定,常用在 Laptop 上
service autofs stop  chkconfig autofs off  #停用自动挂载档桉系统与週边装置
service bluetooth stop  chkconfig  bluetooth  off   #停用Bluetooth蓝芽
service cpuspeed stop  chkconfig  cpuspeed  off   #停用控制CPU速度主要用来省电
service cups stop   chkconfig cups off    #停用 Common UNIX Printing System 使系统支援印表机
service ip6tables stop  chkconfig ip6tables off   #禁止IPv6
####################################################################################################
如果要恢复某一个服务,可以执行下面操作
service acpid start  chkconfig acpid on
三、禁止非root用户执行/etc/rc.d/init.d/下的系统命令
chmod -R 700 /etc/rc.d/init.d/*
chmod -R 777 /etc/rc.d/init.d/*    #恢复默认设置

四、给下面的文件加上不可更改属性,从而防止非授权用户获得权限
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshadow
chattr +i /etc/services    #给系统服务端口列表文件加锁,防止未经许可的删除或添加服务
lsattr  /etc/passwd   /etc/shadow  /etc/group  /etc/gshadow   /etc/services   #显示文件的属性
注意:执行以上权限修改之后,就无法添加删除用户了。
如果再要添加删除用户,需要先取消上面的设置,等用户添加删除完成之后,再执行上面的操作
chattr -i /etc/passwd     #取消权限锁定设置
chattr -i /etc/shadow
chattr -i /etc/group
chattr -i /etc/gshadow
chattr -i /etc/services   #取消系统服务端口列表文件加锁
现在可以进行添加删除用户了,操作完之后再锁定目录文件
五、限制不同文件的权限
chattr +a .bash_history           #避免删除.bash_history或者重定向到/dev/null
chattr +i .bash_history
chmod 700 /usr/bin                恢复  chmod 555 /usr/bin
chmod 700 /bin/ping              恢复  chmod 4755 /bin/ping
chmod 700 /usr/bin/vim         恢复  chmod 755 /usr/bin/vim
chmod 700 /bin/netstat          恢复  chmod 755 /bin/netstat
chmod 700 /usr/bin/tail          恢复  chmod 755 /usr/bin/tail
chmod 700 /usr/bin/less         恢复  chmod 755 /usr/bin/less
chmod 700 /usr/bin/head       恢复  chmod 755 /usr/bin/head
chmod 700 /bin/cat                恢复  chmod 755 /bin/cat
chmod 700 /bin/uname          恢复  chmod 755 /bin/uname
chmod 500 /bin/ps                 恢复  chmod 755 /bin/ps
六、禁止使用Ctrl+Alt+Del快捷键重启服务器
cp /etc/inittab  /etc/inittabbak
vi /etc/inittab    #注释掉下面这一行
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
七、使用yum update更新系统时不升级内核,只更新软件包

由于系统与硬件的兼容性问题,有可能升级内核后导致服务器不能正常启动,这是非常可怕的,没有特别的需要,建议不要随意升级内核。
cp /etc/yum.conf    /etc/yum.confbak
1、修改yum的配置文件 vi /etc/yum.conf  在[main]的最后添加 exclude=kernel*
2、直接在yum的命令后面加上如下的参数:
yum --exclude=kernel* update
查看系统版本  cat /etc/issue
查看内核版本  uname -a
八、关闭Centos自动更新
chkconfig --list yum-updatesd  #显示当前系统状态
yum-updatesd    0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
service yum-updatesd stop      #关闭  开启参数为start
停止 yum-updatesd:                                        [确定]
service yum-updatesd status   #查看是否关闭
yum-updatesd 已停
chkconfig --level 35 yum-updatesd off  #禁止开启启动(系统模式为3、5)
chkconfig yum-updatesd off  #禁止开启启动(所有启动模式全部禁止)
chkconfig --list yum-updatesd  #显示当前系统状态
yum-updatesd    0:关闭  1:关闭  2:启用  3:关闭  4:启用  5:关闭  6:关闭
九、关闭多余的虚拟控制台
我们知道从控制台切换到 X 窗口,一般采用 Alt-F7 ,为什么呢?因为系统默认定义了 6 个虚拟控制台,
所以 X 就成了第7个。实际上,很多人一般不会需要这么多虚拟控制台的,修改/etc/inittab ,注释掉那些你不需要的。
cp  /etc/inittab  /etc/inittabbak
vi /etc/inittab
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
#2:2345:respawn:/sbin/mingetty tty2
#3:2345:respawn:/sbin/mingetty tty3
#4:2345:respawn:/sbin/mingetty tty4
#5:2345:respawn:/sbin/mingetty tty5
#6:2345:respawn:/sbin/mingetty tty6
十、删除MySQL历史记录

用户登陆数据库后执行的SQL命令也会被MySQL记录在用户目录的.mysql_history文件里。
如果数据库用户用SQL语句修改了数据库密码,也会因.mysql_history文件而泄漏。
所以我们在shell登陆及备份的时候不要在-p后直接加密码,而是在提示后再输入数据库密码。
另外这两个文件我们也应该不让它记录我们的操作,以防万一。
cd
cp .bash_history  .bash_historybak  #备份
cp .mysql_history .mysql_historybak
rm .bash_history .mysql_history
ln -s /dev/null .bash_history
ln -s /dev/null .mysql_history
十一、修改history命令记录
cp /etc/profile   /etc/profilebak
vi /etc/profile
找到 HISTSIZE=1000 改为 HISTSIZE=50
十二、隐藏服务器系统信息
在缺省情况下,当你登陆到linux系统,它会告诉你该linux发行版的名称、版本、内核版本、服务器的名称。
为了不让这些默认的信息泄露出来,我们要进行下面的操作,让它只显示一个"login:"提示符。
删除/etc/issue和/etc/issue.net这两个文件,或者把这2个文件改名,效果是一样的。
mv  /etc/issue /etc/issuebak
mv  /etc/issue.net   /etc/issue.netbak
十三、优化Linux内核参数
cp /etc/sysctl.conf  /etc/sysctl.confbak
vi /etc/sysctl.conf    #在文件末尾添加以下内容

net.ipv4.ip_forward = 1 #修改为1

net.core.somaxconn = 262144

net.core.netdev_max_backlog = 262144

net.core.wmem_default = 8388608

net.core.rmem_default = 8388608

net.core.rmem_max = 16777216

net.core.wmem_max = 16777216

net.ipv4.netfilter.ip_conntrack_max = 131072

net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180

net.ipv4.route.gc_timeout = 20

net.ipv4.ip_conntrack_max = 819200

net.ipv4.ip_local_port_range = 10024  65535

net.ipv4.tcp_retries2 = 5

net.ipv4.tcp_fin_timeout = 30

net.ipv4.tcp_syn_retries = 1

net.ipv4.tcp_synack_retries = 1

net.ipv4.tcp_timestamps = 0

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_tw_len = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_keepalive_time = 120

net.ipv4.tcp_keepalive_probes = 3

net.ipv4.tcp_keepalive_intvl = 15

net.ipv4.tcp_max_tw_buckets = 36000

net.ipv4.tcp_max_orphans = 3276800

net.ipv4.tcp_max_syn_backlog = 262144

net.ipv4.tcp_wmem = 8192 131072 16777216

net.ipv4.tcp_rmem = 32768 131072 16777216

net.ipv4.tcp_mem = 94500000 915000000 927000000

/sbin/sysctl -p   #使配置立即生效

十四、CentOS 系统优化
cp  /etc/profile  /etc/profilebak2
vi /etc/profile      #在文件末尾添加以下内容
ulimit -c unlimited
ulimit -s unlimited
ulimit -SHn 65535
ulimit -S -c 0
export LC_ALL=C
source  /etc/profile    #使配置立即生效
ulimit -a    #显示当前的各种用户进程限制
十五、服务器禁止ping
cp  /etc/rc.d/rc.local  /etc/rc.d/rc.localbak
vi  /etc/rc.d/rc.local        #在文件末尾增加下面这一行
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
参数0表示允许   1表示禁止

至此,CentOS Linux服务器安全设置基本完成,以上设置经过笔者实战测试(CentOS-5.5-x86_64)完全可用,更多的安全设置以及服务器优化,还请大家自行测试。

系统运维  www.osyunwei.com  温馨提醒:qihang01原创内容©版权所有,转载请注明出处及原文链接

原文链接:http://www.osyunwei.com/archives/754.html

virtualbox桥接网络配置--CentOS

进入centOS系统后主要有三个文件需要配置:
1、修改ip地址

使用命令 vi /etc/sysconfig/newwork-scripts/ifcfg-eth0 修改该文件内容如下

DEVICE="eth0"
BOOTPROTO="static" 这里改为使用静态ip
HWADDR="08:00:27:0C:33:8F"
NM_CONTROLLED="yes"
ONBOOT="yes" 设置为自动启动
TYPE="Ethernet"
UUID="f4adafbc-322d-4dc8-b549-4291f1c04f01"
IPADDR=192.168.137.101 设置该虚拟机的ip地址,要与宿主机在一个网段,但是不能重名
NETMASK=255.255.255.0 设置子网掩码
#GATEWAY=192.168.137.1 设置网关,也就是

2、修改网关

使用命令:vi /etc/sysconfig/network 修改该文件内容如下:

NETWORKING=yes
HOSTNAME=localhost.localdomain
GATEWAY=192.168.137.1 这里设置网关,也就是那个虚拟网卡的ip

3、修改DNS

使用命令:vi /ect/resolv.conf 修改该文件内容如下:

nameserver 192.168.137.1 增加一个域名服务器

最后重启一下network服务就ok了,使用命令service network restart.

Debian 8(jessie)下设置系统启动直接进入命令行,无GUI

修改grub项

sudo vi /etc/default/grub
修改其中三项
...
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX=""
...
#GRUB_TERMINAL=console
...
#GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX="text"
...
GRUB_TERMINAL=console
更新grub
sudo update-grub
设置systemd
sudo systemctl set-default multi-user.target
重启见效

asp版jtbc本地iis环境通用配置

一、网站

1.点击->默认文档

最上方添加index.asp

2.点击->asp

2.1打开调试属性

将错误发送到浏览器 True

2.1打开行为

启用父路径 True

二、应用池

1.点击->高级设置

打开常规

启用32位应用程序 True

三、权限

1.打开C:Windows

点击->temp文件夹

点击->安全

点击->编辑

点击->添加

添加Everyone用户,赋予完全控制权限

设置IIS_USRS完全控制权限

设置当前登录用户,赋予完全控制权限

2.打开文件夹选项

将“简单共享”去掉。

四、其它设置

1.重新注册一下ADODB.Stream组件
打开电脑运行 Win+R
regsvr32 C:Progra~1Common~1Systemadomsado15.dll

通过以上设置,asp版jtbc本地iis环境基本配置完毕,出现错误也可以根据实际情况修改。

如果是服务器配置,建议把权限修改中的完全控制调整为修改即可。

wordpress函数query_posts中posts_per_page的值无效的解决方法

wordpress函数query_posts中posts_per_page的值无效的解决方法

原因:当后台设置-阅读里的文章数大于post_per_page 时,其值是无效的。
方法1 :把'posts_pre_page' => 1改为 'showposts' => 1

方法2:用wp_query() 函数来代替 query_posts()

方法3:在function.php定义特殊分类显示

function custom_posts_per_page($query){
if( is_category('wordpress-themes') && $query->is_main_query() ) {
$query->set('posts_per_page', 20);
}
}
add_action('pre_get_posts', 'custom_posts_per_page');

ecshop商品详情页添加上一个下一个商品导航方法

ecshop商品详情页添加上一个下一个商品导航方法

修改goos.php文件中代码

修改后如下:

/* 上一个商品下一个商品 */
$prev_gid = $db->getOne("SELECT goods_id FROM " .$ecs->table('goods'). " WHERE cat_id=" . $goods['cat_id'] . " AND goods_id > " . $goods['goods_id'] . " AND is_on_sale = 1 AND is_alone_sale = 1 AND is_delete = 0 LIMIT 1");
if (!empty($prev_gid))
{
$prev_good['url'] = build_uri('goods', array('gid' => $prev_gid), $goods['goods_name']);
$prev_good['goods_name'] = $db -> getOne("select goods_name from ".$ecs->table('goods')." where goods_id =".$prev_gid);
$smarty->assign('prev_good', $prev_good);//上一个商品
}
$next_gid = $db->getOne("SELECT max(goods_id) FROM " . $ecs->table('goods') . " WHERE cat_id=".$goods_info['cat_id']." AND goods_id < ".$goods_info['goods_id'] . " AND is_on_sale = 1 AND is_alone_sale = 1 AND is_delete = 0");
if (!empty($next_gid))
{
$next_good['url'] = build_uri('goods', array('gid' => $next_gid), $goods['goods_name']);
$next_good['goods_name'] = $db -> getOne("select goods_name from ".$ecs->table('goods')." where goods_id =".$next_gid);
$smarty->assign('next_good', $next_good);//下一个商品
}
模板中调用

<p style="margin: 5px 0;font-size: 12px;line-height: 1.3;">
{if $prev_good}
【上一个】<a href="{$prev_good.url}" title="{$prev_good.goods_name}" >{$prev_good.goods_name}</a>
{else}
【上一个】没有了
{/if}<br>
{if $next_good}
【下一个】<a href="{$next_good.url}" title="{$next_good.goods_name}">{$next_good.goods_name}</a>
{else}
【下一个】没有了
{/if}
</p>

刷新前台查看。