文章会有【原创】或者【转载】标示,部分来自Google Baidu的学习结果 {Java/PHP/Python/Ruby/Go}

整理Linux命令【原创】  


Liunx:
(debian、ubuntu)/(Fedora、Redhat)
# 标示最高权限root $标示部分权限拥有者。
遇到命令参数不知道的就 man cmd 或者是 unzip --help

logout 退出系统。
1:基础命令
A:su 切换用户,ls -la 显示目录,pwd 查看当前目录,进入目录(cd),删除(rm -rf),复制(cp a b),移动(mv * b dir),创建目录

(mkdir)
B:vi 的简单实用
C:ln 就是软链接,chmod -R 777 aaa 修改文件夹的权限。
D:diff a b 比较两个文件的不同

2:压缩文件命令
A:压缩文件tar czf aa.tar.gz 目录,解压文件tar xzvf aa.tar.gz  (c 创建一个新的文档, z用gzip来压缩, f 指定文件名吧,x 抽取

文件,v,显示进度)
B:压缩zip -q -r html.zip html,解压文件 unzip 目录

3:寻找文件的命令
find命令
find 指定目录 指定条件 指定动作
find . -name '*.php' 查找当前目录下的 .php的文件(find ./ruby/ -name '*.rb')
find ./ruby/ -name '*.rb' -ls 搜索并搜索其子目录下并展示详细信息。

locate命令

whereis命令
whereis php 寻找php,包括二进制文件、man、源代码文件

which命令(type php)
which php 寻找到php这个系统命令

grep
grep 'posix_getpid' jc.php 搜索在这个文件中有木有posix_getpid

4:sed

first
second
third
five
保存为123.txt

sed 是一种在线编辑器。
进入/root/shasha
sed '/second/p' 123.txt

sed -n '/second/p' 123.txt 打印所在行

sed '$a \
> oo \
> last line ' 123.txt

sed '1i phper.yang' 123.txt 在第一行插入
sed '3a four' 123.txt 在第三行后面插入four
sed '/five/i four' 123.txt 在five 面前插入four

sed '1,3d' 123.txt 删除一到三行

sed '$d' 123.txt 删除最后一行

sed '2d' 123.txt 删除第二行

sed '/^$/d' 123.txt 删除空行

sed '/^th/d' 123.txt 删除th开头的

sed 's/^..//' 123.txt 删除每行的前两个字符

sed 's/f/F/g' 123.txt 将所有的f替换成大写F

sed '1,2 s/d$/&dd/' 123.txt 在1-2行中,所有以d结尾字段后附加一个dd

sed '/first/ s/st/ST/' 123.txt 在含有first的行中,把st换成大写ST

sed 's/ /\t/g' yang.txt 将文中所有空格替换成TAB

sed 'y/five/six1/' 123.txt 通常用于大小写转换。

sed -n '/second/,/five/ p' 123.txt 输出second和five中间的数据,此处不加-n会出现重复

sed '/second/,/five/ s/i/IIII/' 123.txt 修改second和five中间的数据,用III替换i

sed -e '1d' -e 's/^sec/2nd/' 123.txt 多次编辑

sed '/second/r yang.txt' 123.txt 匹配上second后,在其后读入文件

sed '/second/w write' 123.txt cat write 匹配上second后把该行写入到文件

q提前退出,h和g暂存与取用,x暂存和互换


5:awk
echo `date +"%F %H:%M" -d "-5 min" | awk '{gsub(/-/,".");} {gsub(/:/," "); print }'`
awk最基本功能是在文件或字符串中基于指定规则浏览和抽取信息。
简单的
a,1,A,127.0.0.1
d,2,A,127.0.0.1
a,1,C,127.0.0.1

作为基本数据保存为test.txt
cat test.txt | awk '{print $1}' 打印第一排
cat test.txt | awk '{print $4}' 打印第四排ip
cat test.txt | awk '{print $4}' | sort 打印并排序
cat test.txt | awk '{print $4}' | sort | uniq 打印排序并去重
cat test.txt | awk '/192.168.0.2/ {print $1,$2,$3,$4}' 匹配出ip为192.168.0.2的这行数据
http://man.lupaworld.com/content/manage/ringkee/awk.htm
-F"," 文件本身的分隔符
-OFS 输入域分隔符,默认为一个空格
awk '{if($1=="b") print }' test.txt 如果$1 == b
awk '{if($5>600) print "JG:" $1 }' test.txt 如果$1 > 600
awk '{sum+=$5;num++;} END {print sum,num,sum/num;}' test.txt (500..+800.. = 3500, 6次,总数/6)
awk '/19[2|6]/ {print $4}' test.txt 匹配192,或者196的
awk 'END {print NR}' test.txt 总共有几行 8行
awk 'gsub(/^a/,"phper.yang") {print}' test.txt 把a开头的替换成phper.yang
awk 'BEGIN {print index("phper.yang","p")}' 查询o第一次出现的位置
awk '{print length($4)}' test.txt 打印出$4的字符的长度
awk 'BEGIN {print match("phper.yang",/y/)}' 查询y在phper.yang中的位置
awk 'BEGIN {print split("123#456#789", myarray, "#")}' 返回字符串数组元素个数
awk 'BEGIN {print substr("phper.yang",5,9)}'第5个字符开始,取9个字符
echo "65" | awk '{printf"%c\n",$0}' ( awk 'BEGIN {printf "%c\n",65}'/awk 'BEGIN {printf "%f\n",999}' ) A 字符串转换
awk -F"," '{print $1}' a.txt
awk -F"," 'BEGIN { OFS="%" } {print $1,$2}' a.txt 按照,号隔开,输出按%输出
awk -F"," '{print $1,"%",$2}' a.txt (awk -F"," '{print $1"%"$2}' a.txt)同楼上
cut -c 1-3 a.txt 打印 字段1,字段2 {-c:指定字符位置,从1到3个字符}
cut -f 1-3 -d, a.txt 分隔符是,打印1到3
cut -f 1,3 -d, a.txt 打印1,或者3

1. cat file1 file2 | sort | uniq (取出两个文件的并集(重复的行只保留一份))
2. cat file1 file2 | sort | uniq -d (取出两个文件的交集(只留下同时存在于两个文件中的文件))
3. cat file1 file2 | sort | uniq -u (删除交集,留下其他的行)
LANG=C sort file1 file2 | uniq 两个未排序文件的并集
LANG=C sort file1 file2 | uniq -d 两个未排序文件的交集
LANG=C sort file1 file1 file2 | uniq -u 两个未排序文件的差 集
LANG=C sort file1 file2 | uniq -u 两个未排序文件的对称差集
LANG=C comm file1 file2 | sed 's/^\t*//' 两个有序文件的并集
LANG=C comm -12 file1 file2 两个有序文件的交集
LANG=C comm -13 file1 file2 两个有序文件的差集
LANG=C comm -3 file1 file2 | sed 's/^\t*//' 两个有序文件的对称差集

6:其他常用命令
head head file 看头部的文件(head -n 2 test.txt)
tail 实时看一些文件 tail -f file
uniq 去重
sort 排序
wc–l file(计算文件行数),wc -w file(计算文件中的单词数),wc -c file(计算文件中的字符数)
ifconfig 查看ip
php aaa.php > c.txt 将结果生成到c.txt文件中
expr 2 "+" 3 计算2+3的结果。

对于ubuntu linux 系统安装
apt-get install xxx 安装
apt-get remove xxx 卸载
apt-cache search xxx 搜索

centos linux 是
yum -y install xxx 安装
yum remove xxx 卸载
yum search xxx 搜索

一般编译软件的方法是:
cd xxx 进入目录
./configure --prefix=路径
make 编译
make install 安装

Rsync 同步备份工具
安装
Ubuntu:apt-get install rsync
Centos:yum install rsync

Curl Wget命令

SQL:
基础
select * from tab where xxxx
1:a=10
2:a in (10,11,12)
3:a <= 10
4:a=10 and b>10
5: a = 10 or a =15
6: a like '%a%'...
7:a regexp '^[h]'

PHP:
A:简单的搜索
B:分词搜索

输入:我喜欢美女 = 我 喜欢 美女 我喜欢
简单的使用mysql 做词典 或者memcache 或者文本文件
将一个词语匹配出多个关键词