[Linux] 三, 常用命令 [ 1 ]
课程大纲 {
*1 文件处理命令 [ ls, cp, mv, rm, cat, ln]
*2 权限管理命令 [ chmod u + r g - w o = x, chown, chgrp, umask ]
*3 文件搜索命令 [ which, find, locate, updatedb, grep ]
*5 压缩解压命令 [ gzip, gunzip, tar, zip, bzip2]
*6 网络通信命令 [ write, wall, ping, ifconfig]
*4 帮助命令 [ man, info, whatis apropos, help]
*7 系统关机命令
*8 Shell应用技巧
}
文件命名规则和命令格式 {
1), 除了 / 之外,所有的字符都合法。 但是不要给自己带来麻烦! a b ; 用 . 开头的文件是隐藏文件!!!
命令格式 : 命令 -选项 参数
例 : ls -la /etc 说明 : 两个特殊的目录 . 和 .. , 分别代表当前目录和当前目录的父目录!!
}
文件处理命令 {
#1
ls, cd[命令所在路径:shell内置命令], pwd[/bin/pwd], touch[/bin/touch], cp[/bin/cp], mv...
-- 1* 命令名称 : ls 2* 命令英文原意 :list 3* 命令所在路径 : /bin/ls 4* 执行权限 : 所有用户 5* 功能描述 : 显示目录文件
语法 : ls 选项[-ald] [文件或目录]
-l 显示详细信息。 -d 查看目录属性。 ls -ld 自己试一试吧!只是这个目录。。
扩展常知识 『
root : { /sbin 和 /usr/sbin }
All users : { /bin 和 /usr/bin }
bin - binary / usr - user / sbin - super binary
*** ls -l { drwxr-xr-x 2 hp hp 4096 2012-12-25 16:18 dlinux
第一部分 {
文件类型 d 目录directory
- 二进制文件
l 软链接文件link
rwx r-x r-x
所有者u 所属组g 其他人o
user group others
(所有者可以转让)
}
第二部分 { 2 - 硬链接数 }
第三, 四部分 {
hp hp
所有者 所属组
}
第五部分 {
4096 - 文件大小 [不是很准确,标记目录本身的大小,不是目录总大小] 数据块(512字节1单位)
组织管理数据的方式,每种OS都有自己的,比如 NTFS, ext3 ...
存储数据的最小单位就叫做数据块,这一这样理解!!
文件向。。。存储的时候,至少要占用一个数据块。 (你就 60斤,也得做一个椅子,200斤做一个,600斤可能做两个!)
分你做什么,数据块越小存取速度越小,数据块越大存取的时候浪费空间越大。
分你做什么,调数据块多大合适。。。有个别时候!!
}
第六部分 { 创建的时间,或者最后的修改时间! }
第七部分 : 文件目录的名称
』
----------------
#2 cp [复制]
cp /etc/xady /test 复制普通文件
cp -R /home/neil /test 复制目录
#3 mv [功能 : 剪切 / 更名]
mv file1 file3 更改名字
mv file1 /tmp 剪切
mv file1 /tmp/file3 剪切+更改名字
#4 rm 删除文件 rmdir (删除空目录(只))
rm file1 删除文件 (有提示), rm -f file1 (无提示,强制,但是这样很危险!)
rm -r file2 删除目录 [特别能问,提示] rm -rf file3(目录名称)
#5 cat 查看文件内容 [最好是不是很长的文件]
* more 分页显示文件内容
{ (空格/f) 显示下一页 Enter 显示下一行 q/Q 退出 }
* head -num [查看文件前几行,默认10行]
* tail -num [文件名] 【 -f 动态显示 】
#6 ln -s [源文件] [目标文件]
-s 软链接
软链接文件的权限很特殊 lrwxrwxrwx --> 10 (很小,只是一个符号链接) 指向到源文件
软连接的文件类型是 l
: 类似于 windows 快捷方式! 软连接跨文件系统!!
**
ln [源文件] [目标文件] “硬链接”
硬链接相当于拷贝,但是和拷贝还有所不同。(不同的是同步更新)
cp -p ... 可以保留原始的时间值
echo "this is a test" >> file2
删除源文件的话,硬链接依然是同步的!
--------- 为什么能同步更新呢? --------
内核只认识 数字 1 2 3 4 ... , 不认识 a b c d...
每个文件都有一个数字标识
在linux中要处理,用户,用户要有uid, 要处理,组,要有组 id
要处理 进程,进程要有 pid, 都要有个数字标识,内核就是根据这些标识来处理对象的
文件的数字标识是 : inode
内核处理任何方式都要有个标识
每个文件必须有一个 i节点,没有的话就没法访问了!
硬链接与源文件拥有相同的 inode, 所以可以同步更新!
**----你要知道linux的文件系统存储数据实际上都分为两个部分:inode和data。inode存储的是数据的属性(例如rwx等),
data里面存储的是数据。硬链接就是在inode里面加了一个指向同一个数据的标记。删除的时候只是把这个标记删除了,
所以硬链接还可以打开。
不同的分区文件系统不一样 ... 硬链接不跨文件系统。
------------------------------------------------------
权限处理命令 {
chmod u + r
g - w
o = x
u - 所有者
g - 所属组
o - 其他人 可以 chmod g=rwx file1
授权的方法简单而直观,很好 !
rwxr-xr-- 对应数字 754
chmod 数字 文件名
rwx 的深入理解 {
/home/hp/file1
/home/hp 777
/home/hp/file1 000 但是现在可以删除这个文件,普通用户就可以!
}
文件
r - cat, more, head, tail
w - echo, vi. [并不代表你可以删除这个文件]
x - 命令,脚本
目录
r - ls
w - touch, mkdir, rm 可以对这个目录 创建删除文件
x - cd
chown 命令 { 可以改变所有者
nobody 系统自带的用户
chown nobody file1
-- chgrp 改变所属组 --
}
添加用户 {
useradd
passwd
}
创建文件和目录的时候有一个默认的权限 {
umask, umask -S 可以查看缺省的文件权限
0022 第一个 0 - 特殊权限位
022 - 用户权限位[权限掩码值] 777 - 022 = 755
755 - 111 = 644
644 linux权限默认规则 ;
缺省创建的文件不能被授予可执行x权限
如果你一定要更改也可以,你想改成 750,你觉得合理!
umask 027 可以改变!!
}
文件搜索命令: {
#1 which
功能描述:显示系统命令所在目录 [不同的是可以显示别名]
范例:$ which ls
whereis [不同是可以看到命令所在帮助文档位置]
#2 find
命令所在路径 : /usr/bin/find
语法:find [搜索路径] [搜寻关键字]
功能描述:查找文件或目录
-1-
范例:
$ find /etc -name init* 在目录/etc中查找init开头的文件
$ find / -size +204800 在根目录下查找大于100MB的文件 block=512B
大于 : +, 小于 : - , 等于 : 不写 +, -;
$ find / -user sam 在根目录下查找所有者为sam的文件
find 原则 - 尽量节省系统资源
-2-
##1 天 ctime, atime, mtime
##2 分钟 cmin , amin, mmin
c-change 改变, 表示文件属性被修改过,所有者,所属组,权限
a-access 访问
m-modify 修改, 表示文件内容被修改过
-之内, +超过
find /etc -mmin -120
我们刚讲了 4 个find的选项,其实不下 40 个!要学会看文档!
-3- 连接符 -a and 逻辑与 -o or 逻辑或
$ find /etc -ctime -1 在/etc下查找24小时内被修改过属性的文件和目录
$ find /etc -size +163840 -a -size -204800 在/etc下查找大于80MB小于100MB的文件
$ find /etc -name init* -a -type f [ 二进制文件 ]
$ find /etc -name init* -a -type l [ 软链接文件 ]
-type 文件类型 f 二进制文件 l 软链接文件 d 目录
连接符 find ..... -exec 命令 {} \;
{} find 查询的结果 \ 转义符 【ls \ls】
$ find /etc -name inittab -exec ls -l {} \;
在/etc下查找inittab文件并显示其详细信息
$ find /test -name testfile3 -exec rm {} \;
$ find /etc -name inittab -ok ls -l {} \; 能询问一下 -ok
$ find /etc -name inittab -a -type f -exec ls -l {} \;
文件名很奇怪的文件 rm -- -abc rm "a b"
$ find . -inum 16 -exec rm {} \;
------------------------------------------------------------------------------------------
#3 locate [linux特有的 在文件数据库中查找 很快]
语法:locate [搜索关键字] 功能描述:寻找文件或目录 范例: $ locate file ** 列出所有跟file相关的文件
#4 updatedb 执行权限:root 语法:updatedb 功能描述:建立整个系统目录文件的数据库 范例:# updatedb
#5 grep 功能描述:在文件中搜寻字串匹配的行并输出 范例:# grep ftp /etc/services
}
帮助命令 {
#1 man man [会调用more]
范例: $ man ls 查看ls命令的帮助信息
$ man services 查看配置文件services的帮助信息 【只能是配置文件】
如果都有的话,会优先命令再配置文件
帮助分多种 :第一种是命令,第五种是配置文件
man 5 passwd man passwd man 1 passwd
#2 info [linux特有的,和 man 只是呈现形式略有差别]
语法:info [任何关键字]
范例: $ info ls 查看ls指令的帮助信息
#3 whatis apropos
指令所在路径:/usr/bin/whatis apropos /usr/sbin/makewhatis
执行权限: All User, All User, root
语法: whatis apropos [任何关键字]
功能描述: 获得索引的简短说明信息
范例: $ whatis ls
$ apropos fstab
相当于man -k
帮助指令:whatis
范例: #make whatis
建立whatis和apropos搜索使用的数据库,当使用这两个命令发生错误时,就是whatis database没有建立
#4 help [查看shell内置命令的帮助]
硬件 - 内核 - shell
man bash[一个内置命令就行] 告诉你当前 shell 有哪些内置命令
}
*1 文件处理命令 [ ls, cp, mv, rm, cat, ln]
*2 权限管理命令 [ chmod u + r g - w o = x, chown, chgrp, umask ]
*3 文件搜索命令 [ which, find, locate, updatedb, grep ]
*5 压缩解压命令 [ gzip, gunzip, tar, zip, bzip2]
*6 网络通信命令 [ write, wall, ping, ifconfig]
*4 帮助命令 [ man, info, whatis apropos, help]
*7 系统关机命令
*8 Shell应用技巧
}
文件命名规则和命令格式 {
1), 除了 / 之外,所有的字符都合法。 但是不要给自己带来麻烦! a b ; 用 . 开头的文件是隐藏文件!!!
命令格式 : 命令 -选项 参数
例 : ls -la /etc 说明 : 两个特殊的目录 . 和 .. , 分别代表当前目录和当前目录的父目录!!
}
文件处理命令 {
#1
ls, cd[命令所在路径:shell内置命令], pwd[/bin/pwd], touch[/bin/touch], cp[/bin/cp], mv...
-- 1* 命令名称 : ls 2* 命令英文原意 :list 3* 命令所在路径 : /bin/ls 4* 执行权限 : 所有用户 5* 功能描述 : 显示目录文件
语法 : ls 选项[-ald] [文件或目录]
-l 显示详细信息。 -d 查看目录属性。 ls -ld 自己试一试吧!只是这个目录。。
扩展常知识 『
root : { /sbin 和 /usr/sbin }
All users : { /bin 和 /usr/bin }
bin - binary / usr - user / sbin - super binary
*** ls -l { drwxr-xr-x 2 hp hp 4096 2012-12-25 16:18 dlinux
第一部分 {
文件类型 d 目录directory
- 二进制文件
l 软链接文件link
rwx r-x r-x
所有者u 所属组g 其他人o
user group others
(所有者可以转让)
}
第二部分 { 2 - 硬链接数 }
第三, 四部分 {
hp hp
所有者 所属组
}
第五部分 {
4096 - 文件大小 [不是很准确,标记目录本身的大小,不是目录总大小] 数据块(512字节1单位)
组织管理数据的方式,每种OS都有自己的,比如 NTFS, ext3 ...
存储数据的最小单位就叫做数据块,这一这样理解!!
文件向。。。存储的时候,至少要占用一个数据块。 (你就 60斤,也得做一个椅子,200斤做一个,600斤可能做两个!)
分你做什么,数据块越小存取速度越小,数据块越大存取的时候浪费空间越大。
分你做什么,调数据块多大合适。。。有个别时候!!
}
第六部分 { 创建的时间,或者最后的修改时间! }
第七部分 : 文件目录的名称
』
----------------
#2 cp [复制]
cp /etc/xady /test 复制普通文件
cp -R /home/neil /test 复制目录
#3 mv [功能 : 剪切 / 更名]
mv file1 file3 更改名字
mv file1 /tmp 剪切
mv file1 /tmp/file3 剪切+更改名字
#4 rm 删除文件 rmdir (删除空目录(只))
rm file1 删除文件 (有提示), rm -f file1 (无提示,强制,但是这样很危险!)
rm -r file2 删除目录 [特别能问,提示] rm -rf file3(目录名称)
#5 cat 查看文件内容 [最好是不是很长的文件]
* more 分页显示文件内容
{ (空格/f) 显示下一页 Enter 显示下一行 q/Q 退出 }
* head -num [查看文件前几行,默认10行]
* tail -num [文件名] 【 -f 动态显示 】
#6 ln -s [源文件] [目标文件]
-s 软链接
软链接文件的权限很特殊 lrwxrwxrwx --> 10 (很小,只是一个符号链接) 指向到源文件
软连接的文件类型是 l
: 类似于 windows 快捷方式! 软连接跨文件系统!!
**
ln [源文件] [目标文件] “硬链接”
硬链接相当于拷贝,但是和拷贝还有所不同。(不同的是同步更新)
cp -p ... 可以保留原始的时间值
echo "this is a test" >> file2
删除源文件的话,硬链接依然是同步的!
--------- 为什么能同步更新呢? --------
内核只认识 数字 1 2 3 4 ... , 不认识 a b c d...
每个文件都有一个数字标识
在linux中要处理,用户,用户要有uid, 要处理,组,要有组 id
要处理 进程,进程要有 pid, 都要有个数字标识,内核就是根据这些标识来处理对象的
文件的数字标识是 : inode
内核处理任何方式都要有个标识
每个文件必须有一个 i节点,没有的话就没法访问了!
硬链接与源文件拥有相同的 inode, 所以可以同步更新!
**----你要知道linux的文件系统存储数据实际上都分为两个部分:inode和data。inode存储的是数据的属性(例如rwx等),
data里面存储的是数据。硬链接就是在inode里面加了一个指向同一个数据的标记。删除的时候只是把这个标记删除了,
所以硬链接还可以打开。
不同的分区文件系统不一样 ... 硬链接不跨文件系统。
------------------------------------------------------
权限处理命令 {
chmod u + r
g - w
o = x
u - 所有者
g - 所属组
o - 其他人 可以 chmod g=rwx file1
授权的方法简单而直观,很好 !
rwxr-xr-- 对应数字 754
chmod 数字 文件名
rwx 的深入理解 {
/home/hp/file1
/home/hp 777
/home/hp/file1 000 但是现在可以删除这个文件,普通用户就可以!
}
文件
r - cat, more, head, tail
w - echo, vi. [并不代表你可以删除这个文件]
x - 命令,脚本
目录
r - ls
w - touch, mkdir, rm 可以对这个目录 创建删除文件
x - cd
chown 命令 { 可以改变所有者
nobody 系统自带的用户
chown nobody file1
-- chgrp 改变所属组 --
}
添加用户 {
useradd
passwd
}
创建文件和目录的时候有一个默认的权限 {
umask, umask -S 可以查看缺省的文件权限
0022 第一个 0 - 特殊权限位
022 - 用户权限位[权限掩码值] 777 - 022 = 755
755 - 111 = 644
644 linux权限默认规则 ;
缺省创建的文件不能被授予可执行x权限
如果你一定要更改也可以,你想改成 750,你觉得合理!
umask 027 可以改变!!
}
文件搜索命令: {
#1 which
功能描述:显示系统命令所在目录 [不同的是可以显示别名]
范例:$ which ls
whereis [不同是可以看到命令所在帮助文档位置]
#2 find
命令所在路径 : /usr/bin/find
语法:find [搜索路径] [搜寻关键字]
功能描述:查找文件或目录
-1-
范例:
$ find /etc -name init* 在目录/etc中查找init开头的文件
$ find / -size +204800 在根目录下查找大于100MB的文件 block=512B
大于 : +, 小于 : - , 等于 : 不写 +, -;
$ find / -user sam 在根目录下查找所有者为sam的文件
find 原则 - 尽量节省系统资源
-2-
##1 天 ctime, atime, mtime
##2 分钟 cmin , amin, mmin
c-change 改变, 表示文件属性被修改过,所有者,所属组,权限
a-access 访问
m-modify 修改, 表示文件内容被修改过
-之内, +超过
find /etc -mmin -120
我们刚讲了 4 个find的选项,其实不下 40 个!要学会看文档!
-3- 连接符 -a and 逻辑与 -o or 逻辑或
$ find /etc -ctime -1 在/etc下查找24小时内被修改过属性的文件和目录
$ find /etc -size +163840 -a -size -204800 在/etc下查找大于80MB小于100MB的文件
$ find /etc -name init* -a -type f [ 二进制文件 ]
$ find /etc -name init* -a -type l [ 软链接文件 ]
-type 文件类型 f 二进制文件 l 软链接文件 d 目录
连接符 find ..... -exec 命令 {} \;
{} find 查询的结果 \ 转义符 【ls \ls】
$ find /etc -name inittab -exec ls -l {} \;
在/etc下查找inittab文件并显示其详细信息
$ find /test -name testfile3 -exec rm {} \;
$ find /etc -name inittab -ok ls -l {} \; 能询问一下 -ok
$ find /etc -name inittab -a -type f -exec ls -l {} \;
文件名很奇怪的文件 rm -- -abc rm "a b"
$ find . -inum 16 -exec rm {} \;
------------------------------------------------------------------------------------------
#3 locate [linux特有的 在文件数据库中查找 很快]
语法:locate [搜索关键字] 功能描述:寻找文件或目录 范例: $ locate file ** 列出所有跟file相关的文件
#4 updatedb 执行权限:root 语法:updatedb 功能描述:建立整个系统目录文件的数据库 范例:# updatedb
#5 grep 功能描述:在文件中搜寻字串匹配的行并输出 范例:# grep ftp /etc/services
}
帮助命令 {
#1 man man [会调用more]
范例: $ man ls 查看ls命令的帮助信息
$ man services 查看配置文件services的帮助信息 【只能是配置文件】
如果都有的话,会优先命令再配置文件
帮助分多种 :第一种是命令,第五种是配置文件
man 5 passwd man passwd man 1 passwd
#2 info [linux特有的,和 man 只是呈现形式略有差别]
语法:info [任何关键字]
范例: $ info ls 查看ls指令的帮助信息
#3 whatis apropos
指令所在路径:/usr/bin/whatis apropos /usr/sbin/makewhatis
执行权限: All User, All User, root
语法: whatis apropos [任何关键字]
功能描述: 获得索引的简短说明信息
范例: $ whatis ls
$ apropos fstab
相当于man -k
帮助指令:whatis
范例: #make whatis
建立whatis和apropos搜索使用的数据库,当使用这两个命令发生错误时,就是whatis database没有建立
#4 help [查看shell内置命令的帮助]
硬件 - 内核 - shell
man bash[一个内置命令就行] 告诉你当前 shell 有哪些内置命令
}