ssh常用命令
目录:
1. Basic Instructions /基本指令
2. wget /下载工具
3. Crontab /定时任务
4. tar/tar.gz /压缩文件
5. vi /编辑器
1. Basic Instructions基本操作命令
通常来说,使用"$[Instructions] --help"可以获得以下各个命令[instructions]的帮助,包含其参数列表的定义。
-ls 列出当前文件夹下所有内容
$ls -o 列出当前文件夹中所有内容,含详细信息,但不列出group
$ls -l 同上,含group信息
$ls -a 列出当前文件夹中所有内容,包含以"."开头的文件
$ls -t 按更改时间排序
$ls -v 按版本先后排序
-cd [dir] 进入文件夹
-pwd 显示当前路径
-mkdir [dir] 新建文件夹
-chmod 更改文件/文件夹权限
$chmod [Mode] [dir],其中Mode形如"755"或"777"等。
$chmod [Mode] [file]
$chmod -R [Mode] [dir],递归形式,即将目标文件夹内所有文件均改变权限
Mode还有另一种表达方式,"755"即为"-rwxr-xr-x",不列举了。
-rm [file] 删除文件/文件夹
$rm -f [file] 强行删除,忽略不存在的文件,无提示
$rm -r [file] 递归删除所有内容
-cp 拷贝
$cp [options] [source] [destination]
其中[options]可以为-f(强行拷 ......
http://blog.chinaunix.net/u/25764/showart_1882931.html
引:本来打算将这部分内容并入到《The Linux Kernel Module Programming Guide笔记》中去,但是想下内存空间管理访问相当基础重要而且内容量较大,所以就单独记录。在过去一年里,由于成功开发过几个颇为复杂的设备驱动,就自以为掌握了驱动开发的方法和技巧,事实上在基础上,我却有着致命的盲点。这个盲点就是Linux的内存管理,其实很久之前,就一直就搞不懂MMU、Page、Section、页表等概念,那时以为这些并不重要。现在看来终于尝到苦果了,在开发Virtual Framebuffer的时候,就在mmap这个接口实现上卡住了。俗话所说的书到用时方很少,是至理名言啊。
注:在x86架构上,会分为内存空间和I/O空间,但是在大多数嵌入式控制器如ARM、PowerPC并不提供I/O空间。我面向的主要是嵌入式方面的驱动开发,所以这里并不讨论I/O空间的内容。本文的内容大多数是摘录《Linux设备驱动开发详解》的第十一章,并结合我在开发过程的一些心得体会。
一、内存管理单元MMU
MMU辅助操作系统进行内存管理、提供虚拟地址和物理地址的映射、内存访问权限保护和Cache缓存控制等硬件支持,可见,这将 ......
引用http://www.linuxtone.org/html/76/t-2776.html
有时候nginx,apache,mysql,php编译完了想看看编译参数可以用以下方法
nginx编译参数:
#/usr/local/nginx/sbin/nginx -V
CODE:
nginx version: nginx/0.6.32
built by gcc 4.1.2 20071124 (Red Hat 4.1.2-42)
configure arguments: --user=www --group=www --prefix=/usr/local/nginx/
--with-http_stub_status_module --with-openssl=/usr/local/openssl
apache编译参数:
# cat /usr/local/apache2/build/config.nice
CODE:
#! /bin/sh
#
# Created by configure
"./configure" \
"--prefix=/usr/local/apache2" \
"--with-included-apr" \
"--enable-so" \
"--enable-deflate=shared" \
"--enable-expires=shared" \
"--enable-rewrite=shared" \
"--enable-static-support" \
"--disable-userdir" \
"$@"
php编译参数:
# /usr/local/php/bin/php -i |grep configure
CODE:
Configure
Command => './configure' '--prefix=/usr/local/php'
'--with-a ......
引用http://www.linuxtone.org/html/76/t-2776.html
有时候nginx,apache,mysql,php编译完了想看看编译参数可以用以下方法
nginx编译参数:
#/usr/local/nginx/sbin/nginx -V
CODE:
nginx version: nginx/0.6.32
built by gcc 4.1.2 20071124 (Red Hat 4.1.2-42)
configure arguments: --user=www --group=www --prefix=/usr/local/nginx/
--with-http_stub_status_module --with-openssl=/usr/local/openssl
apache编译参数:
# cat /usr/local/apache2/build/config.nice
CODE:
#! /bin/sh
#
# Created by configure
"./configure" \
"--prefix=/usr/local/apache2" \
"--with-included-apr" \
"--enable-so" \
"--enable-deflate=shared" \
"--enable-expires=shared" \
"--enable-rewrite=shared" \
"--enable-static-support" \
"--disable-userdir" \
"$@"
php编译参数:
# /usr/local/php/bin/php -i |grep configure
CODE:
Configure
Command => './configure' '--prefix=/usr/local/php'
'--with-a ......
引用http://www.linuxtone.org/html/76/t-2776.html
有时候nginx,apache,mysql,php编译完了想看看编译参数可以用以下方法
nginx编译参数:
#/usr/local/nginx/sbin/nginx -V
CODE:
nginx version: nginx/0.6.32
built by gcc 4.1.2 20071124 (Red Hat 4.1.2-42)
configure arguments: --user=www --group=www --prefix=/usr/local/nginx/
--with-http_stub_status_module --with-openssl=/usr/local/openssl
apache编译参数:
# cat /usr/local/apache2/build/config.nice
CODE:
#! /bin/sh
#
# Created by configure
"./configure" \
"--prefix=/usr/local/apache2" \
"--with-included-apr" \
"--enable-so" \
"--enable-deflate=shared" \
"--enable-expires=shared" \
"--enable-rewrite=shared" \
"--enable-static-support" \
"--disable-userdir" \
"$@"
php编译参数:
# /usr/local/php/bin/php -i |grep configure
CODE:
Configure
Command => './configure' '--prefix=/usr/local/php'
'--with-a ......
hiphop_linux
linux磁盘IO查看(iostat)
##############
#
# 操作
#
##############
# iostat -x 1 10
Linux 2.6.18-92.el5xen 02/03/2009
avg-cpu: %user %nice %system %iowait %steal %idle
1.10 0.00 4.82 39.54 0.07 54.46
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sda 0.00 3.50 0.40 2.50 5.60 48.00 18.48 0.00 0.97 0.97 0.28
sdb 0.00   ......
使用vmstat命令来察看系统资源情况
在命令行方式下,如何查看CPU、内存的使用情况,网络流量和磁盘I/O?
Q: 在命令行方式下,如何查看CPU、内存的使用情况,网络流量和磁盘I/O?
A: 在命令行方式下,
1. 查看CPU使用情况的命令
""每5秒刷新一次,最右侧有CPU的占用率的数据
$ vmstat 5
""top 然后按Shift+P,按照进程处理器占用率排序
$ top
2. 查看内存使用情况的命令
""用free命令查看内存占用情况
$ free
""top 然后按Shift+M, 按照进程内存占用率排序
$ top
3. 查看网络流量
""可以用工具iptraf工具
$ iptraf -g
""针对某个Interface的网络流量可以通过比较两个时间网络接口的RX和TX数据来获得
$ date; ifconfig eth1
$ date; ifconfig eth1
4. 查看磁盘i/o
""用iostat查看磁盘/dev/sdc3的磁盘i/o情况,每两秒刷新一次
$ iostat -d -x /dev/sdc3 2
""用vmstat查看io部分的信息 ......
当上层准备好一个包之后,交给下面这个函数处理
int dev_queue_xmit(struct sk_buff *skb)
{
struct net_device *dev = skb->dev;
struct netdev_queue *txq;
struct Qdisc *q;
int rc = -ENOMEM;
/* GSO will handle the following emulations directly. */
if (netif_needs_gso(dev, skb))
goto gso;
//首先判断skb是否被分段,如果分了段并且网卡不支持分散读的话需要将所有段重新组合成一个段
//这里__skb_linearize其实就是__pskb_pull_tail(skb, skb->data_len),这个函数基本上等同于pskb_may_pull
//pskb_may_pull的作用就是检测skb对应的主buf中是否有足够的空间来pull出len长度,
//如果不够就重新分配skb并将frags中的数据拷贝入新分配的主buff中,而这里将参数len设置为skb->datalen,
//也就是会将所有的数据全部拷贝到主buff中,以这种方式完成skb的线性化
if (skb_shinfo(skb)->frag_list &&
!(dev->features & NETIF_F_FRAGLIST) &&
__skb_linearize(skb))
goto out_kfree_skb;
/* Fragmented skb is linearized if device does not support SG,
* or if at least one o ......