jojuniori
10/24/2016 - 6:39 PM

#Linux command

http://www.codingyun.com/article/24.html
https://help.aliyun.com/document_detail/25426.html?spm=5176.775974154.0.0.qoFFwq
# 虚拟内存
sudo dd if=/dev/zero of=/mnt/swap bs=1MB count=8192
sudo mkswap /mnt/swap
sudo swapon /mnt/swap
sudo free -m
sudo vi /etc/fstab # add line: /mnt/swap swap swap defaults 0 0

# 多域名
cd /etc/apache2/sites-available/
sudo vi flan.moem.cc.conf
<VirtualHost *:80>
	ServerAdmin admin@admin.com
	DocumentRoot /home/user/www/dir
	ServerName www.xxx.com
	ErrorLog ${APACHE_LOG_DIR}/www.xxx.com-error.log
	CustomLog ${APACHE_LOG_DIR}/www.xxx.com-access.log combined
</VirtualHost>

# 通过 a2ensite 激活虚拟主机配置
sudo a2ensite flan.moem.cc

# 查看所有激活的虚拟主机
ll /etc/apache2/sites-enabled/

# 注销虚拟主机配置
sudo a2dissite flan.moem.cc

#reload Apache 服务, 激活虚拟主机
sudo service apache2 reload
Linux系统中的wget是一个下载文件的工具,它用在命令行下。对于Linux用户是必不可少的工具,我们经常要下载一些软件或从远程服务器恢复备份到本地服务器。wget支持HTTP,HTTPS和FTP协议,可以使用HTTP代理。所谓的自动下载是指,wget可以在用户退出系统的之后在后台执行。这意味这你可以登录系统,启动一个wget下载任务,然后退出系统,wget将在后台执行直到任务完成,相对于其它大部分浏览器在下载大量数据时需要用户一直的参与,这省去了极大的麻烦。
wget 可以跟踪HTML页面上的链接依次下载来创建远程服务器的本地版本,完全重建原始站点的目录结构。这又常被称作”递归下载”。在递归下载的时候,wget 遵循Robot Exclusion标准(/robots.txt). wget可以在下载的同时,将链接转换成指向本地文件,以方便离线浏览。
wget 非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性.如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。
1.命令格式:
wget [参数] [URL地址]
2.命令功能:
用于从网络上下载资源,没有指定目录,下载资源回默认为当前目录。wget虽然功能强大,但是使用起来还是比较简单:
1)支持断点下传功能;这一点,也是网络蚂蚁和FlashGet当年最大的卖点,现在,Wget也可以使用此功能,那些网络不是太好的用户可以放心了;
2)同时支持FTP和HTTP下载方式;尽管现在大部分软件可以使用HTTP方式下载,但是,有些时候,仍然需要使用FTP方式下载软件;
3)支持代理服务器;对安全强度很高的系统而言,一般不会将自己的系统直接暴露在互联网上,所以,支持代理是下载软件必须有的功能;
4)设置方便简单;可能,习惯图形界面的用户已经不是太习惯命令行了,但是,命令行在设置上其实有更多的优点,最少,鼠标可以少点很多次,也不要担心是否错点鼠标;
5)程序小,完全免费;程序小可以考虑不计,因为现在的硬盘实在太大了;完全免费就不得不考虑了,即使网络上有很多所谓的免费软件,但是,这些软件的广告却不是我们喜欢的。
3.命令参数:
启动参数:
-V, –version 显示wget的版本后退出
-h, –help 打印语法帮助
-b, –background 启动后转入后台执行
-e, –execute=COMMAND 执行`.wgetrc’格式的命令,wgetrc格式参见/etc/wgetrc或~/.wgetrc
记录和输入文件参数:
-o, –output-file=FILE 把记录写到FILE文件中
-a, –append-output=FILE 把记录追加到FILE文件中
-d, –debug 打印调试输出
-q, –quiet 安静模式(没有输出)
-v, –verbose 冗长模式(这是缺省设置)
-nv, –non-verbose 关掉冗长模式,但不是安静模式
-i, –input-file=FILE 下载在FILE文件中出现的URLs
-F, –force-html 把输入文件当作HTML格式文件对待
-B, –base=URL 将URL作为在-F -i参数指定的文件中出现的相对链接的前缀
–sslcertfile=FILE 可选客户端证书
–sslcertkey=KEYFILE 可选客户端证书的KEYFILE
–egd-file=FILE 指定EGD socket的文件名
下载参数:
–bind-address=ADDRESS 指定本地使用地址(主机名或IP,当本地有多个IP或名字时使用)
-t, –tries=NUMBER 设定最大尝试链接次数(0 表示无限制).
-O –output-document=FILE 把文档写到FILE文件中
-nc, –no-clobber 不要覆盖存在的文件或使用.#前缀
-c, –continue 接着下载没下载完的文件
–progress=TYPE 设定进程条标记
-N, –timestamping 不要重新下载文件除非比本地文件新
-S, –server-response 打印服务器的回应
–spider 不下载任何东西
-T, –timeout=SECONDS 设定响应超时的秒数
-w, –wait=SECONDS 两次尝试之间间隔SECONDS秒
–waitretry=SECONDS 在重新链接之间等待1…SECONDS秒
–random-wait 在下载之间等待0…2*WAIT秒
-Y, –proxy=on/off 打开或关闭代理
-Q, –quota=NUMBER 设置下载的容量限制
–limit-rate=RATE 限定下载输率
目录参数:
-nd –no-directories 不创建目录
-x, –force-directories 强制创建目录
-nH, –no-host-directories 不创建主机目录
-P, –directory-prefix=PREFIX 将文件保存到目录 PREFIX/…
–cut-dirs=NUMBER 忽略 NUMBER层远程目录
HTTP 选项参数:
–http-user=USER 设定HTTP用户名为 USER.
–http-passwd=PASS 设定http密码为 PASS
-C, –cache=on/off 允许/不允许服务器端的数据缓存 (一般情况下允许)
-E, –html-extension 将所有text/html文档以.html扩展名保存
–ignore-length 忽略 `Content-Length’头域
–header=STRING 在headers中插入字符串 STRING
–proxy-user=USER 设定代理的用户名为 USER
–proxy-passwd=PASS 设定代理的密码为 PASS
–referer=URL 在HTTP请求中包含 `Referer: URL’头
-s, –save-headers 保存HTTP头到文件
-U, –user-agent=AGENT 设定代理的名称为 AGENT而不是 Wget/VERSION
–no-http-keep-alive 关闭 HTTP活动链接 (永远链接)
–cookies=off 不使用 cookies
–load-cookies=FILE 在开始会话前从文件 FILE中加载cookie
–save-cookies=FILE 在会话结束后将 cookies保存到 FILE文件中
FTP 选项参数:
-nr, –dont-remove-listing 不移走 `.listing’文件
-g, –glob=on/off 打开或关闭文件名的 globbing机制
–passive-ftp 使用被动传输模式 (缺省值).
–active-ftp 使用主动传输模式
–retr-symlinks 在递归的时候,将链接指向文件(而不是目录)
递归下载参数:
-r, –recursive 递归下载--慎用!
-l, –level=NUMBER 最大递归深度 (inf 或 0 代表无穷)
–delete-after 在现在完毕后局部删除文件
-k, –convert-links 转换非相对链接为相对链接
-K, –backup-converted 在转换文件X之前,将之备份为 X.orig
-m, –mirror 等价于 -r -N -l inf -nr
-p, –page-requisites 下载显示HTML文件的所有图片
递归下载中的包含和不包含(accept/reject):
-A, –accept=LIST 分号分隔的被接受扩展名的列表
-R, –reject=LIST 分号分隔的不被接受的扩展名的列表
-D, –domains=LIST 分号分隔的被接受域的列表
–exclude-domains=LIST 分号分隔的不被接受的域的列表
–follow-ftp 跟踪HTML文档中的FTP链接
–follow-tags=LIST 分号分隔的被跟踪的HTML标签的列表
-G, –ignore-tags=LIST 分号分隔的被忽略的HTML标签的列表
-H, –span-hosts 当递归时转到外部主机
-L, –relative 仅仅跟踪相对链接
-I, –include-directories=LIST 允许目录的列表
-X, –exclude-directories=LIST 不被包含目录的列表
-np, –no-parent 不要追溯到父目录
wget -S –spider url 不下载只显示过程
4.使用实例:
实例1:使用wget下载单个文件
命令:
wget http://www.minjieren.com/wordpress-3.1-zh_CN.zip
说明:
以下的例子是从网络下载一个文件并保存在当前目录,在下载的过程中会显示进度条,包含(下载完成百分比,已经下载的字节,当前下载速度,剩余下载时间)。
实例2:使用wget -O下载并以不同的文件名保存
命令:
:	wget -O wordpress.zip http://www.minjieren.com/download.aspx?id=1080
说明:
wget默认会以最后一个符合”/”的后面的字符来命令,对于动态链接的下载通常文件名会不正确。
错误:下面的例子会下载一个文件并以名称download.aspx?id=1080保存
wget http://www.minjieren.com/download?id=1
即使下载的文件是zip格式,它仍然以download.php?id=1080命令。
正确:为了解决这个问题,我们可以使用参数-O来指定一个文件名:
wget -O wordpress.zip http://www.minjieren.com/download.aspx?id=1080
实例3:使用wget –limit -rate限速下载
命令:
wget --limit-rate=300k http://www.minjieren.com/wordpress-3.1-zh_CN.zip
说明:
当你执行wget的时候,它默认会占用全部可能的宽带下载。但是当你准备下载一个大文件,而你还需要下载其它文件时就有必要限速了。
实例4:使用wget -c断点续传
命令:
wget -c http://www.minjieren.com/wordpress-3.1-zh_CN.zip
说明:
使用wget -c重新启动下载中断的文件,对于我们下载大文件时突然由于网络等原因中断非常有帮助,我们可以继续接着下载而不是重新下载一个文件。需要继续中断的下载时可以使用-c参数。
实例5:使用wget -b后台下载
命令:
wget -b http://www.minjieren.com/wordpress-3.1-zh_CN.zip
说明:
对于下载非常大的文件的时候,我们可以使用参数-b进行后台下载。
wget -b http://www.minjieren.com/wordpress-3.1-zh_CN.zip
Continuing in background, pid 1840.
Output will be written to `wget-log'.
你可以使用以下命令来察看下载进度:
tail -f wget-log
实例6:伪装代理名称下载
命令:
wget --user-agent="Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16" http://www.minjieren.com/wordpress-3.1-zh_CN.zip
说明:
有些网站能通过根据判断代理名称不是浏览器而拒绝你的下载请求。不过你可以通过–user-agent参数伪装。
实例7:使用wget –spider测试下载链接
命令:
wget --spider URL
说明:
当你打算进行定时下载,你应该在预定时间测试下载链接是否有效。我们可以增加–spider参数进行检查。
wget --spider URL
如果下载链接正确,将会显示
wget --spider URL
Spider mode enabled. Check if remote file exists.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Remote file exists and could contain further links,
but recursion is disabled -- not retrieving.
这保证了下载能在预定的时间进行,但当你给错了一个链接,将会显示如下错误
wget --spider url
Spider mode enabled. Check if remote file exists.
HTTP request sent, awaiting response... 404 Not Found
Remote file does not exist -- broken link!!!
你可以在以下几种情况下使用spider参数:
定时下载之前进行检查
间隔检测网站是否可用
检查网站页面的死链接
实例8:使用wget –tries增加重试次数
命令:
wget --tries=40 URL
说明:
如果网络有问题或下载一个大文件也有可能失败。wget默认重试20次连接下载文件。如果需要,你可以使用–tries增加重试次数。
实例9:使用wget -i下载多个文件
命令:
wget -i filelist.txt
说明:
首先,保存一份下载链接文件
cat > filelist.txt
url1
url2
url3
url4
接着使用这个文件和参数-i下载
实例10:使用wget –mirror镜像网站
命令:
wget --mirror -p --convert-links -P ./LOCAL URL
说明:
下载整个网站到本地。
–miror:开户镜像下载
-p:下载所有为了html页面显示正常的文件
–convert-links:下载后,转换成本地的链接
-P ./LOCAL:保存所有文件和目录到本地指定目录
实例11:使用wget –reject过滤指定格式下载
命令:
wget --reject=gif ur
说明:
下载一个网站,但你不希望下载图片,可以使用以下命令。
实例12:使用wget -o把下载信息存入日志文件
命令:
wget -o download.log URL
说明:
不希望下载信息直接显示在终端而是在一个日志文件,可以使用
实例13:使用wget -Q限制总下载文件大小
命令:
wget -Q5m -i filelist.txt
说明:
当你想要下载的文件超过5M而退出下载,你可以使用。注意:这个参数对单个文件下载不起作用,只能递归下载时才有效。
实例14:使用wget -r -A下载指定格式文件
命令:
wget -r -A.pdf url
说明:
可以在以下情况使用该功能:
下载一个网站的所有图片
下载一个网站的所有视频
下载一个网站的所有PDF文件
实例15:使用wget FTP下载
命令:
wget ftp-url
wget --ftp-user=USERNAME --ftp-password=PASSWORD url
说明:
可以使用wget来完成ftp链接的下载。
使用wget匿名ftp下载:
wget ftp-url
使用wget用户名和密码认证的ftp下载
wget --ftp-user=USERNAME --ftp-password=PASSWORD url
备注:编译安装
使用如下命令编译安装: 
# tar zxvf wget-1.9.1.tar.gz 
# cd wget-1.9.1 
# ./configure 
# make 
# make install 
语法 
	unzip(选项)(参数)

选项
	-c:将解压缩的结果显示到屏幕上,并对字符做适当的转换;
	-f:更新现有的文件;
	-l:显示压缩文件内所包含的文件;
	-p:与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换;
	-t:检查压缩文件是否正确;
	-u:与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中;
	-v:执行时显示详细的信息;
	-z:仅显示压缩文件的备注文字;
	-a:对文本文件进行必要的字符转换;
	-b:不要对文本文件进行字符转换;
	-C:压缩文件中的文件名称区分大小写;
	-j:不处理压缩文件中原有的目录路径;
	-L:将压缩文件中的全部文件名改为小写;
	-M:将输出结果送到

参数
	压缩包:指定要解压的“.zip”压缩包。

实例
	将压缩文件text.zip在当前目录下解压缩。 
	unzip test.zip 

	将压缩文件text.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件。 
	unzip -n test.zip -d /tmp 

	查看压缩文件目录,但不解压。 
	unzip -v test.zip 

	将压缩文件test.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令覆盖原先的文件。 
	unzip -o test.zip -d tmp/


=============================================================================

1.zip命令
zip -r myfile.zip ./*
将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件.

2.unzip命令
unzip -o -d /home/sunny myfile.zip
把myfile.zip文件解压到 /home/sunny/
-o:不提示的情况下覆盖文件;
-d:-d /home/sunny 指明将文件解压缩到/home/sunny目录下;

3.其他
zip -d myfile.zip smart.txt
删除压缩文件中smart.txt文件
zip -m myfile.zip ./rpm_info.txt
向压缩文件中myfile.zip中添加rpm_info.txt文件
-------------------------------------------------------------------------------


要使用 zip 来压缩文件,在 shell 提示下键入下面的命令:

zip -r filename.zip filesdir
在这个例子里,filename.zip 代表你创建的文件,filesdir 代表你想放置新 zip 文件的目录。-r 选项指定你想递归地(recursively)包括所有包括在 filesdir 目录中的文件。
要抽取 zip 文件的内容,键入以下命令:
unzip filename.zip
你可以使用 zip 命令同时处理多个文件和目录,方法是将它们逐一列出,并用空格间隔:

zip -r filename.zip file1 file2 file3 /usr/work/school 
上面的命令把 file1、file2、 file3、以及 /usr/work/school 目录的内容(假设这个目录存在)压缩起来,然后放入 filename.zip 文件中。
顶
0
安装python-software-properties

$sudo apt-get install python-software-properties
$sudo apt-get install software-properties-common
首先添加ppa

$ sudo add-apt-repository ppa:webupd8team/java
然后更新系统

$ sudo apt-get update
最后开始安装

$ sudo apt-get install oracle-java8-installer
$ java -version
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) Server VM (build 25.5-b02, mixed mode)
java版本切换

sudo update-java-alternatives -s java-8-oracle
ubuntu apache不显示出错信息解决办法[喝小酒的网摘]http://blog.hehehehehe.cn/a/1063.htm

使用PHP Apache编程,在缺省设置下,PHP编码错误是不会提示的。要显示出错信息方法如下:

vi /etc/php5/apache2/php.ini

将display_errors = Off修改为
display_errors = On

前输入新行
error_reporting = E_ALL | E_STRICT

然后保存。

修改Apache的 httpd.conf,
以我的 Ubuntu 为例, 这个文件在:/etc/apache2/  目录下,这是一个空白文件。
添加以下两行:
php_flag display_errors        on
php_value error_reporting       2039

然后保存。
重启Apache,就OK了。

/etc/init.d/apache2 reload
#启动一个名字为name的screen
screen -S name

#是列出所有的screen
screen -ls

#回到某个screen了
screen -r name && id

#乱开某个screen的链接
screen -d name && id

#开启新的 window
ctrl+a c

#回到前一个screen,在当前screen运行的程序不会停止
ctrl+a d

#在两个 window 间切换
ctrl+a ctrl+a 

#切换到下个 window
ctrl+a n

#前一个 window
ctrl+a p

#强行关闭当前的 window
ctrl+a K

#回到前一个screen,在当前screen运行的程序不会停止
ctrl+a d

#退出
exit
Linux中用 pwd 命令来查看”当前工作目录“的完整路径。 简单得说,每当你在终端进行操作时,你都会有一个当前工作目录。

在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的确切位置。

1.命令格式:

pwd [选项]

2.命令功能:

查看”当前工作目录“的完整路径

3.常用参数:

一般情况下不带任何参数

如果目录是链接时:

格式:pwd -P  显示出实际路径,而非使用连接(link)路径。

4.常用实例:

实例1:用 pwd 命令查看默认工作目录的完整路径

命令:

pwd

输出:

[root@localhost ~]# pwd
/root
[root@localhost ~]#
 
实例2:使用 pwd 命令查看指定文件夹

命令:

pwd

输出:

[root@localhost ~]# cd /opt/soft/
[root@localhost soft]# pwd 
/opt/soft
[root@localhost soft]#

实例三:目录连接链接时,pwd -P  显示出实际路径,而非使用连接(link)路径;pwd显示的是连接路径

命令:

pwd -P

输出:

[root@localhost soft]# cd /etc/init.d 
[root@localhost init.d]# pwd
/etc/init.d
[root@localhost init.d]# pwd -P
/etc/rc.d/init.d
[root@localhost init.d]#
 
实例4:/bin/pwd

命令:

/bin/pwd [选项]

选项:

-L 目录连接链接时,输出连接路径
-P 输出物理路径

输出:

[root@localhost init.d]# /bin/pwd 
/etc/rc.d/init.d
[root@localhost init.d]# /bin/pwd --help
[root@localhost init.d]# /bin/pwd -P
/etc/rc.d/init.d
[root@localhost init.d]# /bin/pwd -L
/etc/init.d
[root@localhost init.d]#

实例五:当前目录被删除了,而pwd命令仍然显示那个目录

 输出:

[root@localhost init.d]# cd /opt/soft
[root@localhost soft]# mkdir removed
[root@localhost soft]# cd removed/
[root@localhost removed]# pwd
/opt/soft/removed
[root@localhost removed]# rm ../removed -rf
[root@localhost removed]# pwd
/opt/soft/removed
[root@localhost removed]# /bin/pwd
/bin/pwd: couldn't find directory entry in “..” with matching i-node
[root@localhost removed]# cd 
[root@localhost ~]# pwd
/root
[root@localhost ~]#
# 安装FastCGI
sudo apt-get install spawn-fcgi

# 安装 Nginx
sudo apt-get install nginx 

# 配置文件
sudo vi /etc/nginx/sites-available/default

# 启动 nginx
nginx -c /etc/nginx/nginx.conf 

# 关闭 nginx
nginx -s stop

# 重读配置文件
nginx -s reload
pkill -HUP nginx

# 重新打开日志文件
nginx -s reopen
pkill -USR1 nginx

# 还可以下载 nginx RPM 包中的 /etc/init.d/nginx 文件,修改路径后即可使用:
service nginx {start|stop|status|restart|reload|configtest|}

# 重启Nginx
/etc/init.d/nginx restart

# ubuntu安装Nginx之后的文件结构大致为:

# 	所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在了/etc/nginx/sites-available下

# 	启动程序文件在/usr/sbin/nginx

# 	日志放在了/var/log/nginx中,分别是access.log和error.log

# 	并已经在/etc/init.d/下创建了启动脚本nginx

# 	默认的虚拟主机的目录设置在了/usr/share/nginx/html


# 安装PHP和MySQL
sudo apt-get install php5-cli php5-cgi mysql-server php5-mysql
一,rename命令批量修改文件后缀

1,ubuntu系统下
 

代码示例:
rename 's/\.c/\.h/'  ./*
把当前目录下的后缀名为.c的文件更改为.h的文件

2,centos 5.5系统下
 

代码示例:
rename .c  .h   *.c
把当前目录下的后缀名为.c的文件更改为.h的文件

二.shell 脚本 实现批量修改文件后缀
 

代码示例:
#!/bin/bash
#site www.jbxue.com
find ./ -name *.c  | while read i
do
        echo "$i";
        mv $i.c  $i.h
done
三.find  xargs 实现批量修改文件后缀
 

代码示例:
find ./ -name "*.c" | awk -F "." '{print $2}' | xargs -i -t mv ./{}.c  ./{}.h
注意,第三种方案是递归的更改,会更改当前目录下及其子目录下所有匹配文件。

本文来自:爱好Linux技术网
本文链接:http://www.ahlinux.com/start/cmd/720.html
du [-abcDhHklmsSx] [-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>] [--max-depth=<目录层数>][--help][--version][目录或文件]
常用参数:
-a或-all 为每个指定文件显示磁盘使用情况,或者为目录中每个文件显示各自磁盘使用情况。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或–total 除了显示目录或文件的大小外,同时也显示所有目录或文件的总和。
-D或–dereference-args 显示指定符号连接的源文件大小。
-h或–human-readable 以K,M,G为单位,提高信息的可读性。
-H或–si 与-h参数相同,但是K,M,G是以1000为换算单位,而不是以1024为换算单位。
-k或–kilobytes 以1024 bytes为单位。
-l或–count-links 重复计算硬件连接的文件。
-L<符号连接>或–dereference<符号连接> 显示选项中所指定符号连接的源文件大小。
-m或–megabytes 以1MB为单位。
-s或–summarize 仅显示总计,即当前目录的大小。
-S或–separate-dirs 显示每个目录的大小时,并不含其子目录的大小。
-x或–one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-X<文件>或–exclude-from=<文件> 在<文件>指定目录或文件。
–exclude=<目录或文件> 略过指定的目录或文件。
–max-depth=<目录层数> 超过指定层数的目录后,予以忽略。
–help 显示帮助。
–version 显示版本信息。

1> 要显示一个目录树及其每个子树的磁盘使用情况
du /home/linux
这在/home/linux目录及其每个子目录中显示了磁盘块数。
2> 要通过以1024字节为单位显示一个目录树及其每个子树的磁盘使用情况
du -k /home/linux
这在/home/linux目录及其每个子目录中显示了 1024 字节磁盘块数。
3> 以MB为单位显示一个目录树及其每个子树的磁盘使用情况
du -m /home/linux
这在/home/linux目录及其每个子目录中显示了 MB 磁盘块数。
4> 以GB为单位显示一个目录树及其每个子树的磁盘使用情况
du -g /home/linux
这在/home/linux目录及其每个子目录中显示了 GB 磁盘块数。
5>查看当前目录下所有目录以及子目录的大小:
du -h .
“.”代表当前目录下。也可以换成一个明确的路径
-h表示用K、M、G的人性化形式显示
6>查看当前目录下user目录的大小,并不想看其他目录以及其子目录:
du -sh user
-s表示总结的意思,即只列出一个总结的值
du -h --max-depth=0 user
--max-depth=n表示只深入到第n层目录,此处设置为0,即表示不深入到子目录。
7>列出user目录及其子目录下所有目录和文件的大小:
du -ah user
-a表示包括目录和文件
8>列出当前目录中的目录名不包括xyz字符串的目录的大小:
du -h --exclude='*xyz*'
9>想在一个屏幕下列出更多的关于user目录及子目录大小的信息:
du -0h user
-0(杠零)表示每列出一个目录的信息,不换行,而是直接输出下一个目录的信息。
10>只显示一个目录树的全部磁盘使用情况
du -s /home/linux

11>查看各文件夹大小:du -h --max-depth=1
#1 解压缩7z文件
7za x phpMyAdmin-3.3.8.1-all-languages.7z -r -o./
	# 参数含义:

	# x  代表解压缩文件,并且是按原始目录树解压(还有个参数 e 也是解压缩文件,但其会将所有文件都解压到根下,而不是自己原有的文件夹下)

	# phpMyAdmin-3.3.8.1-all-languages.7z  是压缩文件,这里我用phpadmin做测试。这里默认使用当前目录下的phpMyAdmin-3.3.8.1-all-languages.7z

	# -r 表示递归解压缩所有的子文件夹

	# -o 是指定解压到的目录,-o后是没有空格的,直接接目录。这一点需要注意。

#2 压缩文件/文件夹
7za a -t7z -r Mytest.7z /opt/phpMyAdmin-3.3.8.1-all-languages/*
	# 参数含义:
	# a  代表添加文件/文件夹到压缩包

	# -t 是指定压缩类型,这里定为7z,可不指定,因为7za默认压缩类型就是7z。

	# -r 表示递归所有的子文件夹

	# Mytest.7z 是压缩好后的压缩包名

	# /opt/phpMyAdmin-3.3.8.1-all-languages/*:是压缩目标。

	# 注意:7za不仅仅支持.7z压缩格式,还支持.tar.bz2等压缩类型的。如上所述,用-t指定即可。
#更改主机名
sudo vi /etc/hostname && vi /etc/hosts && reboot

#更新数据
sudo apt-get update

#安装htop监控软件 %& 后台运行程序 && unzip解压工具 && 树状图 && Fish && 7Z
sudo apt-get install htop screen unzip tree fish p7zip-full
chsh -s /usr/bin/fish

#安装PHP依赖环境
sudo apt-get install build-essential gcc g++ autoconf libiconv-hook-dev libmcrypt-dev libxml2-dev libmysqlclient-dev libcurl4-openssl-dev libjpeg8-dev libpng12-dev libfreetype6-dev libpcre3 libpcre3-dev

#安装PHP,Apache2,Mysql
sudo apt-get install Apache2 php5 libapache2-mod-php5 php5-dev mysql-server libapache2-mod-auth-mysql php5-mysql && /etc/init.d/apache2 restart

#更改Apache2配置
sudo vi /etc/apache2/apache2.conf
sudo vi /etc/apache2/sites-available/000-default.conf

#安装和配置FTP
sudo apt-get install vsftpd
#修改这个文件
sudo vi /etc/vsftpd.conf
	#禁止匿名访问
	anonymous_enable=NO
	#接受本地用户
	local_enable=YES
	#允许上传
	write_enable=YES
	#上传的文件的权限
	local_umask=022
	file_open_mode=0755
	#用户只能访问限制的目录
	chroot_local_user=YES
	chroot_list_enable=YES
	chroot_list_file=/etc/vsftpd.chroot_list
	#vsftpd.chroot_list里添加用户
	
#添加ftp用户
sudo useradd -d /home/ftp -M ftpuser && sudo passwd ftpuser
#改pam.d/vsftpd
sudo vi /etc/pam.d/vsftpd
	#注释掉 
	auth required pam_shells.so
#更改权限
mkdir /home/ftp && mkdir /home/ftp/upload && chown ftpuser:root /home/ftp/upload
#重启
sudo service vsftpd restart

#安装Java
apt-get install default-jdk

#安装Swoole
#wget https://github.com/swoole/swoole-src/archive/swoole-1.7.22-stable.tar.gz && tar -zxvf swoole-1.7.22-stable.tar.gz
#cd swoole-src-swoole-1.7.22-stable
#phpize && ./configure --enable-async-mysql && make && make install
# 系统
# 查看内核/操作系统/CPU信息
uname -a               

# 查看操作系统版本
head -n 1 /etc/issue   

# 查看CPU信息
cat /proc/cpuinfo      

# 查看计算机名
hostname               

# 列出所有PCI设备
lspci -tv              

# 列出所有USB设备
lsusb -tv              

# 列出加载的内核模块
lsmod                  

# 查看环境变量
env                    


# 资源
# 查看内存使用量和交换区使用量
free -m                

# 查看各分区使用情况
df -h                  

# 查看指定目录的大小
du -sh <目录名>        

# 查看内存总量
grep MemTotal /proc/meminfo   

# 查看空闲内存量
grep MemFree /proc/meminfo    

# 查看系统运行时间、用户数、负载
uptime                 

# 查看系统负载
cat /proc/loadavg      

# 查询网络端口占用情况 (-i参数表示网络链接,:80指明端口号,该命令会同时列出PID,方便kill)
lsof -i:80


# 磁盘和分区
# 查看挂接的分区状态
mount | column -t      

# 查看所有分区
fdisk -l               

# 查看所有交换分区
swapon -s              

(仅适用于IDE设备)
hdparm -i /dev/hda     # 查看磁盘参数

# 查看启动时IDE设备检测状况
dmesg | grep IDE       


# 网络
# 查看所有网络接口的属性
ifconfig               

# 查看防火墙设置
iptables -L            

# 查看路由表
route -n               

# 查看所有监听端口
netstat -lntp          

# 查看所有已经建立的连接
netstat -antp          

# 查看网络统计信息
netstat -s             

# 进程
# 查看所有进程
ps -ef                 

# 实时显示进程状态
top                    

# 用户
# 查看活动用户
w                      

# 查看指定用户信息
id <用户名>            

# 查看用户登录日志
last                   

# 查看系统所有用户
cut -d: -f1 /etc/passwd   

# 查看系统所有组
cut -d: -f1 /etc/group    

# 查看当前用户的计划任务
crontab -l             


# 服务
# 列出所有系统服务
chkconfig --list       

# 列出所有启动的系统服务
chkconfig --list | grep on    


# 程序
# 查看所有安装的软件包
rpm -qa

# 按时间列出文件
ls -alR --full-time * | grep "2016-?-?"

# 修改sudo权限
visudo

#列出进程
ps -e

#结束进程
kill id

#权限相关
#Ubuntu下修改目录权限命令如下:
chmod 600 name #(只有所有者有读和写的权限)
chmod 644 name #(所有者有读和写的权限,组用户只有读的权限)
chmod 700 name #(只有所有者有读和写以及执行的权限)
chmod 666 name #(每个人都有读和写的权限)
chmod 777 name #(每个人都有读和写以及执行的权限) 
#其中 name 指文件名,也可以是目录名。

#整个命令的形式是
#chmod ×××(所有者)×××(组用户)×××(其他用户)

#三位数的每一位都表示一个用户类型的权限设置。取值是0~7,即二进制的[000]~[111]。
#这个三位的二进制数的每一位分别表示读、写、执行权限。
#如000表示三项权限均无,而100表示只读。这样,我们就有了下面的对应:
#0 [000] 无任何权限
#4 [100] 只读权限
#6 [110] 读、写权限
#7 [111] 读、写、执行权限
	#更改所属用户
	chown root:root /home/ftp
	#更改权限
	chmod 755 /home/ftp
	#更改权限(包括子目录)
	chmod -R 777 ./
	
#查找文件
locate filename

#查看文件夹大小
du -h --max-depth=1

#列出已安装包
sudo dpkg -l
#重启Apache2
sudo /etc/init.d/apache2 restart

#重启FTP
sudo service vsftpd restart
#MC1.8
java -Xincgc -Xmx1G -jar forge-1.8-11.14.4.1577-universal.jar

#Steam install
adduser steam && su - steam
mkdir steamcmd && cd /home/steam/steamcmd && wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz && tar -xvzf steamcmd_linux.tar.gz && sudo apt-get install lib32gcc1 && cd /home/steam/steamcmd

#PZServer
	#install
	./steamcmd.sh +login anonymous +force_install_dir /home/steam/PZServer +app_update 380870 validate +exit

#NS2Server --http://wiki.unknownworlds.com/ns2/Dedicated_Server
	#Install
	#Ubuntu 32-bit
	apt-get install speex:i386 libgtk2.0-0:i386
	#Ubuntu 64-bit
	apt-get install speex:i386 libgtk2.0-0:i386 lib32gcc1
	./steamcmd.sh +login username password +force_install_dir /home/steam/NSServer +app_update 4940 validate +exit
	
	#Start
	./server_linux32 -name " China #1月之殿小型足球场 Moem.cc 7v7 +4" -port 27019 -map ns2_tram -limit 18 -config_path "/home/steam/ns2server_configs" -logdir "/home/steam/ns2server_logs" -modstorage "/home/steam/ns2server_mods" -mods "706d242 812f004 b7149f9 c6fbbb0 23aa9f96"
	
#MCPEServer --http://www.pocketmine.net/
	#Install
	sudo apt-get install perl gcc make automake libtool autoconf m4 gcc-multilib && wget -q -O - http://get.pocketmine.net/ | bash
	
	#Start
	./start.sh