Linux下的常用命令

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:包括useronwer

r-x: ——所属组g, group

r-x: ——其他人oOther

举例:

 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 显示下一行

 qQ 退出

范例:  $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

通过数字的方法进行授权:

r4100

w210

x11

权限对应的数字:

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 (nobodyLinux自带的用户,类似于windowsguest

拓:

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 newdirtouch 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

-aand 逻辑与

-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

2infoman差不多,只是显示有所不同

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内置命令

你可能感兴趣的:(Linux下的常用命令)