http://www.csdn.net/ http://www.arm.com/zh/ https://www.kernel.org/ http://www.linuxpk.com/ http://www.51develop.net/ http://linux.chinaitlab.com/ http://www.embeddedlinux.org.cn http://bbs.pediy.com/
分类: LINUX
2012-12-17 18:53:17
背景基础:
文件命名规则
1、除了/之外,所有的字符都是合法的。
2、 有些字符最好不用,如空格 制表符 退格符 和字符@#¥&-等
3、 避免使用 . 作为普通文件名的第一个字符
4、 大小写敏感
命令格式
命令格式 :命令 –选项 参数 例子:ls –la /etc
说明:1)当有多个选型时 可以写在一起
2)两个特殊的目录 . 和 ..,分别代表当前目录和当前目录的父目录
命令有两种
Root:(只有root可以执行的命令所放置的目录)
/sbin (super binary)
/usr/sbin (user/super binary)
All users:(所有用户可以执行的命令所放置的目录)
/bin
/usr/bin
Bin-binary 二进制
Linux系统中 所有东西都是文件(二进制文件),,,包括(命令,软件,网页,视频,压缩包等)。
(一) 文件处理命令
1、命令名称:ls(英文原意 list)
命令所在路径:/bin/ls
执行权限:所在用户
功能描述:显示所有目录文件
语法:ls 选项[-ald] [文件或目录] 例子:ls –a /
-a 显示所有文件 (包括隐藏文件) a-all
-l 详细信息显示 l-long(长格式显示)
-d 查看目录属性
例 ls –l / 得到 文件详细信息 如:drwxr-xr-x (其中第一个字符 是文件类型 )
如:drwxr-xr-x 2 root root 4096 10-01 20:52 bin
2-硬连接数 所有者 所属组 文件大小 创建或修改最后时间 文件名
文件大小数字 是指数据块 block 512字节 存储数据的最小单位
文件类型: d (目录directory)
- (二进制文件)
l (link)软连接文件 等
文件权限: Rwx 表示 read write execute (执行)
三类用户:
Rwx r-x r-x
所有者u 所属组g (group) 其他人o (others)
(user,onwer 可以转让)
2、cd(change directory)
命令名称:cd
所属路径:shell 内置命令
执行权限:所有用户
语法:cd[目录]
功能描述:切换目录
范例:$cd / 切换到根目录 $cd ..回到上一级目录
3、pwd
命令名称:pwd (print working directory )
所属路径:/bin/pwd
执行权限:所有用户
语法:pwd
功能描述:显示当前所在的工作目录
范例:$pwd /etc/rc5.d
4、touch
命令名称:touch
所属路径:/bin/touch
执行权限:所有用户
语法:touch [文件名]
功能描述:创建空文件
范例: $ touch newfile
5、mkdir
命令名称:mkdir (make directory)
所属路径:/bin/mkdir
执行权限:所有用户
语法:mkdir
功能描述:创建新目录
范例:$ mkdir newdir
5、cp
命令名称:cp (copy)
所属路径:/bin/cp
执行权限:所有用户
语法:mkdir
功能描述:复制文件
范例:$ cp file1 file2 dir1 (将文件file1 file 2复制到目录dir1 。。)
$ cp –R dir1 dir2 (将dir1下的所有文件复制到dir2下 cp –R/etc /test)
5、mv
命令名称:mv(move)
所属路径:/bin/mv
执行权限:所有用户
语法:mv []
功能描述:移动文件 改文件名
范例:$ mv file1 file3(将当前目录下的文件file1更名为file3)
$ mv file2 dir2(将文件file2移动到目录dir2下)
5、rm
命令名称:rm(remove)
所属路径:/bin/rm
执行权限:所有用户
语法:rm –r [文件或目录]
-r 删除目录
功能描述:删除文件
范例:$ rm file3 (删除文件file3,会提示确认删除? rm –f 文件名 强制删除)
$ rm –r dir1 (删除目录dir,提示确认删除? $ rm –rf dir1 强制删除目录)
$ rmdir 删除空目录
有时候移动复制 移动 会时间长 按ctrl+C 可以终止
6、cat
命令名称:cat(concatenate and display files)
所在路径:/bin/cat
执行权限:所有用户
语法:cat [文件名]
功能:查看显示文件内容
范例:$ cat /etc/issue
$ cat /etc/services
6、more
命令名称:more
所在路径:/bin/more
执行权限:所有用户
语法:more [文件名]
(空格)或 f 显示下一页
(enter) 显示下一行
(q 或者Q) 退出
功能:分页显示文件内容
范例:$ more /etc/services
7、head
命令名称: head
所在路径:/bin/ head
执行权限:所有用户
语法:head –num [文件名]
功能:查看显示文件前几行
范例:$ head -20 /etc/services
8、tail
用法同head
查看文件最后几行
例子:$ tail -3 /etc/services
$ tail –f /etc/services 查看动态文件信息(用于监视日志文件 发生变化 默认十行)
9、ln
命令名称: ln (link)
所在路径:/bin/ln
执行权限:所有用户
语法 :
ln –s [源文件] [目标文件]
-s 创建软连接
功能:
范例:$ ln –s /etc/issue /issue.soft (创建文件/etc/issue的软连接/issue.soft)
软连接 lrwxrwxrwx (权限) 类似于windows的快捷方式
$ ln /etc/issue /issue.hard (创建文件/etc/issue的硬连
接/issue.hard)
硬连接 类似windows 拷贝(大小 权限都不变) 不同点是 同
步更新Linux 中内核处理任何东西都要有一个数字标记(文件
必须有一个 inode i节点)
文件权限管理管理命令
1、chmod
命令名称:chmod(change the permission mode of a file)
所在路径:/bin/chmod
执行权限:所有用户
语法 :
Chmod[{ugo}{+-=}{rwx}] [文件或目录]
Chmod [mode=421] [文件或目录]
功能:
改变文件或目录权限
范例:
$ chmod g+w file1(赋予文件file1所属组写权限)
$ chmod 777 dir1 (设定目录dir1为所有用户具有全部权限)
chmod u+wx;chmod g+rw ;chmod o-r;chmod o=rwx
重点:用数字对应权限(r-4;w-2;x-1)rwxr-xr-- ——754
752—— rwxr-x-w-
注:Su –用户名 (切换用户)
文件:r-cat、more、head、tail;w-echo、vi;x-命令、脚本
目录:r-ls;w-touch、mkdir、rm;x-cd、
注意:对文件有写权限只有当目录(rx)必须有写权限才能写进去
文件权限目录总结
代表字符 |
权限 |
对文件的含义 |
对目录的含义 |
R |
读权限(cat more head tail) |
可以查看文件的内容 |
可以列出目录中的内容 |
W |
写权限(echo vi) |
可以修改文件的内容 |
可以在目录中创建、删除文件 |
X |
可执行(命令 脚本) |
可以执行文件 |
可以进入目录 |
9、chown
命令名称:change file ownership
所在路径:/bin/ chown
执行权限:所有用户
语法 :
Chown [用户] [文件或目录]
功能:改变文件或目录的所有者
范例:$ chown nobody file1(改变文件file1的所有者为nobody(系统默认存 在))
注:useradd 用户名 passwd 密码 即可添加正确用户
9、chgrp
命令名称:change file group ownership
所在路径:/bin/ chgrp
执行权限:所有用户
语法 :
Chown [用户组] [文件或目录]
功能:改变文件或目录的所属组
范例:$ chgrp adm file1(改变文件file1的所属组为adm(系统自带))
9、umask
背景:我们在创建目录或者文件时产生默认权限
命令名称:umask
所在路径:/bin/ umask
执行权限:所有用户
语法 :umask [-S]
-S 以rwx形式显示新建文件或目录缺省权限
功能:显示 设置文件的缺省权限
范例:$ umask –S(结果:u=rwx,g=rx,o=rx)
一般用umask 显示结果为0022
0- 特殊权限位 022-用户权限位,权限掩码值
数字显示计算:
777
— 022
— ————
755(用户权限)
用 umask 027 可以改名默认文件权限为750(其他人o无任何权限)
Linux权限规则:
缺省创建的文件不能授予可执行x权限(所有真正touch 文件名 时显示文件权限为-rw-r-r--)
文件搜索命令
1、 which
命令名称:which
命令所在路径:/user/bin/which
执行权限:所有用户
语法:which [命令名称]
功能:显示系统命令所在目录
范例:$ which ls
区别: which : 可以提供这个命令的别名信息
Whereis :可以提供这个命令的帮助信息
2、 find(比较复杂命令)
命令名称:find
命令所在路径:/user/bin/find
执行权限:所有用户
语法:which [搜索路径] [搜寻关键字]
功能:查找文件或目录
范例:$ find /etc/ -name init(在目录/etc中查找文件init)
$ find / -size +204800(在根目录下查找大于100MB的文 件)
204800指数据块100MB=102400KB=204800
Block数据块 512字节=0.5KB
$ find /home –user samlee(在根目录下查找所有 者为 samlee的文件)
注:不要再根目录下查找。。(占用消耗很大资源)
通配符:* 匹配任意字符 init*(包括0个字符)
?用来匹配单个字符
·时间查找:1、天:ctime 、atime、mtime
2、分钟:cmin、amin、mmin
c—change改变;表示文件属性被修改过(所有者、所属 组、权限)
a-access 访问
m-modify 表示文件内容被修改过
-之内 +超过 例如:find /etc –mmin -120
1、连接符 -a and 逻辑与 -o or 逻辑或
-type 文件类型 (f 二进制文件;l软连接文件;d 目录)
2、连接符(固定格式) find ……-exec 命令 {} \;
解释:{ }find 查询的结果集;
\ 转义符 符合命令使用本身的含义;
? 分号;表示结果结束语句
·i节点查找(用来删除特殊文件名)
Ls –i(显示i节点)
Find .inum 16(查找)
Find .inum 16 –exec rm {} \;(删除节点为16的文件)
例:find /etc –name inittab –exec –l {} \;(查看inittab文件详细内容)
Find /home –user samlee –exec rm –rf {} \;(强制(rf)删 除用户 samlee)
Find /etc –name inittab –ok rm { } \;(用ok询问防误删重要文件)
Find /etc –name init* -a –type f –exec ls –l {} \;(显示包含init二进 制文件详细信息)
3、 locate(unix系统的命令速度很快)
命令名称:locate(list files in database)
命令所在路径:/user/bin/locate
执行权限:所有用户
语法:locate [搜寻关键字]
功能:寻找文件或目录
范例:$ locate file (列出所有跟file相关的文件)
4、 updatedb
命令名称:updatedb(update the slocate database)
命令所在路径:/user/bin/updated
执行权限:root
语法:updatedb
功能:建立整个系统目录文件的数据库
范例:# updated
5、 grep
命令名称:grep
命令所在路径:/bin/grep
执行权限: All User
语法:grep [指定字串] [源文件]
功能:在文件中搜索字串匹配的行并输出
范例:# grep ftp /etc/services
帮助命令
1、man
命令名称:man(manual)
命令所在路径:user/bin/man
命令执行权限:All User
语法:man [命令或配置文件]
更能:帮助
范例:$ man ls(查看ls命令的帮助信息)
$ man services(查看配置文件services的帮助信息)
2、info
命令名称:info(information)
命令所在路径:user/bin/info
执行权限:All User
语法:info [任何关键字]
功能:获得帮助信息
范例: $ info ls(查看ls指令的帮助信息)
(和man区别是呈现信息方式不同)
3、whatis
命令名称:whatis apropos makewhatis(search the whatis database for strings)
命令所在路径:/user/bin/whatis apropos
/user/sbin/makewhatis
执行权限:All User
语法:whatis(apropos/makewhatis) [任何关键字]
功能:获得索引的简短说明信息
范例:$ whatis ls $ apropos fstab(相当于man -k)
# makewhatis
建立whatis和apropos搜索使用的数据库,当使用这两个命令发生错误时,就是whatis database没有建立
注:命令(如umask、ls等) --help 显示命令选项设置信息
4、help
功能:查看shell内置命令的帮助
注:linux笼统划分:硬件 内核 shell(是一种软件)
命令和配置文件重名:
Man 5 passwd (5指配置文件帮助)
Man bash
压缩解压命令
1、gzip
命令名称:gzip (GNU zip)
所在路径:bin/zip
执行权限:All User
语法:gzip 选项 [文件]
功能:压缩文件
压缩后文件格式:.gz
注:1、linux下的压缩文件windows用winRAR都可以压缩
而windows下的压缩文件linux却不是都可以压缩
2、gzip只能压缩文件 不能压缩目录(解决方法呢??)
3、不保留源文件
2、gunzip
命令名称:gunzip(=gzip -d)
所在路径:/bin/gunzip
执行权限:All User
语法:gunzip 选项 [压缩文件]
功能:解压缩.gz的压缩文件
范例: # gunzip file1.gz
3、tar
命令名称:tar
所在路径:bin/tar
执行权限:所有用户
语法:
(一、打包语法)
tar 选项 [-cvf] [目录]
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
(二、解压缩语法)
-x 解包.tar 文件
-v 显示详细信息
-f 指定压缩文件
-z 解压缩
功能:打包目录(把一个目录打包成文件)
压缩后文件格式:.tar.gz
范例:
(一)(已存在目录 newdir)
# tar –zcf newdir.tar.gz newdir(# tar –zcf new newdir)
(打包后文件名.后缀)(被打包文件) (打包后文件名new默认后缀.tar.gz)
$ tar –zcf dir1.tar.gz dir1(将目录dir1压缩成一个打包并压 缩的文件)
(二)(已存在目录包newdir.tar.gz)
如:tar –zxf newdir.tar.gz
分两步:gunzip newdir.tar.gz;tar –zf newdir.tar
5、zip(windows和linux默认通用格式)
命令名称:zip
所在路径:/user/bin/zip
执行权限:所有用户
语法:zip 选项 [-r] [压缩后文件名称]
-r 压缩目录
功能:压缩文件或是目录
压缩后文件格式:.zip(和tar格式类似)
范例:
$ zip services.zip /etc/services(压缩文件)
$ zip –r newdir.zip newdir(压缩目录)
特点:1、和windows兼容最好的一种压缩格式
2、可以解压缩目录(和tar区别)
5、unzip
命令名称:unzip
所在路径:/user/bin/ unzip
执行权限:所有用户
语法:zip [压缩文件]
功能:解压.zip的压缩文
范例:$ unzip tesx.zip
6、bzip2
命令名称:bzip2
所在路径:user/bin/bzip2
执行权限:所有用户
语法:bzip2选项 [-K] [文件]
功能:压缩文件
压缩后文件格式:.bz2
范例:$ bzip2 –k file1 ( -k保留源文件)
特点:压缩比惊人!!适合压缩大文件
7、bunzip2
命令名称:tar
所在路径:user/bin/bzip2
执行权限:所有用户
语法:bunzip选项 [-K] [压缩文件]
-k解压后保留源文件
功能:解压缩
范例:$ bunzip2 –k file1.bz2
总结:.gz .tar.gz .zip .bz2
网络通信指令
1、write
命令名称:write
所在路径:/user/bin/write
权限:All User
语法:write <用户名>
功能:向另一个用户发消息,以CTRL+D 结束
范例:#write samlee
2、wall
命令名称:wall
所在路径:/user/bin/ wall
权限:All User
语法:wall [message] [文件名]
功能:向所有用户广播信息
范例:# wall Happy New Year!
3、ping
命令名称:ping
所在路径:/user/sbin/ ping
权限:root
语法: ping ip地址
功能:测试网络连通性
范例:# ping 192.178.22.2;ping 127.0.0.1(回环地址)
# ping –c 4 192.169.9.2(发送icmp请求包次数4)
# ping –s 60000 192.293.93.3 (发送icmp包大小是60000)
Ctrl+C终止
4、ipconfig
命令名称:ipconfig
所在路径:/user/sbin/ ipconfig
权限:root
语法: ping 选项 [-a] [网卡设备标识]
-a 显示所有网卡信息
功能:查看网络设置信息
范例:# ipconfig –a(查看网卡信息)
5、shutdown
命令名称:shutdown
所在路径:/user/sbin/ shutdown
权限:root
语法:shutdown
功能:关机
范例:# shutdown –h now
6、reboot
命令名称:reboot
所在路径:/user/sbin/ reboot
权限:root
语法:reboot
功能:重启系统
范例:# reboot
Shell 应用技巧
1、bash应用
Tab 补齐文件名
Clear(ctrl+L) 清屏
ctrl+D退出广播(wall)
Ctrl+u 删除光标前面的命令行
History 显示命令列表 按方向键上和下可以查找以前执行过的 命令
2、命令别名:
范例:alias copy=cp(一个命令,复制)
alias drm=”rm -rf”(命令的组合)
unalias drm(删除命令别名)
3、输入/输出重定向(输入不从键盘,输出不到显示器)
同标准I/O(如键盘是标准输入,显示器是标准输出)一样,shell对于每一个进程预先定义3个描述字(0、 1、2)。分别对应于:
0 (STDIN)标准输入
1 (STDOUT)标准输出
2 (STDERR) 标准错误输出
范例:0> 输出重定向:ls –l /tmp > /tmp.msg
Date >> /tmp.msg
1< 输入重定向:wall < /etc/motd(将motd这个文件内容广播出去)
2> 错误输出重定向:cp –R /user /backup/user.bak 2> /bak.error(2的含义是避免和0重复符号>):备份user内容到backup目录下的user.bak同时产生错误日志文件bak.error
再如:ls /kdls 2> ls.err(kdls不存在)
Cat ls.err(结果:ls :/kdls: No such file or directory)
管道
管道:将一个命令的输出传送给另一个命令,作为另一个命令的输入。
使用方法:命令1|命令2|命令3|……|命令n
范例:ls –l /etc | more
Ls –l /etc | grep init
Ls –l /etc | grep init | wc –l(wc –l 查看一个文件多少行(或者统计文件个数)如:wc –l etc/services)
(统计在etc下包含关键字init文件的个数)
命令连接符
;用;间隔的各个命令按顺序依次执行
如:pwd ;ls ;date
&& 命令执行存在逻辑与关系,只有&&前面的命令执行成功后,它 后面的命令才能执行
如:write mary < /home/sam/love.txt &&rm /home/sam/love.txt
(第一步发送成功情书后第二步销毁)
|| 前后命令执行存在逻辑或关系
write mary < /home/sam/love.txt ||mail mary /home/sam/love.txt
命令替换符
命令替换:将一个命令的输出作为另一个命令的参数
格式:命令1 `命令2`
范例:ls –l `which touch`(``是命令替换符,键盘数字1旁边符号)
即# which touch ls –l /bin/touch