Linux常用命令

简介:

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>的源代码所在位置。


linux硬件查询

同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时间输出格式.
















本文转自jetyi51CTO博客,原文链接: http://blog.51cto.com/jetyi/925031,如需转载请自行联系原作者



相关文章
|
5天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
1天前
|
监控 Linux Windows
50个必知的Linux命令技巧,你都掌握了吗?(下)
50个必知的Linux命令技巧,你都掌握了吗?(下)
|
2天前
|
Linux Shell Windows
Linux 常用基本命令
Linux 常用基本命令
|
2天前
|
Ubuntu Linux Shell
linux免交互登陆远程主机并执行命令(密钥对和Expect)
linux免交互登陆远程主机并执行命令(密钥对和Expect)
|
3天前
|
Linux
【Linux】常用命令
【Linux】常用命令
23 0
|
3天前
|
安全 Ubuntu Linux
Linux 网络操作命令Telnet
Linux 网络操作命令Telnet
16 0
Linux 网络操作命令Telnet
|
4天前
|
Linux 数据安全/隐私保护
Linux常用命令实例带注释
Linux常用命令实例带注释
30 0
|
4天前
|
Linux 开发工具 数据安全/隐私保护
Linux(19)常用解压命令记录
Linux(19)常用解压命令记录
9 0
|
5天前
|
Linux Perl
Linux系统替换字符串常用命令
请注意,`sed`命令可以非常强大,可以根据不同的需求使用不同的选项和正则表达式来进行更复杂的字符串替换操作。
17 0
|
8天前
|
安全 Linux 开发工具
Linux中可引起文件时间戳改变的相关命令
【4月更文挑战第12天】Linux中可引起文件时间戳改变的相关命令
18 0