解释器:
ksh 调用 Korn Shell sh 调用Bourne Shell csh 调用C Shell
bash 调用Bourne-again Shell
(不同的操作系统有可能不同)
初始化文件的默认权限 644, 目录777,要修改,只需要.cshrc文件中的umask 022
清屏:clear
显示当前用户的路径:pwd
改变文件夹路径:cd . :当前路径, .. :父路径
显示文件夹列表:ls
参数:-a:显示隐藏的文件夹,-R:递归显示当前目录下的文件夹或文件
-t:按时间顺序显示文件,-l:显示文件的详细信息
d:目录 – 普通文件
–F:显示文件类型 / :目录文件 * :可执行文件 (none):文本文件
-rwx r-x rw- 4 user nobody 1024 Feb22 09:20 a.txt
参数:
-:文件类型, rwx:拥有者权限, r-x:同组人权限, rw-:其它人权限
4:硬连接数 user:拥有者 1024:大小 Feb22 09:20:最后一次修改时间 a.txt:文件名
r :读权限 w:写权限 x:执行权限 - :没有权限
其中,拥有者---生成文件时登陆的人,权限最高,u表示
同组人---系统管理员分配的同组的一个或几个人,g表示
其它人----除拥有者,同组人外的人,o表示
所有人---包括拥有者,同组人以及其它人,a表示
chmod : eg chmod 777 date.txt r:4 w :2 x :1
rwx :7 rw- :6 ………………………..
touch :新建文件 eg :touch a.txt
mkdir : 新建文件夹 –p :如果新建的文件夹有多个层次,但父文件夹不存在,需要这个参数
cp :复制文件或者文件夹 –i :是否提示 -r :复制目录以及目录下的内容到另一个目录
mv :移动或者重命名文件或者文件夹
rm :删除文件
rmdir :删除目录
rm –r :删除空目录
ln:
SL:软连接,可以对文件或者目录,文件可以跨文件系统(FS), i节点号不同,类型是1
删除源文件,内容就没有了,适合软件升级和整合文件位置
HL:硬连接,只能对文件,文件不可以跨文件系统(FS),i节点号相同(ln –i)查看,类型是-
删除任何一个文件,知识link number 减1
man –k keyWord
b :向后滚动 f :向前滚动 q:离开 /String :搜索
n :寻找下一个匹配配的字符串,与/String合用
正则表达式符号: $%>!~*?[]<>|
eg: ls [fF]f*a?c ls [b-f]b
命令的连续使用: date;cal;pwd
cat filename: 查看文件内容命令
cat /dev/null > ~/b.txt :清楚文件内容
cat /etc/passwd | awk –F:’{print $1 “\t” $6}’ \
| sort > ~/userinfo
awk: 用来识别分隔符定义格式 $1:第一个域 \t:加上跳格键 $6:第6个域
\ :折行 sort:按第一个域排序
cat < f1.txt > f2.txt :相当于cp命令,两个文件拼成一个新的文件
cal :日历查看命令 cal 10 2007 >a.txt :2007年10月写入a.txt文件
cal 11 2005 >>a.txt 2005年11月追加入a.txt文件
ls –l /etc|more 翻屏命令
more :一次显示一个屏幕的文件内容
b:向后f: 向前滚动一个屏幕 h:显示帮助菜单和更多的特性 q:退出
/String 搜索 n:寻找下一个比配字符串的页
head –n filename:显示的前n行内容 tail –n filename :显示文件的最后n行内容
ftp ip:
asc 文本文件 bin:(二进制)
put/mput filename:上传/可带多个 get/mget filename : 下载
hash 给进度显示
bye:退出
vi
k:向上 j:向下: h:向左 l:向右
i:光标当前位置插入 a:在光标所在位置后插入 o:在关标所在行后插入一空行
esc:退出插入状态
x:删除一个字符 dw:删除当前词 3dw:删除3个词 dd:删除当前行 5dd:删除5行
:5,10d 删除第五行到第十行
r:替换一个字符 cw:替换一个单词 cc替换一行 C替换从光标至行尾
yw 拷贝词 yy 拷贝行(或Y) p 当前行下粘贴 :1,2co3 拷贝行1,行2在行3之后
:4,5m6 一定行4,行5在行6之后
:w 存盘 :w newfile 存成新文件 :wq 存盘退出(或ZZ,或:x) :q! 强行退出不存盘
~ 改变大小写 J 把当前行和下一行连起来 u 废除刚才的编辑操作
set nu 显示行代码 :21光标停在指定行 21G 光标停在指定行(G到文件尾, 1G到文件头)
/String 从当前往下查找 ?String 从当前往上查找 n继续查找
:r file2 在光标所在位置插入另一个文件
:1,$s/oldString/newString/g 替换全文(或:%s/oldString/newString/g)
Sys
id:显示用户的id id root id –a root 所有用户 users:列出所有用户
who am i :登陆操作系统的原始身份 whoami 现在是什么身份
su username(以username登陆)
find
find path expression
find / -name perl 查找名为perl的文件
find . –mtime n –print 查找前n天修改过的文件
find /etc –user 0 –size –print 打印用户id为0 ,大小为400字节的文件
find /export/home –type f –atime +365 –exec rm{}\; 查找最近365天没有访问的文件,执行删除
grep
grep root /etc/passwd 在/etc/passwd文件中查找有root出现的行
ls –la|grep –i ‘root’ 查找出现在任何地方的root
ls file*|xargs grep dd(xargs相当于cat)
ls [0-9] 0到9 ls[9-0] 9和0
wc
-l 行数 -w单词数 –C字符个数
grep wang /etc/passwd |wc –l
du -sk * :统计文件或者目录的大小
/etc/bin/ps
ps :列出当前用户的进程信息
-e 列出当前每一个正在运行的进程
-f 完整的列表
-u 列出用户的进程id,或者用户名
ps –ef | grep telnet
ps –auwx 列进程更详细信息状态
kill [-signal] process-id 杀进程
sleep process-id & 令进程进入睡眠状态
pkill sleep 杀进入睡眠状态的进程
jobs 列出所有正在运行的job
fg %n 前台处理 bg %n 后台处理 stop %n 后台挂起 kill %n 把后台作业kill
Control-c 终止 Control-z 挂起
ping –s hostname
ifconfig –a (/sbin/ifconfig)
netstat –rn 路由表 rusers –l username 列出某主机上的所有用户
finger user1@hostname/ip 列出hostname/ip上以user1登陆的终端,他们的节点号和ip地址
crontab
使用方式 :
crontab [ -u user ] file
crontab [ -u user ] { -l | -r | -e }
说明 :
crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。
参数 :
-e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
-r : 删除目前的时程表
-l : 列出目前的时程表
时程表的格式如下 :
f1 f2 f3 f4 f5 program
f1 是表示分钟(0-59)
f2 表示小时(0-23)
f3 表示一个月份中的第几日(1-31)
f4 表示月份(1-12)
f5 表示一个星期中的第几天(0-6,其中0代表星期日)
program 表示要执行的程序。
当 f1 为 * 时表示每分钟都要执行 program,
当 f2 为 * 时表示每小时都要执行程序,其余类推;
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,
当 f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推;
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,
当 f2 为 */n 时表示每 n 小时个时间间隔执行一次,其余类推;
当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,
当 f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其余类推;
使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。
例子 :
每月每天每小时的第 0 分钟执行一次 /bin/ls :
0 * * * * /bin/ls
在 12 月内, 每天的早上 6 点到 12 点中,每隔3小时执行一次 /usr/bin/backup :
0 6-12/3 * 12 * /usr/bin/backup
周一到周五每天下午 5:00 寄一封信给
[email protected] :
0 17 * * 1-5 mail -s "hi"
[email protected] < /tmp/maildata
每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha"
20 0-23/2 * * * echo "haha"
注意 :
当程序在你所指定的时间执行后,系统会寄一封信给你,显示该程序执行的内容,若是你不希望收到这样的信,请在每一行空一格之后加上 > /dev/null 2>&1 即可
环境变量
在csh下:setenv W ‘username –n’ echo $W echo “$W”
永久:$HOME/.cshrc
在sh 下,$HOME/.profile
which : 在当前路径下查找
whereis:查找(整台机器)命令所在的路径
history
set history=20
history 显示历史命令
history 5 显示第5条
!n 运行第n条命令
!! 执行最后一条命令
aliases
aliases h history
aliases home ‘cd;ls’
alias 查看定义了那些别名
unalias home 取消定义了的别名
帮助命令
--help[|more]
Where is rpm[命令名]
软件安装
安装命令:
# rpm –ivh 软件名.rpm
检测是否安装软件
#rpm –qa|grep 软件名