mkdir [-options] DIRECTORY |
Mkdir = make directories 建立新目录[对其父目录必须有写权限] -p:parent的缩写。自动建立所需路径中不存在的上层目录。递归 -m:建立指定权限的目录,不适用默认的
mkdir -p ~/rpm/{BUILD,RPMS } #同时建立多个 mkdir -m 711 newdi |
rmdir [-p] directory
|
删除目录 -p:多层次的空目录删除。由指定目录的最底层开始,逐层尝试删除空目录,当碰到非空目录时便停止删除的动作
rm –rf dir【需慎重,误删后难以恢复】 |
pwd |
pwd = print working directory 显示当前工作目录,全路径名,第一个/为根目录,最后为当前目录
pwd -P 显示正确的完整路径,【链接文件】 |
cd [directory] |
cd = change director 改变目录 cd 用户home目录 cd ~ 用户home目录 cd / 根目录 cd . 当前目录 cd .. 父目录 cd - 回到跳转到当前目录的上一个目录 即回到上一个工作空间 |
ls [-options] [filelist]
|
显示该目录或路径下所包含的文件及目录列表,以及文件的相关信息 -a用于列出目录中的所有文件,包括文件名以“.”开头的隐藏文件 -l以长格式列出文件的详细信息:文件的类型、操作权限、链接数、属主名、属组名、字节数以及最近修改时间 -d显示目录名而不显示其中的文件。查看目录属性, 仅列出目录本身 –R递归列出子目录 -r以逆序显示文件名列表 -x显示时以字母顺序 --color用不同颜色区分文件类型 -A 同a,不含 ./ ../ |
lsattr [-aR] file/dir
|
显示文件隐藏属性 -a 隐藏文件也显示 -R 递归
|
chattr |
设置文件隐藏属性 + 增加某个特殊参数,其他原本的不懂 - 减去 = 设置一定,仅有后面参数
A 访问时间不可修改 S 将数据同步写入磁盘 a 只能增加数据,不能删除数据,root独有 c 自动压缩,读取时自动解压,相当于先压缩再存储 d 执行dump备份是,具有转储功能 i 让文件不能被删除,改名,设链接,无法写入或新增数据 j 使用ext3文件系统格式是,使文件在写入时先记录在journal中 s 文件设置s,它将会从这个硬盘空间完全删除 u 与s相反,使用u来是这文件,数据内容还存在磁盘中,可还原和删除
chattr +i filename 禁止删除 chattr -i filename 取消禁止 |
查看 |
|
cat [-AEnTv] filename
|
将文件内容一次性显示到屏幕 -A: 相当于-vET的整合参数,列出一些特殊字符[包括tab键和换行] -n:显示行号; -T:将tab键以:∧I显示出来; -E:将结尾的换行符显示出来; -v:列出一些看不出来的特殊字符[特殊字符,不包括tab和换行]
cat file1 file2 > file3可作合并文件用 cat file1 > file2 可做复制文件用 |
tac |
反序输出,把文件内容反过来显示,文件内容的最后一行先显示,第一行最后显示。 正好与cat相反
tail -3 /etc/passwd | tac 列出三个最新建的使用者帐号 |
nl [-bnw] filename |
显示的时候,输出行号 -b a:表示不论是否为空行,同意列出行号 -b t:如果有空行,空行不要列出行号【默认的】 -n ln:行号在屏幕的最左方显示 -n rn:行号在字段的最右方显示,且不加0【同默认】 -n rz:行号在字段的最右方显示,且加0 -w:行号字段占用的位数 |
od |
以二进制方式读取文件内容 |
more filename |
分屏显示文件内容 f键或 b键: 在文本中前移 q键或 |
less filename |
浏览文字档案的内容,相对于more,less可以往回卷动 f/d在文本中前移 b/u在文本中后移 q键:退出
less可以使用键盘上的上下键来前后翻页。/字符串:向下搜索; ?字符串:向上搜索; n:重复前一个搜索; N:反向重复前一个搜索; |
head [-n] filename |
显示文件前N行,默认前五行
head -1000 data 取前1000行 |
tail
|
显示文件后10行
tail –f process 实时查看文件内容,在监控日志等文件查看时效果非常好 |
pg |
分页显示文件内容 q退出 |
wc [ -options] [ Filename ] |
统计 -c 显示字符数 -l 显示行数 -L 显示一个文件中的最长行的长度 -w显示单词数
|
cmp [-clsv][-i <字符数目>][--help][第一个文件][第二个文件] |
cmp = compare 要确定两个文件是否相同
如果文件相同,则返回值0,不显示消息 如果文件不同,则返回值1,则显示第一个不同的位置.或者如果发生错误,则给出值2。 该命令形式通常用在shell步骤中。 if cmp -s prog.c.bak prog.c then echo No change fi |
diff [options] file1 file2 |
两个文件之间的比较,并指出两者的不同
如果用”-”表示file1或file2,则表示标准输入。 如果file1或file2是目录,那么diff将使用该目录中的同名文件进行比较.同时指出哪个文件只出现在哪个目录中 |
增删改 |
|
touch [-acdmt] 文件 touch [-t] [MMDDhhmm] filename |
1. 建立一个空文件 2. 将某个文件日期修改为当前日期(mtime与atime) 参数: -a : 仅修改access time。 -c : 仅修改时间,而不建立文件。 -d : 后面可以接日期,也可以使用—date=”日期或时间” -m : 仅修改mtime。 -t:后面可以接时间,格式为 [YYMMDDhhmm]如果没有输入时间,则默认为当前时间 |
cp [-options] src_file dst_file cp [-adfilprsu] source dest |
复制文件命令 -i:在覆盖文件之前提示用户,由用户确认。 -R或-r:递归复制目录,即复制相应的目录及其所有子 目录【目录拷贝是使用到】 -v显示用命令执行过程[fileA -> fileB] 可拷贝多个文件 -d 拷贝时保留链接 -f 删除已经存在的目录文件而不提示 -u 若目标文件比源文件旧,更新目标文件 -p 此时cp出复制源文件的内容外,还将把其修改时间,访问权限也复制到新文件中。 -l 建立硬链接文件,而非复制文件本身 -a该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合不加任何参数,默认文件的拥有者和权。限都会改变,建立时间也不一样 加-a,所有属性一起复制了 |
mv [-options] src_file dst_file mv [-fiv] source destination |
mv = Move 用于对文件进行名称更改或路径迁移 -f 强制执行。直接覆盖已存在的目的文件,不显示覆盖前的询问讯息。 -i 交互执行。当已存在同名的目标文件名时,在覆盖之前给出提示,由用户确认后才予以覆盖 |
rm [-options] files rm [-fir] files
|
删除文件或目录 -f:强制执行。 -i:交互执行,在执行删除前提示确认。 -R:递归的删除目录
rm –rf file 强制删除目录/文件 |
ln [-s] src [link name] ln souce-file hard-link |
用于对一个已经存在的文件再创建一个新的链接,而不复制文件的内容 -s:符号链接。不加此选项代表硬连接。 src:链接所对应的源文件 Link name:链接文件名。如果是符号链接,也可以是目录名。
未加s,硬链接,删除源文件,链接文件还存在,内容还在(硬链接不能为目录创建,只有文件才能创建硬链接) 加s,软连接,删除源文件,链接文件存在,但是无法链接过去 |
iconv [options] [file] |
文件编码转换 -f 初始编码 -t 目标编码 -o out_file 输出到目标文件 -c 从输出中忽略无效字符 -l 获取已知字符列表 |
查找 |
|
whereis [-options] [file] |
显示指令的二进制码、原始码与在线手册说明文件的存放目录. whereis命令检索的子目录是固定编写在它的程序中的.
-b :只查找二进制文件; -u:没有帮助文件的文件
whereis passwd whereis –b svn whereis –m cd |
which [-m] command |
寻找“执行文件” 在环境变量$PATH设置的目录中,搜索某个系统命令的位置,并且返回第一个搜索结果,所以如果你的$PATH设置的不全,那么查找的目录也是有限的
-a 将所有可能找到的命令均列出,而不仅仅列出第一个找到的命令名称
which python |
locate [file] |
查询结果相当于find的模糊查询,它其实是“find -name”的另一种写法,但是要快得多,这是因为它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。如系统中无此db,则需要手动创建
使用的是一个文件名数据库检索 数据库的建立预设是每星期执行一次 如系统中无此db,则需要手动创建 sudo updatedb; |
chmod [-options] xyz [filelist] u:表示文件所有者 |
xyz:权限的十进制表示 -c:只有在文件权限确实改变时才进行详细说明; -f:不打印“权限不能改变”之类的文件错误信息; -R:递归改变目录及其内容的权限; -v:详细说明权限的变化
另附: 设置suid $chmod 4741 filename 设置guid $chmod 2741 filename
chmod [u/g/o/a] [+/-/=] r/w/x chmod u=rwx,go=rx file chmod u+x file |
umask |
设定文件创建时的缺省模式 umask显示 umask xyz设置 目录最大777即rwx rwx rwx 文件最大666 Umask=002 即 - - - - - - -w- 结果 目录775 rwx rwx r-x 文件664 rw- rw- r— |
chown [-options] user[:group] filelist |
chown = change owner 改变文件的所有者, 用户必须已存在 即在/etc/passwd中存在
-R:递归改变目录及其内容的所属用户或用户组 user表示将要改变的所有者用户名或用户id group表示将要改变的所属用户组名或组id
chown [-R] aUser filename chown [-R] auser:userGrp filename |
chgrp groupname filename |
chgrp = change group 修改文件所属群组,anGrp必须在/etc/group中存在,否则报错 -R递归改变 |
groupadd |
创建用户组 |
groupdel [群组名称] |
需要从系统上删除群组时,可用groupdel指令来完成这项工作。倘若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组 |
useradd username |
创建用户 |
userdel [-r][用户帐号] |
userdel可删除用户帐号与相关的文件。若不加参数,则仅删除用户帐号,而不删除相关文件 -r 删除用户登入目录以及目录中所有文件 |
passwd username |
设置密码 |
sudo
使用方式: sudo [-bhHpV][-s ][-u <用户>][指令] 或 sudo [-klv]
说明:允许系统管理员分配给普通用户一些合理的“权限”,让他们执行一些只有超级用户或其他特定用户才能完成的任务。经由sudo 所执行的命令就好像是 root 亲自执行,也就是说以系统管理者的身份执行命令 |
"super user do"的意思
-V 显示版本编号 -h 会显示版本编号及指令的使用方式说明 -l 显示出自己(执行 sudo 的使用者)的权限 -v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码 -k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟) -b 将要执行的指令放在背景执行 -p prompt 可以更改问密码的提示语,其中%u 会代换为使用者的帐号名称, %h 会显示主机名称 -u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码) -s 执行环境变数中的 SHELL 所指定的 shell,或是 /etc/passwd 里所指定的 shell -H 将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root )command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令 |
date |
显示时间日期 -s年月日 设置日期 -s时:分:秒 设置时间 系统日期只能由系统管理员设置
显示 日期格式化:【注意date与+号之间有空格】 $date +”%Y%m%d %T” $date +”%Y%m%d %H:%M:%S” 20110713 16:09:20 【注意—和+号之前均有空格,否则语法错误】 date --date=”20101020-1 week” +%Y%m%d date --date=”1 days ago” +%Y%m%d date --date=”-24 hour” +%Y%m%d date --date=”-12 day” +%Y%m%d date +%Y%m%d |
cal [month] [year] |
显示日历[若未输入显示当前月份信息] cal年 显示当前日历 不能只输入月份,年份是必须的,月份可有可无,无月份输出全年的【只输入一个额,当成年份处理了】 |
time [options] COMMAND [arguments] |
time指令的用途,在于量测特定指令执行时所需消耗的时间及系统资源等资讯。 Eg. $time ls -l |
tar options dest source |
压缩或解压 -c产生.tar文件 -v显示详细信息 -f指定压缩后文件名 -z打包同时压缩,压缩后文件 .tar.gz -x解压.tar -t 查看压缩包内文件列表 -C destdir 解压到其他文件夹 常用: tar –cvf a.tar a tar –xvf a.tar tar -tvf tar –czvf a.tar.gz a tar –xzvf a.tar.gz tar –czvf davytest.tar.gz -C /home/otheruser |
zip [-options] file.zip filename |
压缩文件 -m压缩后自动删除原文件 -r递归压缩对应目录下的子目录 -j忽略子目录内容 |
unzip file.zip [-x file2] |
解压file.zip,除了file2文件之外 unzip –v file.zip查看压缩包内容 unzip -t large.zip验证压缩包是否完全 unzip -j music.zip把子目录压缩文件提到第一级目录中 |
gzip |
-d,解压缩: $gzip -d xyz.gz $gizp –n abc.tar压缩,带参数 注释: -1也可以换成–fast, -9也可以用–best代替,-9表示压缩比高,但速度最慢。 默认的是-6 |
登录退出 |
|
login |
登录 |
su <用户名> |
在不退出登陆的情况下,切换用户账号。 提示输入密码,密码正确输入后登入新用户,输入exit命令返回前一账号。
su 切换至root用户账号,不要轻易这么做 root用户切换其它用户,不需要输入密码
$sudo su admin |
〈Ctrl-D〉 |
退出 |
exit |
退出 |
logout |
退出 |
账号信息 |
|
who w |
显示登录到系统的所有账户信息 who –u –H 显示目前登陆到系统的所有用户登陆信息 |
whoami |
显示当前用户的有效账号 |
who am I |
显示当前用户的登录账号 显示用户名,登录时间,ip等登录信息 |
id -un |
只显示用户名 |
uname -n |
识别主机(查看主机名)查看linux系统信息 -a 所有信息 -r 版本号 -n 主机名
|
hostname |
识别主机(查看主机名) |
邮件消息信息 |
|
mail |
发送e-mail 未输入username则显示接收的email信息 |
wall |
在系统中的所有在线用户的终端上显示信息,主要用于广播系统管理信息。 |
write |
若一用户在线,可用write命令发送信息 |
talk |
|
mesg [n/y] |
命令可以决定用户是否接收来自talk, write和wall命令发送的消息,但对root用户的发送的消息不起作用. N拒绝y允许 |
7.磁盘操作... 11
8.系统操作... 12
9.网络相关... 13
10.shell操作... 14
11.其他命令... 14
12.常用按键... 15
13.命令选项大体通用含义... 16
14.常用命令别名... 17
du |
du会统计指定的目录或文件所占用的实际磁盘空间 -a全部文件 包括隐藏的 -m du系统默认输出是以KB,以参数-m表示以MB显示. -h以M为单位显示文件大小结果 -s统计此目录中所有文件大小总和 du -h—max-depth=1 仅查询一层 |
df |
查看硬盘使用情况
-h以友好的格式输出所有已安装文件系统的磁盘容量状态 -m以M为单位输出home目录的磁盘容量状态 -k以K为单位输出所有已安装文件系统的磁盘容量状态 -i报告空闲的、用过的或部份用过的(百份比)索引节点 -l仅显示本地文件系统 -t ext3仅显示文件类型为ext3的文件系统的磁盘状态 -x ext3仅显示文件类型不为ext3的文件系统的磁盘状态 -T除显示文件系统磁盘容量大小外还显示文件系统类型 |
关于df和du:df是从文件系统的角度来看的,du是从能够“看到”的文件的角度来看的。通常情况下,df与du的显示是一致的;但是当你在程序里打开一个文件并且持有这个文件的句柄,然后在另外的窗口把这个文件删除,这时候文件已经“看”不到了,也就是通过ls列举是看不到这个文件了,但是由于还有程序在使用这个文件,因此系统并没有把它真正删除,文件的内容还在文件系统里,但目录树上找不到它。这时候df看到的要比du大。有时候发现df与du的显示结果相差几十个G,就是这个原因 |
|
fdisk |
观察硬盘之实体使用情形与分割硬盘用。 在console上输入fdisk -l /dev/sda ,观察硬盘之实体使用情形。
fdisk -l 查看硬盘分区情况 |
cat /etc/fstab |
查看分区列表 |
mount [参数] 要加载的设备 载入点 |
加载一个硬件设备 eg: mount /dev/cdrom mkdir /mnt/usb;(注:创建挂载目录) umount /mnt/usb |
|
|
top |
查看后台程序,监控系统性能 top -d 2 每两秒列新一次 |
ps |
查看进程: ps -e 或ps -aux -->显示用户
ps aux | grep ps -aux|sort +5n看看哪个进程占用的内存最大 ps -ef |grep |
nohup cmd & |
后台运行 |
crontab |
格式为“分 时 日 月 周 命令 1>right 2>error” |
at |
执行一次 |
pstree -p |
查看进程树 |
free -m|-g|-k |
查看内存的使用 |
uptime |
显示目前系统开机时间(查看开机多久,多少人登陆,过去1,5,15分钟系统的负载) |
kill -9 pid |
杀进程send a signal to a process kill -9 发送的是SIG_KILL信号 ,具体发送什么信号可以通过 man kill 查看
killall -9 processname |
&与ctrl+z |
将程序放在前后台执行 Ctrl-z可以将前台进程挂起(suspend), 然后可以用bg jobid 让其到后台运行 job & 可以直接让job直接在后台运行 |
fg jobid |
将放在后台执行的程序再放回前台 |
sleep amount [units]
|
units默认为秒(s),m表示分钟,h表示小时,d表示天 |
nice |
设置优先权 nice -n -5 vi & 用root给一个nice值为-5,用于执行vi |
renice |
调整已存在优先权 |
ldd |
命令查看共享库文件 |
strace |
诊断运行的进程, 分析程序运行错误的原因 |
sar |
收集、保存并报告系统信息 |
iostat |
|
netstat |
|
vmstat |
|
ab |
Web服务器的性能 |
wireshark和tshark |
复杂网络诊断 |
uname -a |
查看内核版本 |
cat /proc/meminfo |
查看内存的信息 |
cat /proc/cpuinfo |
查看cpu的信息 |
cat /proc/version |
查看操作系统版本 |
wget uri |
下载文件 |
curl –s uri |
请求一个url |
ifconfig |
查看网络地址信息 |
netstat |
查看网络连接情况
netstat -na | grep 2181 这个命令查看哪些机器连着这个端口 |
ping ip |
ping一个ip地址 |
networkconfig;thizconfig |
网络设置 |
xmtr |
网络检测命令 |
mtr |
网络诊断工具 |
lynx |
将HTML页面转化文本文件 lynx -dump -stdin |
netstat -tupln |
查看本地所有的tpc,udp监听端口: (t=tcp, u=udp, p=program, l=listen, n=numric) |
iftop、nethogs |
查看占用带宽的进程和带宽 |
clear |
清屏 或者 |
echo str |
在标准输出上显示字符 |
history |
显示用户过去命用的命令 |
man command |
帮助命令 f/ :每次向前翻一页 官方文档:www.readhat.com
学习bash 用man bash来查看手册,很强大的操作 了解ascii表man asci man 7 signal |
type command |
后跟命令,区分某个命令是否为shell自带的还是由shell外部的独立二进制文件提供的 |
alias |
可以查看命令别名命名的信息 .alias 别名 |
bc |
交互式,支持浮点型 |
scp local_file_A username@other_host_name:dir_name
|
两台主机之间拷贝文件
/path/filename username@remoteIP:/path 将远程文件从服务器下载到本地
scp /path/to/localfile scp scp /path/to/localfile scp |
ssh |
ssh ssh ssh -l ssh
学会打通ssh 了解ssh端口映射 当通过ssh远程工作时,可以使用screen 或 dtach保存会话 |
xargs |
将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题 find /path -type f -print0 | xargs -0 rm |
md5sum |
制作md5码(128b)和校验文件 |
!! |
执行最近一次的命令 |
编译安装 |
源码编译安装(经典) |
风骚的键位操作,如打boss时风骚的走位.......... tab 将命令匹配完整, 自动补全路径/命令
上下键 查看之前执行的命令
如果熟悉vi诸多快捷键,嘿嘿 set -o vi (vim编辑器的环境,试试vim的命令) set -o emacs (恢复了) |
-a |
all |
全部 |
-b |
binary |
二进制 |
-c |
character |
字符 |
count |
计数 |
|
-f |
force |
强制 |
-i |
interact |
交互 |
ignore |
忽略大小写 |
|
-j |
jump |
跳过 |
-l |
long |
长格式 |
line |
行 |
|
-m |
move |
移除 |
-n |
number |
行号 |
-p |
parent |
上层父目录 |
-r |
reverse |
逆序 |
-R |
Recursion |
递归 |
-s |
set |
设置 |
soft |
软连接 |
|
-t |
time |
时间戳 |
-v |
view |
查看 |
-w |
word |
单词 |
alias ls='ls -GF' alias s='sudo' alias sa='sudo -u admin' alias m='mysql -u root' alias gu='iconv -f gbk -t utf-8' alias ug='iconv -f utf-8 -t gbk' alias ssh='ssh -2' alias ll='ls -al --color=tty' alias lftp="lftp username:passwd@ftpIP"
alias vd='vimdiff' alias tf='tail -f' alias af="awk -F ' \t' '{print NF}'" alias wl='wc -l' alias rmsvn='find . -name ".svn" -exec rm -rf {} \; >> /dev/null 2>&1' alias grep='grep --color=auto'
if [ $OS = "Linux" ]; then alias ls='ls --color -F' alias scp='scp -1' fi |
原文来自:http://blog.csdn.net/wklken/article/details/7536927