解释器:
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:显示文件的详细信息
-F:显示文件类型 / :目录文件 * :可执行文件 (none):文本文件
ls
-rwx r-x rw- 4 user nobody 1024 Feb22 09:20 a.txt
参数解释:
d:目录
– 普通文件
-:文件类型, rwx:拥有者权限, r-x:同组者权限, rw-:其它权限
4:硬连接数 user:拥有者 1024:大小 Feb22 09:20:最后一次修改时间 a.txt:文件名
修改权限chmod
r :读权限 w:写权限 x:执行权限 - :没有权限
其中,拥有者---生成文件时登陆的人,权限最高,u表示
同组人---系统管理员分配的同组的一个或几个人,g表示
其它人----除拥有者,同组人外的人,o表示
所有人---包括拥有者,同组人以及其它人,a表示
e.g. chmod 777 date.txt
权限对应的二进制:r:4, w :2 ,x :1 ,rwx :7 ,rw- :6 ,r-x :5, -wx:3
新建文件
touch : eg :touch a.txt
新建文件夹
mkdir : –p :如果新建的文件夹有多个层次,但父文件夹不存在,需要这个参数
复制文件或者文件夹
cp :复制文件或者文件夹 –i :是否提示 -r :复制目录以及目录下的内容到另一个目录
移动或者重命名文件或者文件夹
mv :移动或者重命名文件或者文件夹
删除文件
rm :删除文件
删除目录
rmdir :删除目录
删除空目录
rm –r :删除空目录
为文件创件连接
ln命令用来为文件创件连接,连接类型分为硬连接和符号连接两种,默认的连接类型是硬连接。如果要创建符号连接必须使用"-s"选项。
ln(选项)(参数)
将目录/usr/mengqc/mub1
下的文件m2.c链接到目录/usr/liu
下的文件a2.c
cd /usr/mengqc ln /mub1/m2.c /usr/liu/a2.c 在默认情况下,ln命令创建硬链接。
SL:软连接, 符号链接也称为软链接。可以对文件或者目录,文件可以跨文件系统(FS), i节点号不同,类型是1
删除源文件,内容就没有了,适合软件升级和整合文件位置
HL:硬连接,只能对文件,文件不可以跨文件系统(FS),i节点号相同(ln –i)查看,类型是-
删除任何一个文件,只是link number 减1
- 不能对目录文件做硬链接。
- 不能在不同的文件系统之间做硬链接。就是说,链接文件和被链接文件必须位于同一个文件系统中。
查找帮助:
man –k 关键字
man ln
可以使用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复制文件
cat < f1.txt > f2.txt :相当于cp命令,将f1.txt里面的内容复制到f2.txt里面,f2的内容被覆盖,相当于cat f1.txt >f2.txt
日历查看命令
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:显示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
grep wang /etc/passwd |wc –l
-l 行数 -w单词数 –C字符个数
统计文件或者目录的大小
du -sk * :统计文件或者目录的大小
列出当前用户的进程信息
ps –ef | grep telnet
ps :列出当前用户的进程信息
-e 列出当前每一个正在运行的进程
-f 完整的列表
-u 列出用户的进程id,或者用户名
ps –auwx 列进程更详细信息状态
杀进程
kill [-signal] process-id 杀进程
sleep process-id & 令进程进入睡眠状态
pkill sleep 杀进入睡眠状态的进程
列出所有正在运行的job
jobs 列出所有正在运行的job
fg %n 前台处理 bg %n 后台处理 stop %n 后台挂起 kill %n 把后台作业kill
Control-c 终止 Control-z 挂起
ping
ping –s hostname
ifconfig
ifconfig –a (/sbin/ifconfig)
netstat
netstat –rn 路由表
rusers
rusers –l username 列出某主机上的所有用户
finger
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 寄一封信给 alex@domain.name :
0 17 * * 1-5 mail -s "hi" alex@domain.name < /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 软件名