bash常用命令
####怎样查看命令是否是内置命令
type -t cd(命令)
file表示外部命令
alias为命令别名
builtin表示为shell内置命令
####linux中的内置命令存放在哪里
/usr/bin 和 /usr/sbin
####常见内置命令
alias, bg, bind, break, builtin, case, cd, command, compgen,
complete, continue, declare, dirs, disown, echo, enable,
eval, exec, exit, export, fc, fg, for, getopts, hash, help,
history, if, jobs, kill, let, local, logout, popd, printf,
pushd, pwd, read, readonly, return, set, shift, shopt,
source, suspend, test, time, trap, type, typeset,
ulimit, umask, unalias, unset, until, wait, while
####内置命令的说明和举例:
alias:显示和创建已有命令的别名。
用法:alias 命令='命令 参数'
eg:alias cp='cp -i' 创建别名
unalias cp 取消别名
bg:把作业放到后台,(进程管理的命令,关联的进程命令top,ps,pstree,&,fg,jobs,renice,kill,at,crond,crontab)
用法
top:显示动态的进程
用法:top
ps:显示静态的进程
用法:ps 参数 [-aux or ef]
pstree:进程树
&:后台进程符
用法:命令(程序) &
eg:find / -name "vnc" &
jobs:查看后台的进程
用法:命令 [参数]
eg: jobs -l(有进程就有显示,没有就不会显示)前面会产生数字,数字是系统有多少个后台进程正在执行的进程,会从1,2....
fg:把后台作业放到前台。
用法:命令 [数字“1 or 2...",这数字是jobs看到的]
eg:fg 2(调用第二个后台的进程)
renice:修改进程的优先级
用法:Renice +1 180 (把180号进程的优先级加1)
kill:杀死进程
用法:kill [-9] PID号 (-9是强行的杀死)
killall:杀死进程
用法:killall [-9] PID名称
pkill:杀死进程
用法:pkill [-9Ut]
eg:pkill -9 -t pts/1(杀死终端为pts/1的进程)
pkill -9 -U tom (杀死用户名为tom的启动进程)
eg:进程命令的综合例子
[root@localhost home]# mv /soft/tar/rpm/ /home/ &(把正在执行的命令放到后台执行)
[1] 26809(这个命令的进程号)
[root@localhost home]# jobs(查看后台执行那些命令)
[1]+ Running mv -i /soft/tar/rpm/ /home/ &
[root@localhost home]# fg 1(把后台执行标志为1的命令调到前台)
mv -i /soft/tar/rpm/ /home/
^Z(这个是指ctrl+z,把执行的命令调入到后台并停止执行)
[1]+ Stopped mv -i /soft/tar/rpm/ /home/
[root@localhost home]# ps -ef | grep 26809 (显示进程为26809)
root 26809 26781 3 07:34 pts/4 00:00:01 mv -i /soft/tar/rpm/ /home/
root 26813 26781 0 07:34 pts/4 00:00:00 grep 26809
[root@localhost home]# kill -9 26809(杀死进程号为26809)
[root@localhost home]# ps -ef | grep 26809(在显示发现进行状态显示killed被杀死)
root 26815 26781 0 07:35 pts/4 00:00:00 grep 26809
[1]+ Killed mv -i /soft/tar/rpm/ /home/
####计划任务用得到的命令at,crond,crontab详细请看文档linux计划任务txt文件####
at:
用法:at [-f script] [-m -l -r] [time] [date]
-f:script 是所要提交的脚本或命令。
-l:列出当前所有等待运行的作业。atq命令具有相同的作用。
-r:清除作业。为了清除某个作业,还要提供相应的作业标识(ID);有些UNIX变体只接受atrm作为清除命令。
-m:作业完成后给用户发邮件。
crond:
crontab:
用法:crontab [-u user] -e -l -r
-u 用户名。
-e 编辑crontab文件。
-l 列出crontab文件中的内容。
-r 删除crontab文件。
bind:显示当前关键字与函数的绑定情况,或将关键字与readline函数或宏进行绑定。
语 法:bind [-dlv][-f <按键配置文件>][-m <按键配置>][-q <功能>]
-d 显示按键配置的内容。
-f<按键配置文件> 载入指定的按键配置文件。
-l 列出所有的功能。
-m<按键配置> 指定按键配置。
-q<功能> 显示指定功能的按键。
-v 列出目前的按键配置与其功能。
break:从最内层循环跳出。
builtin [sh-builtin [args]]:运行一个内置Shell命令,并传送参数,返回退出状态0。
当一个函数与一个内置命令同名时,该命令将很有用。
cd [arg]:改变目录,如果不带参数,则回到主目录,带参数则切换到参数所指的目录。
eg:cd ..:回到上级目录
cd -:回到上次所在目录
cd ~用户名:回到指定用户的所在目录-->cd ~jie
cd /:切换到根目录
command comand [arg]:即使有同名函数,仍然执行该命令。也就是说,跳过函数查找。
declare [var]:显示所有变量,或用可选属性声明变量。<------> set
declare -r:设置只读变量
-p:显示变量的属性
-a:变量是一个数组
-f:搜寻命令时,只找函数
-i:变量是一个整数
-F:显示所有的函数式名称及其属性
-t:设立变量具trace属性
-x:设为环境变量
dirs:显示当前记录的目录(pushd的结果)。<----->pwd
eg:
[root@localhost Public]# dirs
~/Public
[root@localhost Public]# pwd
/root/Public
disown:从作业表中删除一个活动作业。
echo [args]:显示args并换行。
-n 不要在最后自动换行
-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般
文字输出:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;
enable:启用或禁用Shell内置的命令。
eval [args]:把args读入Shell,并执行产生的命令。
exec command:运行命令,替换掉当前Shell。
exit [n]:以状态n退出Shell。
export [var]:使变量可被子Shell识别。
eg:
[root@localhost home]# export IP=1.1.1.1 (设置环境变量)
[root@localhost home]# echo $IP
1.1.1.1
[root@localhost home]# unset IP(取消设置的环境变量)
[root@localhost home]# echo $IP
fc:历史的修改命令,用于编辑历史命令。
fc -l 最近执行过的指令
getopts:解析并处理命令行选项。
hash:控制用于加速命令查找的内部哈希表。
help [command]:显示关于内置命令的有用信息。如果指定了一个命令,则将显示该命令的详细信息。
history:显示带行号的命令历史列表。
let:用来计算算术表达式的值,并把算术运算的结果赋给变量。
local:用在函数中,把变量的作用域限制在函数内部。
logout:退出登录Shell。
popd:从目录栈中删除项。
pushd:向目录栈中增加项。
pwd:打印出当前的工作目录。<------->dirs
read [var]:从标准输入读取一行,保存到变量var中。
read -p 与用户交互
read -a
read LINE < data f1 将文件data的第一行数据放入变量LINE中。
-p后直接接提示符
-t后面接等待的秒数
readonly [var]:将变量var设为只读,不允许重置该变量。
readonly:设置只读变量
readonly -f 函数名称 设置只读函数
readonly -a 数组变量
return [n]:从函数中退出,n是指定给return命令的退出状态值。
set:设置选项和位置参量。
shift [n]:将位置参量左移n次。
stop pid:暂停第pid号进程的运行。
suspend:终止当前Shell的运行(对登录Shell无效)。
test:检查文件类型,并计算条件表达式。
times:显示由当前Shell启动的进程运行所累计用户时间和系统时间。
trap [arg] [n]:当Shell收到信号n(n为0、1、2或15)时,执行arg。
type [command]:显示命令的类型,例如:pwd是Shell的一个内置命令。
typeset:同declare。设置变量并赋予其属性。
ulimit:显示或设置进程可用资源的最大限额。
umask [八进制数字]:用户文件关于属主、属组和其他用户的创建模式掩码。
unalias:取消所有的命令别名设置。
unset [name]:取消指定变量的值或函数的定义。
unset:先尝试取消变量,若无变量,则取消函数。
unset -v 取消变量
unset -f 取消函数
wait [pid#n]:等待pid号为n的后台进程结束,并报告它的结束状态。
2.命令行程序
cp, date, who, w, ls, cat, wc, last, mv, mkdir, rmdir, mv,
ps, top, df, du, dd, ln, sort, sed, awk, ifconfig, dmesg, diff,
hostname, dnsdomainname, chmod, chown, chgrp, cut,grep, find,
kill, more, less, mount, nice, ping, sleep, su, tar, gzip, xargs,
touch, uname, basename, dirname, tr, uniq, mail, which, locate
which
which -a
cp:指令用在复制文件或目录
-a或--archive 此参数的效果和同时指定"-dpR"参数相同。
-b或--backup 删除,覆盖目标文件之前的备份,备份文件会在字尾加上一个备份字符串。
-d或--no-dereference 当复制符号连接时,把目标文件或目录也建立为符号连接,
并指向与源文件或目录连接的原始文件或目录。
-f或--force 强行复制文件或目录,不论目标文件或目录是否已存在。
-i或--interactive 覆盖既有文件之前先询问用户。
-l或--link 对源文件建立硬连接,而非复制文件。
-p或--preserve 保留源文件或目录的属性。
-P或--parents 保留源文件或目录的路径。
-r 递归处理,将指定目录下的文件与子目录一并处理。
-R或--recursive 递归处理,将指定目录下的所有文件与子目录一并处理。
-s或--symbolic-link 对源文件建立符号连接,而非复制文件。
-S<备份字尾字符串>或--suffix=<备份字尾字符串> 用"-b"参数备份目标文件后,
备份文件的字尾会被加上一个备份字符串,预设的备份字尾字符串是符号"~"。
-u或--update 使用这项参数后只会在源文件的更改时间较目标文件更新时或是
名称相互对应的目标文件并不存在,才复制文件。
eg:
cp -u -v file1 file2(复制文件,只有源文件较目的文件的修改时间新时,才复制文件)
cp file1 file2(将文件file1复制成文件file2)
cp -i file1 file2(采用交互方式将文件file1复制成文件file2)
cp -f file1 file2(将文件file1复制成file2,因为目的文件已经存在,所以指定使用强制复制的模式)
cp -R file1 file2将目录dir1复制成目录dir2
cp -R file1 file2 file3 dir1 dir2同时将文件file1、file2、file3与目录dir1复制到dir2
cp -p a.txt tmp/复制时保留文件属性
cp -P /var/tmp/a.txt ./temp/复制时保留文件的目录结构
cp -b a.txt tmp/复制时产生备份文件
cp -b -V t a.txt /tmp 复制时产生备份文件,尾标 ~1~格式
cp -b -S _bak a.txt /tmp指定备份文件尾标
data:命令的功能是显示和设置系统日期和时间。
该命令的一般格式为: date [选项] 显示时间格式(以+开头,后面接格式)
date 设置时间格式
命令中各选项的含义分别为:
-d datestr, --date datestr 显示由datestr描述的日期
-s datestr, --set datestr 设置datestr 描述的日期
-u, --universal 显示或设置通用时间 时间域
% H 小时(00..23)
% I 小时(01..12)
% k 小时(0..23)
% l 小时(1..12)
% M 分(00..59)
% p 显示出AM或PM
% r 时间(hh:mm:ss AM或PM),12小时
% s 从1970年1月1日00:00:00到目前经历的秒数
% S 秒(00..59)
% T 时间(24小时制)(hh:mm:ss)
% X 显示时间的格式(%H:%M:%S)
% Z 时区 日期域
% a 星期几的简称( Sun..Sat)
% A 星期几的全称( Sunday..Saturday)
% b 月的简称(Jan..Dec)
% B 月的全称(January..December)
% c 日期和时间( Mon Nov 8 14:12:46 CST 1999)
% d 一个月的第几天(01..31)
% D 日期(mm/dd/yy)
% h 和%b选项相同
% j 一年的第几天(001..366)
% m 月(01..12)
% w 一个星期的第几天(0代表星期天)
% W 一年的第几个星期(00..53,星期一为第一天)
% x 显示日期的格式(mm/dd/yy)
% y 年的最后两个数字( 1999则是99)
% Y 年(例如:1970,1996等)
eg:
date +"%b %e, %G" // 定制格式
--->Aug 16, 2012
date +"%b %e, %G" -d'-1 day' 或 date -d'-1 day' +"%b %e, %G" // 减一天(加一天类似)
--->Aug 15, 2012
date +"%b %e, %G" -d'+1 month' 或 date -d'+1 month' +"%b %e, %G" // 加一月(减一月类似)
--->Sep 16, 2012
date +"%Y年%m月%d日"
--->2012年08月20日
date +"%Y年%m月%d日" -d'-1 day' // 同上面加减1天(或加减1月)
--->2012年08月19日
date +"%Y年%-m月%d日" // %-m 去除月份对其的零
--->2012年8月20日
date MMDDhhmmYY
date +'%d%H%M'
ls:查看目录内容
ls -a:显示所有文件
ls -l:显示文件详细信息
ls -Rl:显示当前目录及其所有子目录信息
ls -tl:以时间排序显示目录
ls -Sl:以文件大小排序
ls -s -l -S:显示文件大小,并按大小排序
cat:cat [-AbeEnstTuv] fileName
-A, --show-all 等价于 -vET
-b, --number-nonblank 对非空输出行编号
-e 等价于 -vE
-E, --show-ends 在每行结束处显示 $
-n, --number 对输出的所有行编号
-s, --squeeze-blank 不输出多行空行
-t 与 -vT 等价
-T, --show-tabs 将跳 字符显示为 ^I
eg:
cat > file1(写入东西然后ctrl+c结束)没有该文件就创建文件并且加入,有该文件就覆盖的写入
cat >>file1追加的写ctrl+c结束
cat >>file1 <<EOF (这里是EOF结尾的时候就写EOF,这里是STOP结尾就写STOP)
cat file1 file2 >> file3
实现字符串翻转
[root@localhost bin]# cat file1
qweqewqedadaddas
[root@localhost bin]# rev file1
saddadadeqweqewq
wc:用于统计
wc -c filename:显示一个文件的字节数
wc -m filename:显示一个文件的字符数
wc -l filename:显示一个文件的行数
wc -L filename:显示一个文件中的最长行的长度
wc -w filename:显示一个文件的字数
last:说明:显示系统开机以来获是从每月初登入者的讯息
-R 省略 hostname 的栏位
-num 展示前 num 个
username 展示 username 的登入讯息
tty 限制登入讯息包含终端机代号
eg:
last -R -2
last -2 username
mv:语法:mv [选项] 源文件或目录 目标文件或目录
df:显示磁盘空间的使用情况,包括文件系统安装的目录名、块设备名、总字节数、已用字节数、
剩余字节数占用百分比。
df -aT:显示所有存储系统空间使用情况,同时显示存储系统的文件系统类型
df 目标文件路径:显示目标文件的空间使用情况.
-a:显示全部的档案系统和各分割区的磁盘使用情形
-i:显示i -nodes的使用量
-k:大小用k来表示 (默认值)
-t:显示某一个档案系统的所有分割区磁盘使用量
-x:显示不是某一个档案系统的所有分割区磁盘使用量
-T:显示每个分割区所属的档案系统名称
-h: 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。
du:查询档案或目录的磁盘使用空间
命令:du (disk usage)
格式:du [option] [filename]
功能:以指定的目录下的子目录为单位,显示每个目录内所有档案所占用的磁盘空间大小
选项:
-a:显示全部目录和其次目录下的每个档案所占的磁盘空间
-b:大小用bytes来表示 (默认值为k bytes)
-c:最后再加上总计 (默认值)
-s:只显示各档案大小的总合
-x:只计算同属同一个档案系统的档案
-L:计算所有的档案大小
-h: 表示档案系统大小使用 GB、MifB 等易读的格式。
#######Linux dd命令###############Linux dd命令###############Linux dd命令########
dd:读取,转换并输出数据
语法:dd [bs=<字节数>][cbs=<字节数>][conv=<关键字>][count=<区块数>]
[ibs=<字节数>][if=<文件>][obs=<字节数>][of=<文件>][seek=<区块数>]
[skip=<区块数>][--help][--version]
bs=<字节数> 将ibs( 输入)与obs(输出)设成指定的字节数。
cbs=<字节数> 转换时,每次只转换指定的字节数。
conv=<关键字> 指定文件转换的方式。
count=<区块数> 仅读取指定的区块数。
ibs=<字节数> 每次读取的字节数。
if=<文件> 从文件读取。
obs=<字节数> 每次输出的字节数。
of=<文件> 输出到文件。
seek=<区块数> 一开始输出时,跳过指定的区块数。
skip=<区块数> 一开始读取时,跳过指定的区块数。
dd if=[STDIN] of=[STDOUT]输入或输出
bs: dd -ibs=[BYTE] -obs=[SIZE]强迫输入或输出的Size为多少Bytes
cbs=BYTES强迫一次只做多少个 Bytes
seek=BLOCKS跳过一段以后才输出
skip=BLOCKS跳过一段以后才输入
eg:
dd if =/dev/fd0 of = /tmp/tmpfile
dd if = /tmp/tmpfile of =/dev/fd0
dd if = net.i of = /dev/fd0 bs = 16384(把net.i这个文件写入软盘中,并设定读/写缓冲区的数目)
dd if=sfile of=dfile(将文件sfile拷贝到文件 dfile中。)
dd if=/dev/fd0 of=disk.img bs=1440k(用下面的命令为软盘建立镜像文件:)
dd if=/dev/sda of=disk.mbr bs=512 count(再如把第一个硬盘的前 512 个字节存为一个文件:)
备份:
dd if=/dev/hdx of=/dev/hdy
将本地的/dev/hdx整盘备份到/dev/hdy
dd if=/dev/hdx of=/path/to/image
将/dev/hdx全盘数据备份到指定路径的image文件
dd if=/dev/hdx | gzip >/path/to/image.gz
备份/dev/hdx全盘数据,并利用gzip工具进行压缩,保存到指定路径
恢复:
dd if=/path/to/image of=/dev/hdx
将备份文件恢复到指定盘
gzip -dc /path/to/image.gz | dd of=/dev/hdx
将压缩的备份文件恢复到指定盘
利用netcat远程备份:
dd if=/dev/hda bs=16065b | netcat < targethost-IP > 1234
在源主机上执行此命令备份/dev/hda
netcat -l -p 1234 | dd of=/dev/hdc bs=16065b
在目的主机上执行此命令来接收数据并写入/dev/hdc
netcat -l -p 1234 | bzip2 > partition.img
netcat -l -p 1234 | gzip > partition.img
以上两条指令是目的主机指令的变化分别采用bzip2 gzip对数据进行压缩,并将备份文件保存在当前目录。
备份MBR:
dd if=/dev/hdx of=/path/to/image count=1 bs=512
备份磁盘开始的512Byte大小的MBR信息到指定文件
恢复MBR:
dd if=/path/to/image of=/dev/hdx
将备份的MBR信息写到磁盘开始部分
备份软盘:
dd if=/dev/fd0 of=disk.img count=1 bs=1440k
将软驱数据备份到当前目录的disk.img文件
拷贝内存资料到硬盘:
dd if=/dev/mem of=/root/mem.bin bs=1024
将内存里的数据拷贝到root目录下的mem.bin文件
从光盘拷贝iso镜像:
dd if=/dev/cdrom of=/root/cd.iso
拷贝光盘数据到root文件夹下,并保存为cd.iso文件
增加Swap分区文件大小:
dd if=/dev/zero of=/swapfile bs=1024 count=262144
创建一个足够大的文件(此处为256M)
mkswap /swapfile
把这个文件变成swap文件
swapon /swapfile
启用这个swap文件
/swapfile swap swap defaults 0 0
在每次开机的时候自动加载swap文件, 需要在 /etc/fstab 文件中增加一行
销毁磁盘数据:
dd if=/dev/urandom of=/dev/hda1
利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据。执行此操作以后,/dev/hda1将无法挂载,创建和拷贝操作无法执行。
磁盘管理:
dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file
dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file
dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file
通过比较dd指令输出中所显示的命令执行时间,即可确定系统最佳的block size大小
测试硬盘读写速度:
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
通过上两个命令输出的执行时间,可以计算出测试硬盘的读/写速度
修复硬盘:
dd if=/dev/sda of=/dev/sda
当硬盘较长时间(比如1,2年)放置不使用后,磁盘上会产生magnetic flux point。
当磁头读到这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,
可能导致硬盘报废。上边的命令有可能使这些数据起死回生。且这个过程是安全,高效的
#######Linux dd命令###############Linux dd命令###############Linux dd命令########
ln:链接文件
将某个文件链接到一个文件上
ln [ -f | -n] [ -s ] SourceFile [ TargetFile ]
将一个或多个文件链接到一个目录上
ln [ -f | -n] [ -s ] SourceFile ... TargetDirectory
-f : 链结时先将与 dist 同档名的档案删除
-d : 允许系统管理者硬链结自己的目录
-i : 在删除与 dist 同档名的档案时先进行询问
-n : 在进行软连结时,将 dist 视为一般的档案
-s : 进行软链结(symbolic link)
-v : 在连结之前显示其档名
-b : 将在链结时会被覆写或删除的档案进行备份
-S SUFFIX : 将备份的档案都加上 SUFFIX 的字尾
eg:
ln -s file softlink #建立软链接
ln file hardlink #建立硬链接
diff:比较文件的差异。
语 法:diff [-abBcdefHilnNpPqrstTuvwy][-][-C ][-D ][-I ][-S ][-W ][-x ][-X ][--help][--left-column][--suppress-common-line][文件或目录1][文件或目录2]
补充说明:diff以逐行的方式,比较文本文件的异同处。所是指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。
参 数:
- 指定要显示多少行的文本。此参数必须与-c或-u参数一并使用。
-a或--text diff预设只会逐行比较文本文件。
-b或--ignore-space-change 不检查空格字符的不同。
-B或--ignore-blank-lines 不检查空白行。
-c 显示全部内文,并标出不同之处。
-C或--context 与执行"-c-"指令相同。
-d或--minimal 使用不同的演算法,以较小的单位来做比较。
-D或ifdef 此参数的输出格式可用于前置处理器巨集。
-e或--ed 此参数的输出格式可用于ed的script文件。
-f或-forward-ed 输出的格式类似ed的script文件,但按照原来文件的顺序来显示不同处。
-H或--speed-large-files 比较大文件时,可加快速度。
-l或--ignore-matching-lines 若两个文件在某几行有所不同,而这几行同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异。
-i或--ignore-case 不检查大小写的不同。
-l或--paginate 将结果交由pr程序来分页。
-n或--rcs 将比较结果以RCS的格式来显示。
-N或--new-file 在比较目录时,若文件A仅出现在某个目录中,预设会显示:
Only in目录:文件A若使用-N参数,则diff会将文件A与一个空白的文件比较。
-p 若比较的文件为C语言的程序码文件时,显示差异所在的函数名称。
-P或--unidirectional-new-file 与-N类似,但只有当第二个目录包含了一个第一个目录所没有的文件时,才会将这个文件与空白的文件做比较。
-q或--brief 仅显示有无差异,不显示详细的信息。
-r或--recursive 比较子目录中的文件。
-s或--report-identical-files 若没有发现任何差异,仍然显示信息。
-S或--starting-file 在比较目录时,从指定的文件开始比较。
-t或--expand-tabs 在输出时,将tab字符展开。
-T或--initial-tab 在每行前面加上tab字符以便对齐。
-u,-U或--unified= 以合并的方式来显示文件内容的不同。
-v或--version 显示版本信息。
-w或--ignore-all-space 忽略全部的空格字符。
-W或--width 在使用-y参数时,指定栏宽。
-x或--exclude 不比较选项中所指定的文件或目录。
-X或--exclude-from 您可以将文件或目录类型存成文本文件,然后在=中指定此文本文件。
-y或--side-by-side 以并列的方式显示文件的异同之处。
--help 显示帮助。
--left-column 在使用-y参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容。
--suppress-common-lines 在使用-y参数时,仅显示不同之处。
chgrp:变更文件或目录的所属群组。
语 法:chgrp [-cfhRv][--help][--version][所属群组][文件或目录...]
或 chgrp [-cfhRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]
补充说明:在UNIX系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。
您可以使用chgrp指令去变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可。
参 数:
-c或--changes 效果类似"-v"参数,但仅回报更改的部分。
-f或--quiet或--silent 不显示错误信息。
-h或--no-dereference 只对符号连接的文件作修改,而不更动其他任何相关文件。
-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-v或--verbose 显示指令执行过程。
chatt:修改文件系统属性(attribute)
chattr [-RV] [-+=AacDdijsSu] [-v version] 文件或目录
+i:将文件的i节点属性设置为不可变,即i节点锁定
-i:去除设置的i节点
+a:将文件设置为只可追加内容,原有数据不能修改。
-a:去除设置的+a锁定标记
cut:
cut:对文件的第一行抽出某一部分
cut -c2 data 抽出每一行的第二个字符
cut -c3-10 data 抽出每一行的第三到第十个字符
cut -c9- data 抽出每一行的第九个以后的所有字符
cut -c1-3,22 data 抽出每一行的第一到三个以及第22个字符
cut -d: -f1 /etc/passwd 以冒号作为分隔符,抽出第一行的第一个字段
cut -d: -f3-6 /etc/passwd 抽出第三到第六字段
cut -d: -f 1,5 /etc/passwd 抽出第一,第五字段
find:查找
find <搜索目录> <查找条件>
-name 按名称查找
-type 按类型查找
-size 按文件大小
d:目录
b:区块设备
c:字符设备
f:一般文件
l:符号链接文件
s:socket文件
eg:find /etc -name "passwd"
find /boot -size +1024
使用~作为'pathname参数,波浪号~代表了你的$HOME目录。
find ~ -name "*.txt" -print
想要在当前目录及子目录中查找所有的'*.txt’文件,可以用:
find . -name "*.txt" -print
想要的当前目录及子目录中查找文件名以一个大写字母开头的文件,可以用:
find . -name "[A-Z]*" -print
想要在/ e t c目录中查找文件名以host开头的文件,可以用:
find /etc -name "host*" -print
想要查找$HOME目录中的文件,可以用:
find ~ -name "*" -print 或find . -print
如果想在当前目录查找文件名以两个小写字母开头,跟着是两个数字,最后是 * . t x t的文
件,下面的命令就能够返回名为ax37.txt的文件:
find . -name "[a-z][a-z][0--9][0--9].txt" -print
mount:
mount 设备名 挂载点
挂载的过程:
1.挂载设备 mount
2.读写挂载点 cp
3.卸载挂载点 umount
1.挂载光驱
mount /dev/cdrom /mnt/cdrom(或者挂载到/media)
卸载光驱
umount /dev/cdrom umount /media
2.挂载硬盘
先用 fdisk -l查看系统中有那些设备
mount /dev/sda2 /mnt/two 这个two目录必须先建立
df -T 查看系统中硬盘分区的格式
用mount命令可以指定挂载硬盘的类型
mount -t ext2 /dev/sda2 /mnt/two
vfat(这个是U盘的格式)
mount -t vfat -o iocharset=gb2312 /dev/sda2 /mnt/two (解决乱码)
man mount 查看mount的选项
mount -t vfat -o iocharset=gb2312,ro,uid=501,gid=502 /dev/sda2 /mnt/two
mount 单独的也是以个命令
mount -t cifs -o username=xxx,password=xxxx //ip/share /mnt/win (windows 共享)
sleep:
xargs:是一个非常强大的命令,可以取一个命令的输出作为另一个命令的参数。下面就是几个关于如何有效使用xargs命令的实例
eg:
1. 当你使用rm命令去删除很多的文件时,你可能会得到错误信息“/bin/rm Argument list too long – Linux”。这时可以用xargs来避免这个问题
find ~ -name *.log‘ -print0 | xargs -0 rm –f
获得/etc下所有以.conf结尾的文件。可以有多种方法获得如下结果。以下命令仅仅为了帮助
大家理解如何使用xargs.find命令的输入结果一个接一个的传递给xargs,作为ls -l的参数。
# find /etc -name "*.conf" | xargs ls –l
当你想下载一些URL,这些URL都保存在一个文件里,你可以以如下的方式使用xargs命令
# cat url-list.txt | xargs wget –c
找出所有的.jpg格式的图片,并将其归档。
# find / -name *.jpg -type f -print | xargs tar -cvzf images.tar.gz
将所有的jpg图片文件复制到外置的硬盘中
# ls *.jpg | xargs -n1 -i cp {} /external-hard-drive/directory
uname:
basename:
dirname:取得路径名称中的目录部分
dirname /usr/local/bin/sftp 输出/usr/local/bin
tr:转换或删除字符
eg:
tr k l < file1 把file1中的所有k替换为l
tr ',' '\n' < file1 把file1中的所有逗号替换为换行符
tr -d k 删除所有k字符
tr '[A-Z]' '[a-z]' 将所有大写字母替换为小写
tr -s '' '' < file1 将多余空行全删除只留一个。
tee:读取标准输入,然后由标准输出显示,并将数据存储在指定的文件中。
eg:
tee test.log 若test.log已存在,会被清空,若不存在,则创建。
tee -a test.log 若存在,则将新输入的数据加原文件末尾,不会清空原文件
sort:对文件作排序,默认为升序排列
-r:降序排列
-n:以数值作比较标准,升序排列
-n +2 :跳过前两个字段,从第三个字段开始排序,且以数值作比较标准。
-k 2 :以第二个字段作排序的依据
-t: :以:作分隔符
uniq:对已排好序的文件删除重复行,一般与sort结合使用
sort data | uniq 删除data中的重复行
sort data | uniq -d 挑出重复行
sort data | uniq -c 统计第一行重复的次数
mail:
paste:对文件以行和行的方式合并
paste file1 file2 file1和file2的每一行进行合并,以空格分隔
paste -d"#" file1 file2 file1和file2的每一行合并,以#分隔
paste -s file1 file1的每一行自己合并在一起。
locate:由文件名数据库中,找出包含有“关键词”的文件路径
变量
$1-$n:位置变量
$*:所有的位置参数,视为一个字符串
$@:所有的位置参数,视为多个字符串
$#:位置参数的个数
$?:上一个命令执行后返回的结果,0代表成功,非0代表执行有误
$$:当前bash shell的进程编号
$!:上一个后台程序的进程编号