Linux下的常用命令
一、文件处理命令
1. 显示目录文件
命令名称:ls
英文名称原意:list
命令所在路径:/bin/ls
执行权限:所有用户
功能描述:显示目录文件
语法:ls 选项[-ald] [文件或目录]
-a 显示所有文件,包括隐藏文件
-l 详细信息显示
-d 查看目录属性
ls -a
ls -l
ls -a /tmp
拓:当查看ls其他的选项时,可以利用命令:ls --help 列出ls命令的选项,--help也适用于其他命令。
注:3个选项可以组合使用,如:ls -ld / (其中-ld可以互换)
颜色表示:(每种版本也不相同)
黑色: 二进制标记
(其他后补)
再怎么把颜色去掉
————————————————
输入后显示的信息
ls -l /
drwxr-xr-x 2 root root 4096 2012-02-22 03:21 bin
显示 |
d |
rwx |
r-x |
r-x |
2 |
root |
root |
4096 |
2012-02-22 03:21 |
bin |
示意 |
文件类型 |
U |
G |
O |
硬连接数 |
所有者 |
所属组 |
文件大小(不精确) |
时间 |
文件名 |
d:
4种文件类型:
d:目录 directory
-:普通文件
b:块设备文件
l:软链接文件link
rwx:
3种基本权限
r:read 读权限 ——
w:write 写权限
x:execute 执行权限
每一种代表了一类用户
rwx: ——所有者u:包括user,onwer
r-x: ——所属组g, group
r-x: ——其他人o,Other
举例:
rwxr-xr-x
rwx r-x r-x (即上面每三个分为一组)
所有者 u 所属组 其他人o
user g other
owner
所以三组的各个权限就都知道了
————————————————
后面的数字:“2”
硬链接:
4096: 文件大小(不准确)表示创建或最后修改的时间
解释:每个文件至少要占用一个数据块,数据块是linux最小的数据存取单位,一个数据块一般是512字节,可调整大小,如果有很少的数据,则512字节其他的空间就被浪费掉了。
2.切换目录
命令名称:cd
命令英文原意:change directory
功能描述:切换目录
命令所在路径:shell内置命令
执行权限:所有用户
语法:cd [目录]
范例:$cd / 切换到根目录
$cd .. 回到上一级目录
3.显示当前工作目录
命令名称:pwd
命令英文原意:print working directory
功能描述:显示当前所在的工作目录
命令所在路径:/bin/pwd
执行权限:所有用户
语法:pwd
范例:$pwd
4.创建新目录
命令名称:mkdir
命令英文原意:make directories
功能描述:创建新目录
语法:mkdir [目录名]
范例:$mkdir newdir
在根目录下创建新目录:$mkdir /newdir
在当前目录下创建新目录:$mkdir newdir
5.创建文件
命令名称:touch
命令英文原意:touch
功能描述:创建空文件
执行权限:所有用户
命令所在路径:/bin/touch
语法:touch 【文件名】
范例:#touch newfile 当前文件下创建空文件
6.复制
命令名称:cp
命令英文原意:copy
功能描述:复制文件或目录
语法:
cp [源文件] [目的目录]
cp -R [源文件或目录] [目的目录]
cp -R 复制目录
注:如果复制时间太长,想终止复制,可用终止命令
中止命令:ctrl+c
7.剪切
命令名称:mv
命令英文原意:move
功能描述:移动文件,更名(dos下游rename命令,而linux没有)
命令所在路径:bin/mv
执行权限:所有用户
语法:mv [源文件或目录][目的目录]
范例:$mv file1 file3 将当前目录下文件file1移动到file3中
$mv file1 dir1
举例:
mv services service 将services更名为service
mv text/textfile /tmp 将Text目录下的textfile移动到tmp目录中
mv text/textfile /tmp/filetext 移动的同时将名字也改变
8.删除
rm
remove
/bin/rm
所用用户
语法:rm -r [文件或目录]
-r 删除目录
功能:删除文件
注:rmdir: 删除“空目录”,很少用到。
$rm file3 删除文件file3
$rm -r dir1 删除目录dir1 (注 1.-r不能省略,2.这种情况下,它会逐一问你该目录下的所有文件是否要被删除,所以最常用到的命令是:$rm -rf dir1 强制删除)
强制删除文件: $rm -f file1 (这样可以没有提示“删除”的将文件删除掉)
注:Ubuntu用户默认情况下是没有root权限的,所以也就没有权限删除文件。如何在终端模式下切换到root身份?
sudo -s -H
Password: <在此输入密码>
关闭root的优点:
buntu默认是关闭root帐户的,这样做有如下优点:
起初Ubuntu团队希望安装尽可能的简单,不使用root,在安装期间的两个用户交互步骤可以省略。(科林·沃森)
更进一步, 如果在安装中使用root,用户将被要求永远记住他们选择的密码--即使他们很少使用到它。Root密码经常被对Unix安全模型不熟悉的用户忘记。(马特·齐默曼)
它防止了缺省登录时“我能做任何事情”--在较大的变化发生之前,你将被提示输入口令,这可以使你考虑你这样做的结果。 如果你作为root登录,你可以删除一些“没用的文件夹”并且不会意识到你正处于错误的目录,那时已经太晚了。它是在Unix下长时间使用“su-command-^D”练习的情况下,代替一直呆在root shell--除非你做严重的系统维护(那时你仍然可以使用 "sudo su")。(吉姆·奇塔姆 和 安德鲁·索巴拉)
Sudo 增加了运行命令的日志记录(在/var/log/auth.log)。如果你陷入困境,你总是可以返回并看见那些运行的命令。(安德鲁·Zbikowski)
开启root帐号的方法:
为了启用root 帐号(也就是设置一个口令)使用:
sudo passwd root
当你使用完毕后屏蔽root帐号使用:
sudo passwd -l root
这个将锁住root帐号。
如何在终端模式下切换到root身份?
sudo -s -H
Password: <在此输入密码>
第二节
9.1显示文件内容
命令名称:cat
命令英文原意:concatenate and display files
功能描述:显示文件内容
命令所在路径:/bin/cat
执行权限:所有用户
语法:cat [文件名]
范例: $cat /etc/issue
$cat /etc/services
注:不适合显示较大的文件,否则都显示出来时间很长,且不方便观看(优化见后面命令)。
9.2 分页显示文件
命令名称:more
命令英文原意:more
功能描述:分页显示文件内容,按回车换屏
文件所在路径:/bin/more
执行权限:所有用户
语法:more [文件名]
(空格)或f 显示下一页
(Enter) 显示下一行
q或Q, 退出
范例: $more /etc/services
9.3 查看文件前几行
命令名称:head
命令英文原意:head
功能描述:查看文件前几行
文件所在路径:/bin/head
执行权限:所有用户
语法: head -num [文件名]
-num:显示文件的前num行
范例:$head -20 /etc/services
9.4 查看文件后几行
命令名称:tail
命令英文原意:tail
功能描述:查看文件后几行
文件所在路径:/bin/tail
执行权限:所有用户
语法: tail -num [文件名]
-num:显示文件的后num行
-f :动态显示文件信息
范例:$tail -20 /etc/services
10.产生链接文件(注意区分软硬链接文件的不同)
命令名称:ln
命令英文原意:link
功能描述:产生链接文件,这里相当与windows下的快捷方式,是符号链接
命令所在路径:/bin/ln
执行权限:所用用户
语法: ln -s [源文件][目标文件]
-s :创建软链接
链接文件有软/硬两种文件
10.1
范例:ln -s /etc/issue /issue.soft
ls -s /etc/issue /issue.soft
注:(1)所有的软链接文件权限都是:lrwxrwxrwx,(注意“l”)即所有人都有权限,这时会看到--> 这里实际上操作的还是源文件,操作源文件时的权限取决于源文件的权限
(2)时间值:创建软连接的时间,
10.2 产生硬链接文件
不需要加“-s”
ln /etc/issue /issue.head
ls /etc/issue /issue.head
执行后会发现文件大小与源文件相同,类似于windows下的copy,但不完全相同
硬链接:“cp+同步更新”,即更新一个另一个也更新,时间值也不相同,操作cp时两个时间是相同的。相当于有个实时备份。
软/硬链接的不同,删除源文件时,软链接一无法使用,硬链接依然可以使用。
i结点的相关知识:
(内核不认识字母,只认识数字,所以每个文件要有个文件标识,即i结点,每个文件必须有个i结点, ls -i)
硬链接和源文件有相同的i结点,只不过i结点有两个映射,所以可是实现同步更新。
注:软连接可以跨文件系统生成,如/etc中的文件可以在/tmp文件系统中生成。硬链接不可以跨文件系统,(“无效的跨设备链接”)
==================================================================
二、权限管理命令
1. 改变文件目录权限
命令名称:chmod
命令英文原意:change the permissions mode of a file
功能描述:改变文件或目录权限
命令所在路径:/bin/chmod
执行权限:所有用户
语法:chmod [{ugo} {+-=} {rwx}] [文件/目录]
[mode=421] [文件/目录]
chmod u
g
o
u-所有者
g-所属组
o-其他人
+:授权
-:去权
=:赋权
r:读
w:写
e:执行
所以:
chmod u+wx
chmod o-rx
chmod g=rwx
如:
-rw-r--r-- 2 root root 0 12-01 23:11 a
[root@localhost test]# chmod u+x
[root@localhost test]# ls -la
-rwxr--r-- 2 root root 0 12-01 23:11 a
通过数字的方法进行授权:
r:4 (100)
w:2 (10)
x:1 (1)
权限对应的数字:
rwxr-xr--
7 5 4
rw-r-x--x
6 5 1
数字对应的权限
7 5 2
rwxr-xx-w
RWX的深入理解:
代表字符 |
权限 |
对文件的含义 |
对目录的含义 |
r |
读权限 |
可以查看文件的内容 |
可以列出目录中的内容 |
w |
写权限 |
可以修改文件 |
可以在目录中创建、删除文件 |
x |
执行权限 |
可以执行文件 |
可以进入目录 |
各权限下可用到的命令:
(下面是对“目录”的操作)
r -ls
w -touch mkdir rm
x -cd (可以进入这个目录,所以大部分的目录是有x权限的)
注:“文件”有写权限时,只是可以修改文件的内容,是不能删除此文件的,而如果你在“目录”有写权限,那么你可以对其里面的文件作创建、删除操作。
2.改变文件目录所有者
命令名称:chown
命令英文原意:change file ownership
命令所在路径:/bin/chown
命令英文原意:改变文件/目录的所有者
语法:chown [用户] [文件/目录]
范例:$chown user1 file1
改变文件file1 的所有者为user1
注:Linux环境下要有user1才可以使用,“nobody”是linux有的用户,类似windows下的guest用户。
$chown nobody file1 (nobody是Linux自带的用户,类似于windows的guest)
拓:
linux添加用户:
usetadd zhangsan 添加用户
passwd *** 设置密码
3.改变文件/目录的所属组
命令名称:chgrp
命令英文原意:change file group owership
功能描述:改变文件/目录的所属组
命令所在路径:bin/chgrp
语法:chgrp [用户组] [文件/目录]
范例:$chgrp adm file1
改变文件file1的所属组为adm
3.
命令名称:
命令英文原意:
功能描述:
命令所在路径:
语法:
范例:
umask :查看访问权限
范例:
1.
umask
0022
示意:“0022”是掩码,
0:
777
- 022
-----------------
755
各权限是755
2.umask -S
u=rwx g=rx o=rx
注:当touch一个文件时是没有x权限的,即使有755权限
将新创建的文件改成750的方法:umask 750(×:错误)
umask 027
su -用户名 :切换用户
查看目录/文件权限;
umask
默认权限:
mkdir newdir和touch newfile 时没有提示输入目录/文件权限,因为他们都有一个默认的权限:U:rwx G:r-x O:r-x
创建默认文件权限如图:
创建默认目录的权限如图:
但默认创建的新文件将x的权限去掉,防止恶意病毒木马的产生。
硬该其权限:改掩码值
如改成750
:777-750=027
所以:umask 027
再创建其他目录时就会改变其权限了,但创建文件时的x权限去掉了。
文件搜索命令:
which
命令所在路径:/usr/bin/which
执行权限:所有用户
功能描述:显示命令所在的目录
语法:which [命令名称]
范例:$which ls
拓:命令也是有操作权限的,如,bin下和user.bin下的命令,所有用户都可以使用,而在 sbin下的命令只有超级管理员才可以使用。
which可以查找所有的命令的路径,另外,whereis命令也可以用来查找文件路径,
区别:which查看命令时还用携带文件的别名。(Ubuntu下没有显示出文件的别名)
而whereis会显示出被查命令的帮助文档所在的位置。如图:
理论上,查询命令时两者都可以使用。
find
命令所在路径:/usr/bin/find
执行权限:所有用户
功能描述:查找文件/目录
语法:find [搜索路径][搜寻关键字]
使用的基本原则:尽量节省系统资源,尽量不要再根目录下查找。
-name的用法:
find /etc -name init
注:跟windows的区别这里只查找init的文件,包含“init”的文件不会被查找到,需要时可以加通配符
* :匹配任意字符
?:匹配单个字符
-size
文件大小,block数据块:512字节
100MB=102400KB=102400*2B=204800 block
大于:+
小于:-
等于:空,一般没大有
如:find / -size +202800
-user
按照文件的拥有者查找,如:
find /home -user wangminli
-time
1、天:ctime 、atime 、mtime
2、分钟:cmin 、amin、 mmin
c:change改变,修改
a:access浏览,访问
m:modify 修改
c m的区别:
c表示文件的属性被修改过,属性包括所有者,所属组,权限
m表示文件的内容被修改过
-:表示多长时间之内 ,-1:一天之内,如find /etc -mmin -120 2个小时之内文件被修改
+:超过多长时间。
-type
find /etc -name init* -a -type -l (查找int*的二进制文件)
选项:
-f :二进制文件,
-l:软连接文件
-d:目录
find的选项非常多,还有type灯,不一一列举,学会查找帮助文件。
查找大于80MB小于100MB的文件?见下面:
连接符1:
-a:and 逻辑与
-o: or逻辑或
find /etc -size +16380 -a -size 204800 大于80MB小于100MB的文件
连接符2:-exec执行
固定格式:
1.、-exec 命令 {} \ ;
{}:f前面ind查找的结果
\:转义符,使用符号本身的含义
find /etc -name inittab -exec ls -ls {} \; 查找inittab文件并列举出该文件
find /test -name testfile3 -exec rm {} \; 查找testfile3文件并删除该文件
;:结束
2、-OK
含义同上,但会询问用户
知识:i节点
有些文件用rm是删不掉的,如 touch “a b”创建时,用rm a b 是删不掉的,这是可以直接删除其该i节点,每个字符都有i节点。
find .-inum 16 -exec rm {} \; 查找并删除i节点为16的文件
lacate(有的系统不提供,但find一定有)
如:locate services
与find的不同,根据系统安装和定期更新的数据库里查找的,所以查找非常快,但新创建的文件不一定能找到。
lacate要配合一个一个命令uptatedb,
命令名称:updatedb
命令英文原意:update the slocate database
执行权限:root
功能描述:建立整个系统目录文件的数据库
语法:updatedb
范例:#updatedb
updatedb在系统安装完成以后会建立一个整个linux系统的文件目录的数据库,所以使用locate时会直接调用updatedb里面生成的数据库,不需要在整个硬盘里检索,所以查找速度非常快。但是这个数据库有个计划任务,定期执行updatedb(也可以手动执行),所以有的时候新创建的文件可能找不到,所以比较适合查找系统默认安装的命令,配置文件等。
grep
命令名称:grep
命令所在路径:/bin/grep
执行权限:所有用户
功能描述:在文件中搜寻匹配的行并输出
语法:grep [指定字串][源文件]
范例:#grep ftp/etc/services
文件帮助命令
man
命令名称:man
命令英文原意:manual
命令所在路径:/usr/bin/man
功能描述:获得帮助信息
语法:man [命令或配置文件]
范例:$ man ls 查看ls命令的帮助信息
$man serivces 查看配置文件services的帮助信息
注1:执行man命令时,它会调用more进行帮助浏览文档
所以:按回车换行,空格下一页,q退出
注2:当查看配置文件的帮助时,只写配置文件名即可,如man services ,用man /etc/services 反而不行。
问题:当“man passwd”时,是查看 “passwd”命令的帮助,还是“/etc/passwd”配置文件的帮助信息呢?
答:man时会优先查看命令的帮助,那么怎么查看同名的配置文件的帮助呢?可以“man man ”一下,发现有9类型的帮助:
配置文件是第5种,所以可以用“man 5 passwd”,所以man passwd时实际上是 man 1 passwd。
2.info
命令名称:info
命令英文原意:information
命令所在路径:/usr/bin/info
执行权限: 所有用户
功能描述:获取帮助信息
语法:info [任何关键字]
范例:$info ls 查看指令的帮助信息
注1:浏览方式也同more,
注2:info同man差不多,只是显示有所不同
3.whatis
命令名称:whatis apropos makewhatis
命令英文原意:search the whatis database for strings
执行权限:All User ,All User ,root
功能描述:获取索引的简短说明信息,也需要更新数据库目录
语法:whatis apropos [任何关键字]
范例:$whatis ls
$apropos fstab 相当于man -k
简单列出被查命令的用法,例如选项等(whatis ls),同--help差不多。
4.help
查看shell内置命令的帮助
help cd
可以用man bash 查看到shell内置命令