巧用cd命令:
1:用 CDPATH 来定义你的cd 命令的 根目录 例:如现在不再/etc下 export CDPATH=/etc cd mail 将会进入到 /etc/mail 目录下 这样我们就可以在我们自己的home 目录下的.bash_profile文件里 加上 export CDPATH=path,这样我们就可以把自己一个常用的目录定为我们的cd的起始目录 2:对于很深的目录,如果想返回上一级或上两级 或多级, 敲入很多http://www.cnblogs.com/......等会很麻烦,我们可以在.bash_profile里加上 alias ..="cd .." alias ..2="cd ../.." alias ..3="cd http://www.cnblogs.com/.." alias ..4="cd http://www.cnblogs.com/../.." alias ..5="cd http://www.cnblogs.com/http://www.cnblogs.com/.." 这样我们就可以用 ..5放回到上5级的目录。 当然这里你可以用任意的形式定义别名, 如用 cd2="cd ../..",或 cd...="cd ../.."等等。 这样我们就可以使用我们自定义的“快捷键”了。 3:一个命令解决新建目录 && 进入此目录 $ vi .bash_profile function mkdircd () { mkdir -p "$@" && eval cd "/"/$$#/""; } 我们就可以用此自制的mkdircd命令实现目的了。 4:cd - 可以返回我们上一次到过的目录, 这样我们就不会为错误的输入而跳出很深的目录而懊恼了。而不用去用上下键 或 history去找上次的命令了。 5:popd , pushd , dirs : pushd:把当前的目录 入栈 popd : 把当前的目录 出栈并进入该目录 dirs:列出栈中的目录。 6:用“shopt -s cdspell” 纠正你的输入错误 现在sh下敲入以上命令, 若你想进入/tmp目录 而错误的敲为了cd /temp ,则自动回纠正你的错误(当然这里假设你没有/temp这个目录),也可以试试别的拼写错误的情况。
日期操作:
1:设置日期 date {mmddhhmiyyyy.ss} mm – Month dd – Date hh – 24 hour format mi – Minutes yyyy – Year ss – seconds 如:# date 013122192009.53 也可以用以下的形式: # date +%Y%m%d -s "20090131" # date -s "01/31/2009 22:19:53" # date -s "31 JAN 2009 22:19:53" # date set="31 JAN 2009 22:19:53" 只设置时间: # date +%T -s "22:19:53" # date +%T%p -s "10:19:53PM" 2:察看 硬件时间 用 hwclock 修改硬件时间: # hwclock –systohc # hwclock --systohc –utc 察看系统设置 # cat /etc/sysconfig/clock 3:设置日期格式 o %D date (mm/dd/yy) o %d day of month (01..31) o %m month (01..12) o %y last two digits of year (00..99) o %a locale’s abbreviated weekday name (Sun..Sat) o %A locale’s full weekday name, variable length (Sunday..Saturday) o %b locale’s abbreviated month name (Jan..Dec) o %B locale’s full month name, variable length (January..December) o %H hour (00..23) o %I hour (01..12) o %Y year (1970…) 举例如: $ date Thu Jan 1 08:19:23 PST 2009 $ date --date="now" Thu Jan 1 08:20:05 PST 2009 $ date --date="today" Thu Jan 1 08:20:12 PST 2009 $ date --date='1970-01-01 00:00:01 UTC +5 hours' +%s 18001 $ date '+Current Date: %m/%d/%y%nCurrent Time:%H:%M:%S' Current Date: 01/01/09 4:得到过去时间 和 将来的时间 过去时间: $ date --date='3 seconds ago' Thu Jan 1 08:27:00 PST 2009 $ date --date="1 day ago" Wed Dec 31 08:27:13 PST 2008 $ date --date="1 days ago" Wed Dec 31 08:27:18 PST 2008 $ date --date="1 month ago" Mon Dec 1 08:27:23 PST 2008 $ date --date="1 year ago" Tue Jan 1 08:27:28 PST 2008 $ date --date="yesterday" Wed Dec 31 08:27:34 PST 2008 $ date --date="10 months 2 day ago" Thu Feb 28 08:27:41 PST 2008 将来时间: $ date Thu Jan 1 08:30:07 PST 2009 $ date --date='3 seconds' Thu Jan 1 08:30:12 PST 2009 $ date --date='4 hours' Thu Jan 1 12:30:17 PST 2009 $ date --date='tomorrow' Fri Jan 2 08:30:25 PST 2009 $ date --date="1 day" Fri Jan 2 08:30:31 PST 2009 $ date --date="1 days" Fri Jan 2 08:30:38 PST 2009 $ date --date="2 days" Sat Jan 3 08:30:43 PST 2009 $ date --date='1 month' Sun Feb 1 08:30:48 PST 2009 $ date --date='1 week' Thu Jan 8 08:30:53 PST 2009 $ date --date="2 months" Sun Mar 1 08:30:58 PST 2009 $ date --date="2 years" Sat Jan 1 08:31:03 PST 2011 $ date --date="next day" Fri Jan 2 08:31:10 PST 2009 $ date --date="-1 days ago" Fri Jan 2 08:31:15 PST 2009 $ date --date="this Wednesday" Wed Jan 7 00:00:00 PST 2009
1:查看ssh版本
ssh -V OpenSSH_3.9p1, OpenSSL 0.9.7a Feb 19 2003 这个为 openSSh ssh: SSH Secure Shell 3.2.9.1 (non-commercial version)... 这个为ssh2 2:用username 登陆 hostname 上 ssh -l username hostname 3:察看客户端 调试 信息: ssh -v -l username hostname (加上 小写的 -v就可以看到了) 4:用 ~ and Control-Z 切换ssh 登陆 当用ssh 登陆到远程服务器后, 可以在sh 里面输入 ~ 和 ctr+z (当你先输入 ~时,不能立即看到输入的这个符号) 这样你就把 远程登陆的 session 切换成 后台执行 ,jobs命令可以查看,用 fg %1 再把它切换回来。
1:grep command
# grep search_word filename -v 不显示符合的行 -c 出现的次数 -r 在文件夹里面找 -i 忽略大小写 -l 显示符合条件的 文件名 2:find command find path -name filename 以文件名查找 -type -size (+100m:大于100m的) -mtime (+60) 60天内未改动的 -2 2天内改动过的 -exec 找出来以后执行之后的命令 # find / -type f -name *.tar.gz -size +100M -exec ls -l {} /; # find / -type f -name *.tar.gz -size +100M -exec rm -f {} /; 3:抑制标准输出 > /dev/null 抑制 错误 输出 2 >/dev/null 4:join 连接两个文件 5:改变文件内容的大小写 tr a-z A-Z < filename (小写到达写) 6:Xargs Command Xargs 把前一个命令的输出 当作后一个的输入 # find /etc -name "*.conf" | xargs ls –l 列出在。。。下 的符合。。。的文件 cat url-list.txt | xargs wget –c 一个文件里有你的url列表,你可以用这个一次下载下来 # find / -name *.jpg -type f -print | xargs tar -cvzf images.tar.gz 找出所有jpg文件打包 7:Sort Command 以文本形式排序 sort filename -r 倒序 $ sort -t: -k 2 names.txt -t(紧跟分隔符) -k(第几个域) -u 排除重复项 8:Uniq Command 经常与sort一起排除重复的 sort namesd.txt | uniq uniq -c 显示出现的次数 uniq -d 只显示重复了的 9:Cut Command 只显示文件的某一列 $ cut -d: -f 1,3 names.txt 以 : 分隔的文件 显示第一个 第三个 field $ cut -c 1-8 names.txt 显示文件的每一行的前8个字符 cut -d: -f1 /etc/passwd Displays the unix login names for all the users in the system. 10:Stat Command 显示某个文件或文件夹的属性 stat /etc/my.cnf -f 某个文件系统的属性 11:Diff Command diff [options] file1 file2 12:ac Command ac 统计用户的连接的统计时间 -p 每个人的总时间 -d username 某个用户的时间
1:zip command
语法: zip {.zip file-name} {file-names} -r zip一个目录 -{1..9} 1:fast 9:best default : 6 -P pwd 密码 (会显示 密码) -e pwd(密码不会回显) -t 验证一个zip文件 2:unzip -v 察看解压详细过程 -l 之查看其内容 而不解压 3:tar command 语法: Syntax: tar [options] [tar-archive-name] [other-file-names] options: c 创建一个tar文件 v verbose mode, f 制定压缩的文件名 t:察看tar文件内容 x:解压 z:使用在.gz文件的情况下 gzip比bzip快 , 而bzip比gzip压缩率大 j:使用在.bz2文件的情况下
1:PS1 - Default Interaction Prompt
export PS1="/u@/h /w> " /u用户名,/h 主机名 /w 当前路径 , 如在home目录下,则显示~ /t 时间 , /@ 12小时形式的时间 $kernel_version kernel 版本号, 2:PS2 - Continuation Interactive Prompt 命令太长了,你要换一行输入的话就要用这个 / ,写在行尾,然后enter后默认提示为 >(这就是ps2) export PS2="continue-> " 可以改变 为 continue-> 3:PS3 - Prompt used by “select” inside shell script 4:PS4 - Used by “set -x” to prefix tracing output 在shell的debug模式下(set -x 进入debug),的提示 o $0 - indicates the name of script o $LINENO - displays the current line number within the script 5:PROMPT_COMMAND shell 在显示ps1以后,就会执行 PROMPT_COMMAND. 6:改变ps1的提示颜色 $ export PS1="/e[0;34m/u@/h /w> /e[m " /e[ 彩色提示 开始 x;ym 颜色值 /e[m 彩色提示 结束 颜色表如下: Black 0;30 Blue 0;34 Green 0;32 Cyan 0;36 Red 0;31 Purple 0;35 Brown 0;33 7:改变提示的背景颜色 /e[{code}m /e[m code:40-47
1:HISTTIMEFORMAT command:
在命令行里面显示 定义了HISTTIMEFORMAT 的话 , 在使用history命令时就会显示制定格式的执行命令的时间 export HISTTIMEFORMAT=’%F %T ‘ %F 年月日 %T 时分秒 history n 显示最近 n个命令 在命令行里面 按 ctrl+R 会显示 reverse-i-search 的提示,可以查找相关的使用过的命令,找到以后可以编辑这个命令 在命令行下,输入以下命令,都会执行上一次的命令: !! !-1 向上箭头 然后 enter 按 ctrl+P 然后enter !n 执行 history里第n条记录的命令 !prex 执行 以 prex为前缀 的最近一条命令 HISTSIZE = n HISTFILESIZE =n限制 history的大小 ~/.bash_history history保存在这个文件里 HISTFILE=/root/.commandline_warrior 把history保存在commandline_warrior 文件里 export HISTCONTROL=ignoredups 去掉history里面连续重复的命令 export HISTCONTROL=erasedups 去掉history里面所有重复的命令 export HISTCONTROL=ignorespace 用户在命令 前 输入一个空格,然后history里面就看不到这个命令了 history -c 清楚之前的历史记录 export HISTSIZE=0 限制history命令的使用 HISTIGNORE 忽略某些命令 (参数严格一致) 例如:export HISTIGNORE=”pwd:ls:ls –ltr:”忽略pwd , ls , ls -ltr