arch 显示机器处理器架构
cat 把档案串连接后传到基本输出(萤幕或加 > fileName 到另一个档案)
cat filename 显示整个文件
cat > filename 从键盘创建一个文件,它只能创建并能编辑
cat file1 file2 file3 < file 合并文件
cd
cd ~ 打开用户目录也就是/home/usrname,如果当前用户名是yyy,无论在哪个目录下输入:cd ~,结果当前目录会变成"yyy@yyy-virtual-PC:~$",其实就是/home/yyy
cd - 回上一次所在的目录
cd ~ 或 cd 回指定用户的宿主目录
chgrp 修改文件所属的组
chmod "语法格式: chmod [-vR] mode 文件名
参数说明:
mode 权限设置字串,格式为[ugoa] [+-=] [rwx]
u 表示文件的拥有者
g 表示与此文件拥有者属于一个组群的人
o 表示其他人
a 表示包含以上三者即文件拥有者(u)、群组(g)、其他(o)
+ 表示增加权限
- 表示取消权限
= 表示唯一设置权限
r 表示有读取的权限
w 表示有写入的权限
x 表示有执行的权限
-v 显示权限改变的详细资料
-R 表示对当前目录下的所有文件和子目录进行相同的权限更改" 更改文件的权限使其在安装时有执行的权限,Linux/Ubuntu 系统中文件调用的权限分为三级:文件拥有者(u)、群组(g)、其他(o)。用chmod就可以更改文件的权限。chmod是一个相当灵活的命令,对同一个文件的权限的修改可以用多种风格的命令格式来实现。 http://blog.sina.com.cn/s/blog_4d414a0f0100ej7s.html
chmod a+rwx ownlinux 将当前目录下ownlinux这个文件的权限修为所有用户拥有该文件的读取、写入、执行的权限.普通用户下该命令要添加sudo
chmod ugo+rwx ownlinux 同上.虽然命令不同,但结果相同
chmod +x 增加可执行权限
chown
chown root filename 把filename的属主改成root用户
chgrp
chgrp root filename 把filename的属组主改成root组
curl http命令行工具
curl http://www.linuxidc.com www.linuxidc.com 页面内容显示在屏幕上了
curl -o page.html http://www.linuxidc.com 保存页面到page.html(屏幕上出现一个下载页面进度指示),也可以下载文件
注意: 如果linux上没有配置DNS IP这个命令不会执行成功,在这种情况下需要为linux配置一个域名解析服务器IP.打开/etc/resolv.conf文件,输入:
nameserver 208.67.222.222
nameserver 208.67.220.220
保存即可(这两个IP你的linux可能ping不通,可以在网上找能够ping通的DNS IP).
dpkg dpkg是Debian系统的后台包管理器,类似RPM。也是Debian包管理系统的中流砥柱,负责安全卸载软件包,配置,以及维护已安装的软件包。由于ubuntu和Debian乃一脉相承,所以很多命令是不分彼此的。 http://linux.chinaunix.net/techdoc/system/2007/12/05/973754.shtml
dpkg -l |grep -i "软件包名" 查看系统中与"软件包名"相关联的包.
dpkg -l 数据库查询,当前版本的 dpkg 使用文本文件来作为数据库.通称在 /var/lib/dpkg 目录下. 通称在 status 文件中存储软件状态,和控制信息. 在 info/ 目录下备份控制文件, 并在其下的 .list 文件中记录安装文件清单, 其下的 .mdasums 保存文件的 MD5 编码.列出当前系统中所有的包.可以和参数less一起使用在分屏查看. (类似于rpm -qa)
dpkg -l nano 查询nano
dpkg -l nano* 模糊查询nano
dpkg –listfiles nano 查询系统中属于nano的文件
dpkg -s nano 查看某个文件的归属包
dpkg -list 列出系统中安装的软件包
dpkg -L 查询系统中已安装的软件包所安装的位置. (类似于rpm -ql)
dpkg --contents file.deb 列出本地包文件所含文件
dpkg --install file.deb 安装本地包
dpkg --info <package> 列出软件包解包后的包名称.
dpkg --listfiles pkgname 列出一个包所安装的文件
dpkg --status pkgname 列出软件包信息
dpkg --search file 查询文件归属
dpkg --s 查询已安装的包的详细信息.
dpkg -S 查询系统中某个文件属于哪个软件包. (类似于rpm -qf)
dpkg -I 查询deb包的详细信息,在一个软件包下载到本地之后看看用不用安装(看一下呗).
dpkg -i 手动安装软件包(这个命令并不能解决软件包之前的依赖***问题),如果在安装某一个软件包的时候遇到了软件依赖的问题,可以用apt-get -f install在解决信赖***这个问题.
dpkg -r 卸载软件包.不是完全的卸载,它的配置文件还存在.
dpkg -P 全部卸载(但是还是不能解决软件包的依赖***的问题)
dpkg-reconfigure 参考
echo 回显
echo -n 不换行
env <command> 查看程序在不同环境下是如何工作的.
export 设置或显示环境变量 "用户登录到系统后,系统将启动一个用户shell。在这个shell中,可以使用shell命令或声明变量,也可以创建并运行shell脚本程序.运行shell脚本程序时,系统将创建一个子shell。此时,系统中将有两个shell,一个是登录时系统启动的shell,另一个是系统为运行脚本程序创建的shell.当一个脚本程序运行完毕,它的脚本shell将终止,可以返回到执行该脚本之前的shell。从这种意义上来说,用户可以有许多shell,每个shell都是由某个shell(称为父shell)派生的.
在子shell中定义的变量只在该子shell内有效。如果在一个shell脚本程序中定义了一个变量,当该脚本程序运行时,这个定义的变量只是该脚本程序内的一个局部变量,其他的shell不能引用它,要使某个变量的值可以在其他shell中被改变,可以使用export命令对已定义的变量进行输出(有点类似c++中的extern)。
export命令将使系统在创建每一个新的shell时定义这个变量的一个拷贝,这个过程称之为变量输出。
一个变量创建时,它不会自动地为在它之后创建的shell进程所知,而命令export可以向后面的shell传递变量的值。当一个shell脚本调用并执行时,它不会自动得到原为脚本(调用者)里定义的变量的访问权,除非这些变量已经被显式地设置为可用。export命令可以用于传递一个或多个变量的值到任何后继脚本。
#echo $PKG_PATH 在任何时候建立的变量都只是当前shell的局部变量,所以不能被shell运行的其他命令或shell程序所利用。 export是把你设置的环境变量传给当前SHELL的子SHELL,使其在子SHELL中有效。"
补充说明 在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该此登录操作
export -f 代表[变量名称]中为函数名称
export -n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
export -p 列出所有的shell赋予程序的环境变量。
find 查找命令
find . -depth -name "file*" 从当前目录中开始,包括子目录中查找以file开头的文件或目录,注意: -depth一定要放在 "."的后面,否则不工作
find . -depth -name "file*" -type f 只查找普通文件
history 显示历史命令
history -c 清除历史命令
!n n表示数字,表示使用历史命令n
init init是所有进程的祖先﹐它的进程号始终为1﹐所以发送TERM信号给init会终止所有的用户进程﹑守护进程等。shutdown 就是使用这种机制。init定义了8个运行级别(runlevel),init 0为关机﹐init 1为重启。关于init可以长篇大论﹐这里就不再叙述。另外还有telinit命令可以改变init的运行级别﹐比如﹐telinit -iS可使系统进入单用户模式﹐并且得不到使用shutdown时的信息和等待时间。
ifconfig命令参数常用命令
用ifconfig 来激活和终止网络接口的连接
ifconfig eth0 down
ifconfig eth0 up
ifup eth0
ifdown eth0
置网卡eth1的IP地址、网络掩码、广播地址,物理地址并且激活它
ifconfig eth1 192.168.1.252 hw ether 00:11:00:00:11:11 netmask 255.255.255.0 broadcast 192.168.1.255 up
或
[root@linuxso.com ~]# ifconfig eth1 hw ether 00:11:00:00:11:22
[root@linuxso.com ~]# ifconfig eth1 192.168.1.252 netmask 255.255.255.0 broadcast 192.168.1.255 up
其中 hw 后面所接的是网络接口类型, ether表示以太网, 同时也支持 ax25 、ARCnet、netrom等,详情请查看 man ifconfig
命令行编写配置文件来实现,一般你的网卡是eth0.
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 #描述网卡对应的设备别名,例如ifcfg-eth0的文件中它为eth0
BOOTPROTO=static #设置网卡获得ip地址的方式,可能的选项为static,dhcp或bootp,分别对应静态指定的 ip地址,通过dhcp协议获得的ip地址,通过bootp协议获得的ip地址
BROADCAST=192.168.0.255 #对应的子网广播地址
HWADDR=00:07:E9:05:E8:B4 #对应的网卡物理地址
IPADDR=192.168.0.2 #如果设置网卡获得 ip地址的方式为静态指定,此字段就指定了网卡对应的ip地址
IPV6INIT=no
IPV6_AUTOCONF=no
NETMASK=255.255.255.0 #网卡对应的网络掩码
NETWORK=192.168.0.0 #网卡对应的网络地址
ONBOOT=yes #系统启动时是否设置此网络接口,设置为yes时,系统启动时激活此设备
修改对应网卡的网关的配置文件
vi /etc/sysconfig/network
NETWORKING=yes(表示系统是否使用网络,一般设置为yes。如果设为no,则不能使用网络,而且很多系统服务程序将无法启动)
HOSTNAME=localhost(设置本机的主机名,这里设置的主机名要和/etc/hosts中设置的主机名对应)
GATEWAY=192.168.1.1(设置本机连接的网关的IP地址。)
route 添加/删除路由,查看路由表 linux 路由表维护
添加到主机的路由
# route add -host 192.168.1.2 dev eth0:0
# route add -host 10.20.30.148 gw 10.20.30.40
添加到网络的路由
# route add -net 10.20.30.40 netmask 255.255.255.248 eth0
# route add -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
# route add -net 192.168.1.0/24 eth1
添加默认路由
# route add default gw 192.168.1.1
删除路由
# route del -host 192.168.1.2 dev eth0:0
# route del -host 10.20.30.148 gw 10.20.30.40
# route del -net 10.20.30.40 netmask 255.255.255.248 eth0
# route del -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
# route del -net 192.168.1.0/24 eth1
# route del default gw 192.168.1.1
last 命令:
功能说明:列出目前与过去登入系统的用户相关信息。
单独执行last指令,它会读取位于/var/log目录下,名称为wtmp的文件,并把该给文件的内容记录的登入系统的用户名单全部显示出来。
-a 把从何处登入系统的主机名称或IP地址,显示在最后一行。
-d 将IP地址转换成主机名称。
-f <记录文件> 指定记录文件。
-n <显示列数>或-<显示列数> 设置列出名单的显示列数。
-R 不显示登入系统的主机名称或IP地址。
-x 显示系统关机,重新开机,以及执行等级的改变等信息。
示例:
last 默认显示
root pts/0 115.49.166.164 Mon Aug 12 17:58 still logged in
reboot system boot 2.6.32-131.0.15. Mon Aug 12 14:38 - 18:15 (03:37)
root pts/0 14.204.0.248 Tue Jul 23 16:08 - down (00:39)
第一列是用户名。
第二列是终端。
第三列是机器名或IP
第四列是登录时间信息。
第五列是状态,still longged in表示登录状态,(03:02)表示持续时间(3分2秒)。
reboot行表示系统重启,正常命令重启显示为down,而电源强制重启为crash。
其它示例:
last reboot 显示用户名为reboot的命令行
last | grep down 显示包含 down 的命令行
netstat
-ntlp 查看系统网络端口使用情况
-atn 查看网络连接情况
kill ???
locales 语言设置选项
Locale 查看当前的locale环境,也就是当前的语言环境。
Locale –a 查看系统内安装的locale
Locale –m 列出linux所支持的所有的locale语言环境。
less 查看文件内容,less 工具也是对文件或其它输出进行分页显示的工具.
less的语法格式: less [参数] 文件
常用参数
-c 从顶部(从上到下)刷新屏幕,并显示文件内容。而不是通过底部滚动完成刷新;
-f 强制打开文件,二进制文件显示时,不提示警告;
-i 搜索时忽略大小写;除非搜索串中包含大写字母;
-I 搜索时忽略大小写,除非搜索串中包含小写字母;
-m 显示读取文件的百分比;
-M 显法读取文件的百分比、行号及总行数;
-N 在每行前输出行号;
-p pattern 搜索pattern;比如在/etc/profile搜索单词MAIL,就用 less -p MAIL /etc/profile
-s 把连续多个空白行作为一个空白行显示;
-Q 在终端下不响铃;
动作
回车键 向下移动一行;
y 向上移动一行;
空格键 向下滚动一屏;
b 向上滚动一屏;
d 向下滚动半屏;
h less的帮助;
u 向上洋动半屏;
w 可以指定显示哪行开始显示,是从指定数字的下一行显示;比如指定的是6,那就从第7行显示;
g 跳到第一行;
G 跳到最后一行;
p n% 跳到n%,比如 10%,也就是说比整个文件内容的10%处开始显示;
/pattern 搜索pattern ,比如 /MAIL表示在文件中搜索MAIL单词;
v 调用vi编辑器;
q 退出less
!command 调用SHELL,可以运行命令;比如!ls 显示当前列当前目录下的所有文件.
ls 格式:ls [参数] [文件/目录] "参数说明:
-a 表示列出所有的文件,包括以"".""开头的隐藏文件
-d 如果其后接的是一个目录,则此只输出目录的名称
-l 表示以清单的形式列出文件的条目,包括文件的名称、权限、拥有者、大小、最后修改时间等
-t 表示列出的条目按最后修改的时间进行排序,默认是使用文件夹的名称来排序
-C 以文件的名称按列纵向排序
-F 在文件名后加一个符号来表示文件类型"
ls 表示列出所有的文件,包括以"."开头的隐藏文件
ls -a 用ls -a来查看就用看到以"."开头的隐藏文件
ls -C 以文件的名称按列纵向排序
ls -d 如果其后接的是一个目录,则此只输出目录的名称
ls -l 显示文件属***
ls -lh 显示为你家详细信息
ls -F 当前目录下的子目录后面多了一个"/"
ls -F --file-type locale* 列出以locale开头的所有文件或目录
ls -t 表示列出的条目按最后修改的时间进行排序,默认是使用文件夹的名称来排序
ls -l | grep '^-'或^[^d] 仅列出文件
ls -l | grep '^d'或^[^-] 仅列出目录
ls -1 -F | grep - v[/$] linux下正确的只列出当前目录下文件名的方法如下 http://apps.hi.baidu.com/share/detail/33050937
ls -al | more 通过管道实现文件列表分屏显示
ls -R 递归枚举子目录
gnome-open 以管理员权限打开文件夹
gnome-open path 以管理员权限打开文件夹,在该文件夹中打开的文件可以直接编辑保存。
grep grep [OPTION]…PATTERN [FILE] 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来
grep 'main' cal.c 搜索本目录文件cal.c中的main(区分大小写)字符串,并将相应的行输出
grep -i 'main' ./* 搜索本目录所有文件的main(不区分大小写)字符串,并将相应的文件及行输出
grep -c 只输出匹配行的计数。
grep -I 不区分大小写(只适用于单字符)。
grep -h 查询多文件时不显示文件名。
grep -l 查询多文件时只输出包含匹配字符的文件名。
grep -n 显示匹配行及行号。
grep -s 不显示不存在或无匹配文本的错误信息。
grep -v 显示不包含匹配文本的所有行
grep -r 搜索子目录
grep -d skip 忽略子目录
grep -C 5 foo file 显示file文件中匹配foo字串那行以及上下5行
grep -B 5 foo file 显示foo及前5行
grep -A 5 foo file 显示foo及后5行
halt 最简单的关机命令 其实halt就是调用shutdown -h。halt执行时﹐杀死应用进程﹐执行sync系统调用﹐文件系统写操作完成后就会停止内核。
[-n] 防止sync系统调用﹐它用在用fsck修补根分区之后﹐以阻止内核用老版本的超级块〔superblock〕覆盖修补过的超级块。
[-w] 并不是真正的重启或关机﹐只是写wtmp〔/var/log/wtmp〕纪录。
[-d] 不写wtmp纪录〔已包含在选项[-n]中〕。
[-f] 没有调用shutdown而强制关机或重启。
[-i] 关机〔或重启〕前﹐关掉所有的网络接口。
[-p] 该选项为缺省选项。就是关机时调用poweroff。
locales 查看现在的locale配置环境
locale-gen 生成需要的locale文件
参数 --purge 用来删除所有旧的配置,在出现问题时很有用
logout 注销 注销是登陆的相对操作,登陆系统后,若要离开系统,用户只要直接下达logout命令即可
man ??
mkdir 创建文件夹
more
more file.txt 将文件中内容输出到终端
mount 加载指定的文件系统.用法详解
mount -t type device dir,如: mount -t auto /dev/cdrom /mnt/cdrom
-t 指定文件系统类型
type 文件系统类型,如: auto,自动检测文件类型;iso9660 CD-ROM光盘的标准文件系统,等.
umount 卸载文件系统
umount <file>,例如:umount /mnt/cdrom
passwd "Password: <--- 输入你当前用户的密码
Enter new UNIX password: <--- 新的Root用户密码
Retype new UNIX password: <--- 重复新的Root用户密码"
ps ps [option] ps命令最常用的还是用于监控后台进程的工作情况,因为后台进程是不和屏幕键盘这些标准输入/输出设备进行通信的,所以如果需要检测其情况,便可以使用 ps命令了.
ps -a 可以例出系统当前运行的所有进程,包括由其他用户启动的进程
ps auxww 列出除一些很特殊进程以外的所有进程,并会以一个高可读的形式显示结果,每一个进程都会有较为详细的解释;
ps -e app 显示所有进程
ps -e |grep app
ps -f 全格式. 也就是显示更多的信息
ps -h 不显示标题.
ps -l 长格式.
ps -o ??
ps -r 只显示正在运行的进程.
ps -u 查看进程的所有者及其它信息
ps -w 查看目前登入用户运行的程序
ps -x 显示没有控制终端的进程
ps -afl 查看当前有哪些进程
ps -u $USER -o pid,rss,cmd --sort -rss 查看当前用户程序实际内存占用,并排序
ps -eo fname,rss|awk '{arr[$1]+=$2} END {for (i in arr) {print i,arr}}'|sort -k2 -nr 统计程序的内存耗用
ps -eo "%C : %p : %z : %a"|sort -k5 -nr 按内存从大到小排列进程
ps -eo "%C : %p : %z : %a"|sort -nr 按cpu利用率从大到小排列进程
pstree 查看当前进程树
pwd 查看当前所在目录的绝对路经
rm rm命令的一般形式为: rm [选项] 文件… 用户可以用rm命令删除不需要的文件。该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是断开了链接,原文件保持不变。如果没有使用- r选项,则rm不会删除目录。
rm -f 忽略不存在的文件,从不给出提示。
rm -r 指示rm将参数中列出的全部目录和子目录均递归地删除。
rm -i 进行交互式删除
rpm 的简单用法
rpm的一般格式: rpm [选项] [rpm软件包]
1、初始化rpm 数据库(可以省略)
rpm --rebuilddb % 注:这个要花好长时间
%注:有时rpm 系统出了问题,不能安装和查询,大多是这里出了问题。
2、RPM软件包管理的查询功能:
rpm -q [select-options] [query-options]
1)查询系统已安装的软件
rpm -q packagename
-q就是 --query,此选项表示询问系统是不是安装了gaim软件包;
如果已安装会有信息输出;如果没有安装,会输出gaim 没有安装的信息;
rpm -qa 查看系统中所有已经安装的包,要加 -a 参数
如果分页查看,再加一个管道 |和more命令,如 rpm -qa |more
rpm -qa |grep packagename 如果要查找某个软件包,可以用 grep 抽取出来
2)查询一个已经安装的文件属于哪个软件包;
语法: rpm -qf 文件名
注:文件名所在的绝对路径要指出
例:rpm -qf /usr/lib/libacl.la
3)查询已安装软件包都安装到何处;
语法:rpm -ql 软件包名
例:rpm -ql mplayer
4)查询一个已安装软件包的信息
语法: rpm -qi 软件包名
例:rpm -qi mplayer
5)查看一下已安装软件的配置文件;
语法格式:rpm -qc 软件名
例:rpm -qc mplayer
6)查看一个已经安装软件的文档安装位置:
语法格式: rpm -qd 软件名
例:rpm -qd mplayer
7)查看一下已安装软件所依赖的软件包及文件;
语法格式: rpm -qR 软件名
例:rpm -qR mplayer
注:可以把几个参数组合起来用,如 rpm -qil packagename
对于未安装的软件包的查看,查看的前提是当前目录下已存在一个.rpm文件.
1)查看一个软件包的用途、版本等信息;
语法: rpm -qpi file.rpm
例:rpm -qpi mplayer-1.0pre7try2-2.i386.rpm
2)查看一件软件包所包含的文件;
语法: rpm -qpl file.rpm
例:rpm -qpl mplayer-1.0pre7try2-2.i386.rpm
3)查看软件包的文档所在的位置;
语法: rpm -qpd file.rpm
例:rpm -qpd mplayer-1.0pre7try2-2.i386.rpm
4)查看一个软件包的配置文件;
语法: rpm -qpc file.rpm
例:rpm -qpc mplayer-1.0pre7try2-2.i386.rpm
5)查看一个软件包的依赖关系
语法: rpm -qpR file.rpm
例:rpm -qpR mplayer-1.0pre7try2-2.i386.rpm
3、软件包的安装、升级、删除等;
安装和升级一个rpm 包 语法:
rpm -ivh file.rpm 这个是用来安装一个新的rpm 包
rpm -Uvh file.rpm 这是用来升级一个rpm 包,如果有依赖关系的,需解决依赖关系;如果找不到依赖关系的包,可以用下面的命令强制安装:
rpm -ivh --nodeps --force file.rpm
rpm -Uvh --nodeps --force file.rpm
例:
rpm -ivh --test mplayer-1.0pre7try2-2.i386.rpm
--test表示测试,并不真正安装。
rpm -ivh --relocate /=/usr/local/mplayer mplayer-1.0pre7try2-2.i386.rpm
为软件包指定安装目录:要加 --relocate 参数
安装在指定目录中的程序如何调用呢?
通常可执行程序都放在安装目录下的bin或者sbin目录中。
删除一个rpm 包首先查出需要删除的rpm包,然后用下面的命令来卸载:
rpm -e 软件包名
例:rpm -e mplayer 卸载mplayer
如果有其它的rpm依赖于该rpm包,系统会出现警告。
如果一定要卸载,可以用选项 --nodeps 忽略依赖关系。但最好不要这么做。
四 RPM管理包管理器支持网络安装和查询
rpm [选项] rpm包的http或者ftp的地址
比如我们想通过 Fedora Core 4.0 的一个镜像查询、安装软件包。
查询: rpm -qpi http://mirrors.kernel.org/.../RPMS/rsh-0.17-29.rpm
安装: rpm -ivh http://mirrors.kernel.org/.../RPMS/rsh-0.17-29.rpm
rz 上载文件
sz 下载文件
set 设置shell的执行方式(定制shell环境),同时也可以使用set设置环境变量
设置参数变量 设置$1,$2…的值
sudo
如果你想得到对所有文件进行读写和修改权限,那么就在“终端”里输入 sudo nautilus ,这条命令是指用root权限打开文件浏览器,对所有文件拥有最高的读写权限。
如果是单次执行某个需要root权限的操作的话,输入命令时就在命令前加sudo,比如你要重启电脑,命令是reboot,那么你就得在“终端”里输入“sudo reboot”
shutdown 关机命令
shutdown --help
shutdown -h now 现在立即关机
shutdown -h +3 提示使用者将在三分钟后关机
shutdown -r now 现在立即重启
shutdown -r +3 三分钟后重启
shutdown -r 20:23 在20:23时将重启计算机
shutdown -r 20:23 & 可以将在20:23时重启的任务放到后台去,用户可以继续操作终端
sort sort [option...] file 文本行排序
sort file.txt
stty 设置终端命令行或显示终端信息
stty -a 显示终端设置
tar 命令 参考这里
tar -xzf all.tar.gz
tar -xjf all.tar.bz2
bunzip2 all.tar.bz2 生成 all.tar 再 tar -xf all.tar
或 tar jxvf all.tar.bz2
例一:将整个/etc目录打包成为 /tmp/etc.tar
tar -cvf /tmp/etc.tar /etc <==仅打包,不压缩!
tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩
tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩
tcpdump的高级用法(详细文档参考manu)
tcpdump -i eth1 proto[xx:yy]...
proto表示协议,可以是ether,tcp,udp等等,proto[xx:yy]从proto协议的xx字节过滤yy个字节(省略号表示数据满足何种条件).例如:
ether[12:2]指出从ethernet协议的第12字节开始过滤2个字节(数据满足何种条件),其实就是以太网协议的类型字段,以太网协议如下定义:
typedef struct _EHHR_
{
UCHAR cDest[6]; // Destination ethernet addrress.
UCHAR cSrc[6]; // Source ethernet addresss.
USHORT cType; // Ethernet pachet type.
}EH_HEADR, *PEH_HEADR;
其中,cType指出后面使用的是何种协议,例如:
0x0800 // 网际协议(IP).
0x0806// 地址解析协议(ARP : Address Resolution Protocol).
0x814C// 简单网络管理协议(SNMP:Simple Network Management Protocol)
0x880B// 点对点协议(PPP:Point-to-Point Protocol)
0x8863// 以太网上的 PPP(发现阶段)(PPPoE:PPP Over Ethernet <Discovery Stage>).
0x8864// 以太网上的 PPP(PPP 会话阶段)(PPPoE,PPP Over Ethernet<PPP Session Stage>).
0x88CC// 链接层发现协议(LLDP:Link Layer Discovery Protocol)
所以ether[12:2]其实就是cType.
同理,ip[0] & 0x0f>5 指出从ip协议第0个字节后4位的值是否大于5,实际是过滤IP协议的长度(如果不带选项就是标准长度20字节,将IP协议以字节为单位划分为每行4字节的矩阵,最少5列,也就是5*4=20字节,如果带选项则比该值大).
touch 用来更新文件或目录的时间,文件不存在则创建该文件
touch file 创建文件file
linux没有专门的文件创建命令,vi <file>, cat >file, echo "1234" >file,还有gpedit, cp,mv等都可以创建文件,只是这都是间接创建的.
im-switch ???
uname 显示系统信息
uname -m 显示机器CPU架构
uname -r 显示正在使用的内核版本
unset 用来删除指定的变量或者函数
unset -f 删除函数
unset -v 删除变量
格式:whereis <command> 查找指定命令<command>的位置,包括执行文件、源代码和手册页文件。
格式:whereis -b <command> 只查找指定命令<command>的执行文件位置。
格式:whereis -m <command> 只查找指定命令<command>的手册页文件所在位置。
格式:whereis -s <command> 只查找指定命令<command>的源代码所在位置。
同shell相关的其它命令
中断命令 执行完命令后(若没有转到后台),可以使用CTRL+C来中止命令
通过终端启动程序 通过终端启动的程序是终端的子进程,如果关闭终端,该进程也会被关闭.运行程序时命令行后面加&表示后台运行,同终端不再有父子关系.
终端输入:gpedit test.txt 启动gpedit,且gpedit同终端有父子关系
终端输入:gpedit test.txt & 启动gpedit,且gpedit同终端没有父子关系
svn svn客户端命令行的使用 参考:Ubuntu中SVN客户端使用+Myeclipse 8.5 配置SVN插件 http://blog.csdn.net/scut1135/article/details/6830758
svn checkout <src> <dest> 将文件 checkout 到本地目录,如: svn checkout http://10.1.1.111:8080:/yyy/learn/ /home/desktop/learn/,按提示输入相应的用户名和密码
svn update 默认将当前目录以及子目录下的所有文件都更新到最新版本。
svn update -r 200 test.php 将版本库中的文件test.php还原到版本200
svn update test.php 更新,于版本库同步。(如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)
svn commit 将改动的文件提交到版本库
svn commit path 将指定目录中改动的文件提交到版本库
环境变量 env <command>查看程序在不同环境下是如何工作的.
$HOME 当前用户的目录HOME路径
$PATH 以冒号分隔的用来搜索命令的目录列表
$PS1 命令提示符,通常是$,在bash中,可以是更复杂的值.如[\u@\h\W]$就是一个流行的默认值,它给出用户名,机器名和当前目录名,当然也包括一个$提示符.
$PS2 二级提示符,用来提示后续输入,通常是>字符
$IFS 输入域分隔符,当shell读取输入时,它给出用来分隔单词的一组字符,它们通常是空格,制表符和换行符.
$0 shell脚本名称
$# 传递给脚本参数的个数
$$ 脚本进程号
未知命令
TIMEFORMAT="" time ./exefile time测算exefile运行时间;TIMEFORMAT重置默认的POSIX时间输出格式.
转载于:https://blog.51cto.com/jetyi/925031