基本技能(一)
拖了好久的东西终于基本上完事了,做个总结吧
基础篇
1.远程从linux连接到服务器ssh 用户名@服务器地址
ssh应该是密钥的意思吧。。。。。
phoebe是我的账户名 后面是服务器的地址
出现绿色的phoebe@NLP~就是登陆服务器成功了
在这里你可以对服务器中的文件进行操作
如果你想从本地上传文传文件到服务器一定记得先exit,这样才是到了本地
之后scp -r 本地目录的地址 账户名@服务器地址:想在服务器上copy的地址
登陆服务器可以看到上传进去了
这里的-r是整个目录文件 单源文件是不可以的
具体的scp方法可以看http://www.cnblogs.com/hitwtx/archive/2011/11/16/2251254.html
2.Linux基本bash命令
a) 查看文件大小,内存大小,cpu信息,硬盘空间等等
显示当前目录所有文件大小的命令ls -lht
在命令框 输入命令:ls -lht 将会一一列出当前目录下所有文件的大小,以及所有文件大小的统计总和。或者直接打入ll命令
使用du -sh * 命令也可以列出当前文件以及文件夹的大小。这个命令要注意:sh与*之前要有个空格的。列出home目录所有文件大小的总和命令为:du -s /home或du -sh /home
查询具体的文件大小首先你要找到该文件,然后使用du -s ,du -sh,ls -lh,都是可以看到该文件的大小的。不过这些命令后面需要带文件名,比如查找文件名为backup.sh文件的大小,命令为:du -s backup.sh ,ls -lh backup.sh
详细的可以看这里:http://jingyan.baidu.com/article/86fae346b5f1623c49121ae9.html
b) 查看目前运行程序情况,剩余内存,kill程序
top -c #任务管理器
free -m #查看内存使用情况
kill -9 2312 (说明:强制杀死进程 kill -9 pid )
df -h #查看磁盘使用情况
look: http://www.php-note.com/article/detail/629
c) 运行一个程序
可以运行java c shell脚本 awk。。。什么都行
运行c首先要编译 java也要先javac 运行shell 就直接sh 123.sh
look: blog.csdn.net/zr_lang/article/details/17080335
d) 写一个脚本,使用上for, if等语句
首先在命令行中建立一个.sh脚本vim for.sh
在这里的变量都是不用定义类型的 比如说for中的i变量如果要变量i具体的值就给他取一个$号
注意这里的单引号是键盘左上角Esc下面的那个。
看这个程序
运行之后从键盘read一个数字a
这里的条件判断是(( ))这个样子的 记住就行了
每个if后都要有个结束标志 就是把if倒过来fi
我觉得wiki.jikexueyuan.com/project/linux/shell-scipt-two.html写的挺好的
就先说到这里吧,大家可以看那个网址里写的挺好的。
在后面的内容我也会继续分析shell脚本带来的好处和语法。
e) sed命令, grep命令
sed,grep都是文本处理工具
sed:Stream EDitor,流编辑器,默认只处理模式空间,不处理原数据,如果你处理的数据是针对行进行处理的,可以使用sed;
就是说你对文本内容进行增加或者删除替换都不会影响原来的文本内容
如果你向写回文本可以用>123.txt
或者用-i参数直接修改文本内容。看个例子:
sed 'AddressCommand' filepath
^代表行首 &代表行尾
-i:直接修改原文件
-r:表示使用扩展正则表达式
d:删除符合条件的行;
i \string:在指定的行前面添加新行,内容为string
s/pattern/string/修饰符:查找并替换,默认只替换每行中第一次被模式匹配到的字符串
加修饰符
g:全局替换,如:s/pattern/string/g
i:忽略字符大小写,如:s/pattern/string/i
用s命令替换
我使用下面的这段文本做演示:
|
$ cat pets.txt This is my cat my cat 's name is betty This is my dog my dog's name is frank This is my fish my fish's name is george This is my goat my goat's name is adam
|
把其中的my字符串替换成Hao Chen’s,下面的语句应该很好理解(s表示替换命令,/my表示匹配my,/Hao Chen’s表示把匹配替换成Hao Chen’s,/g 表示一行上的替换所有的匹配):/为转义字符。规定有转义字符的必须用双引号""
1
2
3
4
5
6
7
8
9
|
$ sed "s/my/Hao Chen's/g" pets.txt This is Hao Chen's cat Hao Chen 's cat' s name is betty This is Hao Chen's dog Hao Chen 's dog' s name is frank This is Hao Chen's fish Hao Chen 's fish' s name is george This is Hao Chen's goat Hao Chen 's goat' s name is adam |
再注意:上面的sed并没有对文件的内容改变,只是把处理过后的内容输出,如果你要写回文件,你可以使用重定向,如:
1
|
$ sed "s/my/Hao Chen's/g" pets.txt > hao_pets.txt |
或使用 -i 参数直接修改文件内容:
1
|
$ sed -i "s/my/Hao Chen's/g" pets.txt |
详细内容可以看这个http://coolshell.cn/articles/9104.html和http://lq2419.blog.51cto.com/1365130/1238880
目前只是初步了解,留下好的参考资料就ok了。
grep:文本过滤器,如果仅仅是过滤文本,可使用grep,其效率要比其他的高很多;
awk:报告生成器,格式化以后显示。如果对处理的数据需要生成报告之类的信息,或者你处理的数据是按列进行处理的,最好使用awk。
grep,awk下次再说