Linux 常用命令 第3天

2012-08-11 21:55:00 0  category: linux
文件命名规则
1)除了/之外,所有的字符都合法。
2)有些字符最好不用,如空格符、制表符、退格符和字符@#$&()-等。
3)避免使用.作为普通文件名的第一个字符,以.开头的文件为隐藏文件。
4)大小写敏感。
文件处理命令
ls
命令英文愿意:list
命令所在路径:/bin/ls
执行权限:所有用户
功能描述:显示目录文件
语法:ls 选项[-ald] [文件或目录]
-a 显示所有文件,包括隐藏文件
-l 详细信息显示
-d 查看目录属性
每个用户可执行的命令: /bin (binary)
/usr/bin(user binary)
root 用户可执行的命令: /.sbin
s-super
/usr/sbin
实例: ls /
ls /sys
ls
ls –a /
-rw-r--r-- 1 root root 1666 02-22 19:47 /etc/inittab
1、-rw-r--r--
- 文件类型
1)- 二进制文件除特殊文件外
2)d 目录 directory
3)l 软链接文件 link
rw-
r--
r-- 文件权限
u
g
o
所有者 所属组 其他人
user
group others
r-读 read
w-写 write
x-执行 execute
2、root root
所有者 所属组
3、1 --硬链接数
4、1666 --文件大小 单位:数据块 block=512 字节
Linux 数据块可调整:存大文件时用大数据块,存小文件时用小数据块。
5、02-22 19:47 --文件创建或最后修改的时间
6、/etc/inittab --文件名
ls – l /sys 查看目录中文件属性
ls –ld /sys 查看目录本身的属性
cd
命令英文愿意:change directory
命令所在路径:shell 内置命令
执行权限:所有用户
功能描述:切换目录
语法:cd [目录]
范例: $ cd / 切换到根目录
$ cd .. 回到上一级目录
pwd
命令英文愿意:print working directory
命令所在路径:/bin/pwd
执行权限:所有用户
功能描述:显示当前所在的工作目录
语法:pwd
范例:$ pwd
touch
命令所在路径:/bin/touch
执行权限:所有用户
功能描述:创建空文件
语法:touch [文件名]
范例:$touch newfile
mkdir
命令英文愿意:make directories
命令所在路径:/bin/mkdir
执行权限:所有用户
功能描述:创建新目录
语法:mkdir [目录名]
范例:$ mkdir newdir
cp
命令所在路径:/bin/cp
执行权限:所有用户
功能描述:复制文件或目录
语法:cp
-R [源文件或目录] [目的目录]
-R 复制目录
范例:
$ cp file1 file2 dir1 将文件 file1、file2 复制到目录 dir1
$ cp -R dir1 dir2 将 dir1 下的所有文件及子目录复制到 dir2
mv
命令英文愿意:move
命令所在路径:/bin/mv
执行权限:所有用户
功能描述:移动文件、更名
语法:mv [源文件或目录][目的目录]
范例:
$ file1 file3 将当前目录下文件 file1 更名为 file3
$ mv file2 dir2 将文件 file2 移动到目录 dir2 下
rm
命令英文愿意:remove
命令所在路径:/bin/rm
执行权限:所有用户
功能描述:删除文件
语法:rm
-r [文件或目录]
-r 删除目录
-i 删除既有文件或目录之前先询问用户。
范例:
$ rm file3 删除文件 file3
$ rm -r dir1 删除目录 dir1
cat
命令英文愿意:concatenate and display files
命令所在路径:/bin/cat
执行权限:所有用户
功能描述:显示文件内容
语法:cat[文件名]
范例: $ cat /etc/issue
$ cat /etc/services
more
命令所在路径:/bin/more
执行权限:所有用户
功能描述:分页显示文件内容
语法:more[文件名]
(空格)或 f 显示下一页
(Enter) 显示下一行
q或Q
退出
范例:$ more /etc/services
head
命令英文愿意:head
命令所在路径:/bin/head
执行权限:所有用户
功能描述:查看文件的前几行
语法: head -num [文件名]
-num 显示文件的前 mun 行
范例:$ head -20 /etc/services
tail
命令英文愿意:tail
命令所在路径:/bin/tail
执行权限:所有用户
功能描述:查看文件的后几行
语法:tail -num[文件名]
-num 显示文件的后 num 行
-f 动态显示文件内容
范例:$ tail -30 /etc/services
ln
命令英文愿意:link
命令所在路径:/bin/ln
执行权限:所有用户
功能描述:产生链接文件
语法:ln -s [源文件][目标文件]
-s 创建软链接
范例:$ ln -s /etc/issue /issue.soft 创建文件/etc/issue 的软链接/issue.soft
$ ln /etc/issue /issue.hard 创建文件/etc/issue 的硬链接/issue.hard
cd /test
cp /etc/issue /test
ln -s issue issue.soft
ls -l
硬连接: ln 源文件 链接文件
ln issue issue.hard
1、硬连接,相当于源文件复制+同步更新
cat issue
cat issue.hard
echo "this is a test" >> issue.hard
cat issue.hard
cat issue 输出结果和上个 cat 命令相同
rm issue 此时链接文件会闪烁,因为链接文件指向的原文件不存在
cat issue.soft 访问出错
cat issue.hard 访问无错
cp /etc/inittab /test
ln -s inittab inittab.soft
ln inittab inittab.hard
ls
内核只认识数字,不认识字母
文件数字标识 inode i 节点 ls -i
每个文件必须有一个数字标识,每个数字标识不一定指向一个文件
硬链接和原文件共享相同的 i 节点
2、硬连接只能针对文件设置,不能对目录设置
ln /etc /etc.hard
可对目录设置软链接
不可跨分区创建硬链接
chmod
命令英文愿意:change the permissions mode of a file
命令所在路径:/bin/chmod
执行权限:所有用户
功能描述:改变文件或目录权限
语法: chmod [{ugo}{+-=}][文件或目录]
范例:$ chmod g+w file1 赋予文件 file1 所属组写权限
$ chmod 777 dir1 设定目录 dir1 为所有用户具有全部权限
文件目录权限总结
代表字符
权限
对文件的含义
对目录的含义
r
读权限
可以查看文件内容
可以列出目录中的内

w
写权限
可以修改文件内容
可以在目录中创建、
删除文件
x
执行权限
可以执行文件
可以进入目录
chmod u +
g -
o =
u+w g-r
rwx
o=rw
rwx
421
rwx rw- r-x 765
753 rwxr-x-wx
inittab rw-r----- 640
rwx rwx rw- r-x 765
421 753 rwxr-x-wx
rw-r---- 640
mkdir /backup
删除文件必需是该文件所在目录有写权限
r
w
x
文件
cat/home/head
vi
execute
目录
ls
rm/mkdir/touch
cd
r x 随目录同步出现
[root@localhost test]# mkdir /backup
[root@localhost test]# touch /backup/testfile
[root@localhost test]# chmod 777 /backup
[root@localhost test]# ls -ld /backup
drwxrwxrwx 2 root root 4096 Feb 23 00:25 /backup
[root@localhost test]# ls -l /backup/testfile
-rw-r--r-- 1 root root 0 Feb 23 00:25 /backup/testfile
[root@localhost test]#
[root@localhost test]# su - samlee
[samlee@localhost ~]$ rm /backup/testfile
chown
命令英文愿意:change file ownership
命令所在路径:/bin/chown
执行权限:所有用户
功能描述:改变文件或目录的所有者
语法:chown [用户][文件或目录]
范例:$ chown nobody file1 改变文件 file1 的所有者为 nobody
chgrp
命令英文愿意:change file group ownership
命令所在路径:/bin/chgrp
执行权限:所有用户
功能描述:改变文件或目录的所属组
语法:chgrp [用户组][文件或目录]
范例:$ chgrp adm file1 改变文件 file1 的所属组为 adm
umask
命令所在路径:/bin/umask
执行权限:所有用户
功能描述:显示、设置文件的缺省权限
语法:umask [-S]
-S 以 rwx 形式显示新建文件或目录缺省权限
范例: $umask
$umask -S
0022
0-特殊权限
022- ugo ----w--w-
777-022=755 rwxr-xr-x 默认创建目录的权限
rw-r--r-- 644 = 777-022-111 默认创建文件的权限
Linux 系统中默认创建文件不能具有可执行权限 x
$ mkdir newdir02
$ ls -ld newdir02
$ touch file02
$ ls -l file02
改变创建目录或文件的默认权限
rwxrw-r-- 764
umask 777-764
umask 013
$ mkdir newdir033
$ ls -ld newdir033
which
命令所在路径:/bin/which
执行权限:所有用户
功能描述:显示系统命令所在目录
语法:which [命令名称]
范例: $ which ls
$ which ifconfig
$ which reboot
$which useradd
whereis
命令所在路径:/usr/bin/where
执行权限:所有用户
功能描述:找到文件位置及其帮助文件
语法:whereis [命令名称]
范例:whereis useradd
[root@helen ~]# whereis useradd
useradd: /usr/sbin/useradd /usr/share/man/man8/useradd.8.gz
[root@helen ~]# man /usr/share/man/man8/useradd.8.gz 用 man 命令显示帮助文件内容
find
命令所在路径:/usr/bin/find
执行权限:所有用户
功能描述:查找文件或目录
语法: find [搜索路径] [搜索关键字]
-name 根据文件名查找
* 匹配任意字符 ? 匹配单个字符
find /etc -name init*
find /etc -name init???
find /etc -name *nit*
-size 单位:数据块 512 字节 100MB=102400KB=204800
大于 +n
等于 n
小于 -n
-user 所有者
$find /home -user samless
-group 组名
-time 时间
time(天) min(分钟)
-atime
-amin
a-access 访问时间
-ctime
-cmin
c-change 文件属性(ls -l)
-mtime
-mmin
m-modify 文件内容
+n n -n
连接符
-a and 逻辑与
-o or 逻辑或
$find /etc -name inittab -o -size +204080
$ find /etc -name *init*
-type 文件类型 d-目录 l-软链接 f-二进制文件
$ find /etc -name *init* -type f
$ ls -ld `find /etc -name *init* -type d`
-exec 命令 {} \;
-ok (询问确认)
{} 代表 find 查找结果
\ 表示转义符
; 结束
$find /etc -name inittab -exec ls -l {} \;
$ \rm a 不提示删除 a 文件,因为\表示转义符
$ alias rm
alias rm='rm -i
$ find /etc -name inittab -ok ls -l {} \;
$ find /home -user test -ok rm {} \;
说明: 查找范围越小越好,服务器不能随便查找,能不 find 就尽量不 find
查找范围是当前目录时有可能出现问题
范例:
$ find /etc -name init 在目录/etc 中查找文件 init
$ find / -size +2040800 在根目录下查找大于 100M 的文件
$ find /home -user samless 在跟目录下查找所有者为 samlee 的文件
$ find /etc ctime -1 在/etc 下查找 24 小时内被修改过属性的文件和目录
$ find /etc -size +163840 -a -size -204800 在/etc 查找大于 80MB 小于 100MB 的
文件
$ find /etc/ -name inittab -exec ls -l {} \;
在/etc 下查找 inittab 文件并
显示其详细信息
locate
命令英文愿意:list files in databases
命令所在路径:/usr/bin/locate
执行权限:所有用户
功能描述:寻找文件或目录
语法:locate[搜索关键字]
说明:该名命令根据数据库查找文件,在使用该命令前用 updatedb 命令更新数据库后
再用 locate 命令。
范例:$ locate file 列出所有跟 file 相关的文件
updatedb
命令英文愿意:update the slocate database
命令所在路径:/usr/bin/update
执行权限:root
功能描述:建立整个系统目录文件的数据库
语法:updatedb
范例:#updatedb
grep
命令所在路径:/bin/grep
执行权限:所有用户
功能描述:在文件中搜索字串匹配的行并输出
语法:grep [制定字串][源文件]
范例: # grep ftp /etc/services
$grep root /etc/passwd
man
命令英文愿意:manual
命令所在路径:/usr/bin/man
执行权限:所有用户
功能描述:获得帮助信息
语法:man [命令或配置文件]
说明:man [配置文件] 获得配置文件的帮助无需路径
$ man /etc/services 错误写法
帮助类型:1——命令帮助 5——配置文件帮助
默认帮助类型是 1——命令帮助
$man 1 passwd 查看 passwd 命令的帮助 参数 1 可以不写
$jman 5 passwd 查看/etc/passwd 文件的
man 1 passwd chang
范例: $man ls 查看 ls 命令的帮助信息
$ man services 查看配置文件 services 的帮助信息
man grep | col -b > grep.txt 将 grep 命令的帮助信息去掉控制字符输出到
grep.txt 文件,便于在记事本等类似程序中查看。
info
命令英文愿意:information
命令所在路径:/usr/bin/info
执行权限:所有用户
功能描述:获得帮助信息
语法:info [任何关键字]
范例:$ info ls 查看 ls 指令的帮助信息
whatis
命令名称:whatis apropos makewhatis
命令英文愿意:search the whatis database for strings
命令所在路径: /usr/bin/whatis apropos
/usr/sbin/makewakewhatis
执行权限:All User,All User,root
功能描述:获得索引的简短说明信息
语法:whatis apropos [任何关键字]
范例: $whatis ls
$apropos fstab 相当于 man -k
$makewhatis 建立 whatis 和 apropos 搜索使用的数据库,当使用这两个命令发生
错误时,就是 whatis datebase 没有建立、
help
语法:[命令] --help;help 命令
范例:$useradd --help
gzip
命令英文愿意:GNU zip
命令所在路径:/bin/gzip
执行权限:所有用户
功能描述:压缩文件
语法:gzip 选项[文件]
说明:
1.不保留原文件。
2.只能压缩文件不能压缩目录。
3.解压文件用 gunzip [压缩文件]或 gzip -d [压缩文件]
压缩后文件格式:.gz
范例:$gzip service
gunzip
命令英文愿意:GNU unzip
命令所在路径:/bin/gunzip
执行权限:所有用户
功能描述:解压缩.gz 的压缩文件
语法:gunzip 选项 [压缩文件]
范例:$gunzip file1.gz
tar
命令所在路径:/bin/tar
执行权限:所有用户
功能描述:打包目录
语法:tar 选项[cvf] [目录]
-c 产生.tar 打包文件,必选项
-v 显示详细信息,必选项
-f 指定压缩后的文件名
-z 打包同时用 gzip 压缩
-j 打包同时用 bzip2 压缩
tar 命令解压缩语法:
-x 解包.tar 文件
-v 显示详细信息
-f 指定解压文件
-z 用 gzip 解压缩
-j 用 bunzip2 解压缩
压缩后文件格式:.tar.gz
范例: $tar -zcvf dir1.tar.gz dir1 将目录 dir1 压缩成一个打包并压缩的文件。(只适
合 Linux,不适合 UNIX)
$tar -jcvf dir1.tar.bz2 dir1
$tar -zxvf dir1.tar.gz 将压缩包文件 dir1.tar.gz 解压缩也可分布操作
$ gunzip dir1.tar.gz
$tar -xf dir1.tar
$tar -jxvf dir1.tar.bz2
file
功能描述:查看文件类型
范例: $ file /etc/services
$ file /etc
zip
命令所在路径:/usr/bin/zip
执行权限:所有用户
功能描述:压缩文件或目录(-r)
。保留原文件
语法:zip 选项[-r] [压缩后文件名称] [文件或目录]
-r 压缩目录
压缩后文件格式:.zip
说明:.zip 是 Linux 和 Windows 通用格式
范例: $ zip services.zip /etc/services 压缩文件
$ zip -r test.zip /test 压缩目录
unzip
命令所在路径:/usr/bin/unzip
执行权限:所有用户
功能描述:解压缩.zip 的文件
语法:unzip [压缩文件]
范例:$ unzip test.zip
bzip2
命令所在路径:/usr/bin/bzip2
执行权限:所有用户
功能描述:
(gzip+)
,压缩文件,压缩比高
语法:bzip2 选项 [-k] [文件]
-k 产生压缩文件后保留原文件
压缩后文件格式:.bz2
范例:$ bzip2 -k file1 产生 file1.bz2 并保留 file1 文件
$ bzip2 file1 产生 file1.bz2 不保留 file1 文件
bunzip2
命令所在路径:/usr/bin/bunzip2
执行权限:所有用户
功能描述:解压缩文件
语法:bunzip2 选项 [-k] [文件]
-k 解压缩文件后保留原文件
范例:$ bunzip2 -k file1 解压 file1.bz2 并保留 file1 文件
$ bunzip2 file1 解压 file1.bz2 不保留 file1 文件
write
命令所在路径:/usr/bin/write
执行权限:所有用户
功能描述:向另外一个用户发信息,以 Ctrl+D 作为结束。
语法:write <用户名>(必须在线)
范例:$ write samlee
wall
命令所在路径:/urr/bin/wall
执行权限:所有用户
功能描述:向所有用户广播信息
语法:wall [message] [文件名]
范例:$ wall Happy New Year !
ping
命令所在路径:/usr/bin/ping
执行权限:root
功能描述:测试网络联通性
语法:ping 选项 IP 地址
-c 次数 count
-s I 发送 CMP 数据包大小 size
范例: # ping 192.168.1.1
#ping -c 100 -s 1024 ping 192.168.1.1
ifconfig
命令所在路径:/usr/bin/ifconfig
执行权限:root
功能描述:查看网络配置信息
语法:ifconfig 选项[-a][网卡设备标识]
范例: # ifconfig
# ifconfig -a
# ifconfig eth0 192.168.0.105 配置 eth0 网卡地址为 192.168.0.105
# ifconfig eth0:1 192.168.0.106 为 eth0 配置多个 IP 地址
shutdown
命令所在路径:/usr/bin/shutdown
执行权限:root
功能描述:关机
语法:shutdown
范例:# shutdown -h now
reboot
命令所在路径:/sur/bin/reboot
执行权限:root
功能描述:重启系统
语法:reboot
范例:# reboot
shell 应用技巧
# cat /etc/shells 查看 shell 类型
/bin/sh
/bin/bash 重要应用的 shell
/sbin/nologin
/bin/tcsh
/bin/csh
/bin/ksh
base 应用技巧
命令补齐
输入文件起始字母按<Tab>补齐文件名
命令历史
用 history 命令显示用过的命令,用!给上历史命令号可执行执行过的某条
命令。按方向键↑和↓可以查找以前执行过的命令。
$ history
$ !88 执行 88 号历史记录
快捷键
ctrl+l = clear
ctrl+c 终止命令
ctrl+u 清楚光标前字符
命令别名
命令别名定义 alias 别名=命令或“命令组合”
范例:
alias copy =cp
alias xrm = "rm -r"
查看别名信息:alias
删除别名:unalias copy
ll 在 UNIX 系统中没有
tty 表示本地终端 pts 表示远程终端
输入/输出重定向
同标准 I/O 一样,shell 对于每个进程预先定义 3 个文件描述字(0、1、2)
。分别对应于:
0 (STDIN)标准输入—键盘;
1 (STDOUT)标准输出—显示器;
2 (STDERR)标准错误输出—显示器。
输出重定向
> 、>>(追加)
(0>、0>>)
$ ls -l /tmp > /tmp.msg
$ date >> /tmp.msg
输入重定向
< (1<)
wall < /etc/issue
错误输出重定向
2>、2>> 执行的命令错误时输出错误信息重定向
&> 正确和错误信息输出重定向
$ cp -R /usr /backup/usr.bak 2> /bak.erro
$ cat /bak.erro
cp: 无法创建目录 “/backup/usr.bak”: 没有那个文件或目录
$ cp -R /etc /backup 2> /backup/etc.err >/dev/null 将输出的错误信息重定
向到为设备
/dev/null 为设备,黑洞
管道
管道:讲一个命令的输出传送给另一个命令,作为另一命令的输入。
使用方法:命令 1|命令 2|命令 3......|命令 n
范例: $ ls -l /etc
$ ls -l /etc | more
$ ls -l /etc | grep init
$ ls -l /etc | grep init | wc -l 统计输出结果的数量
命令连接符
;
顺序格式 在执行多条命令花费时间较长时使用
cmd1;cmd2;cmd3
$ date;pwd;ls
&& 逻辑与 只有在&&前的命令执行成功后再执行之后的命令
cmd1 && cmd2 命令 1 执行成功后再执行命令 2
1
1
0
0
$ write jack < /root/love.msg && rm /root/love.msg
$ pwd &&ls
$pwdd &&ls
|| 逻辑或 只有在||前的命令执行失败后再执行之后的命令
cmd1 || cmd2 命令 1 执行失败后再执行命令 2
1
0
0
1
$ write jack < love.msg || mail -s "love message from mary" jack < /love.msg
mail -s 标题 用户名
命令替换符
命令替换:将一个命令的输出作为另一个命令的参数
格式为:命令 1 `命令 2`
$ which touch
$ ls -l /bin/touch
$ ls -l `which touch`
shell 内置命令 man bash 命令找不到路径 (只在 Linux)
$man bash
$man alias
help alias
help 查看内置命令的帮助