Linux(2):常用命令

Linux(1):简介与系统安装 见:https://mp.csdn.net/postedit/88633915

目录

3 命令基本格式及文件处理命令

3.1 Linux命令格式

3.1.1 命令格式

3.1.2 查询目录中内容ls;用户与用户组

3.2 Linux目录处理命令(上)

3.2.1 mkdir

3.2.2 cd

3.2.3 pwd

3.3 Linux目录处理命令(下)

3.3.1 rmdir

3.3.2 rm

3.3.3 cp

3.3.4 mv

3.3.5 取得路径的文件名(basename)与目录名称(dirname)

3.4 Linux中常见目录作用

3.4.1 常见目录的作用

3.4.2 /bin,/sbin,/usr/sbin,/usr/bin 目录之简单区别

3.5 Linux链接命令ln

4 文件搜索命令

4.1 Linux中文件名的搜索命令locate

4.2 Linux中命令搜索命令

4.2.1 文件名的查询whereis

4.2.2 脚本文件名的查询which

4.2.3 PATH环境变量

4.3 Linux中find命令

4.4 Linux中grep命令

5 帮助命令

5.1 Linux中的帮助命令

5.1.1 man

5.2 Linux中其他帮助命令

5.2.1 --help

5.2.2 shell 

5.2.3 info

6 压缩命令

6.1 .zip

6.2 .gz格式压缩

6.3 .bz2

6.4 .tar

6.5 .tar.gz

6.6 .tar.bz2

7 关机与重启命令

7.1 shutdown 

7.2 其他关机命令

7.3 其他重启命令

7.4 系统运行级别

7.5 退出登录命令

8 其他常用命令

8.1 Linux中挂载命令

8.1.1 查询与自动挂载

8.1.2 挂载命令格式

8.1.3 挂载光盘

8.1.4 挂载U盘

8.2 Linux中用户登录查看命令

8.2.1 w

8.2.2 who

8.2.3 last

8.2.4 lastlog

8.3 CentOS的查看

9 改变文件属性和权限

9.1 chgrp,改变文件所属用户组

9.1.1 语法

9.1.2 参数说明

9.2 chown,改变文件所有者

9.2.1 语法

9.2.2参数 :

9.3 chmod,改变文件的权限

9.3.1 数字类型改变文件权限

9.3.2 符号类型改变文件权限


3 命令基本格式及文件处理命令

3.1 Linux命令格式

3.1.1 命令格式

localhost:默认主机名。Linux中相同的主机名可以在局域网中存在。

~:当前所在的家目录。初始登录位置。管理员,即超级用户是在 /root;普通用户是在/home下,/home/user1/。

man ls  或者info ls 查看命令的基础用法。

3.1.2 查询目录中内容ls;用户与用户组

-A   显示全部文件(连同隐藏文件,但不包括 . 与 .. 这两个目录);

-f   直接列出结果,而不进行排序(ls默认会以文件名排序)

-F  根据文件、目录等信息给予附加数据结构,例如:

       *:代表可执行文件;  /:代表目录;    =:代表socket文件;   |:代表FIFO文件。

ll 等于输入 :ls -l

一般来说,ls -al 仅列出目前短格式时间,有时不会列出年份。可以通过 --full-time查阅到比较正确的完整时间格式。

其他特殊文件:

文件类型:

  • d 目录(directory);
  • 文件;
  • l 软链接(link);
  • b 设备文件里面的可供存储的接口设备(block),块设备文件;
  • c  设备文件里面的串行端口设备,例如键盘、鼠标(一次性读取设备)(character),字符设备文件;
  • s 套接字(sochkets),数据接口文件,通常被用在网络上的数据连接;
  • p (FIFO,first-in-first-out。pipe),是一种特殊的文件类型,主要的目的是在解决多个程序同时访问一个文件所造成的错误问题。

权限默认为10位。第一位是文件类型;剩下9位每三位为一组,依次为所有者、所属组、其他人。

所有者所属组其他人都是指用户与文件的关系。

一共7列,分别为:文件权限、连接数、文件所有者、文件所属用户组、文件大小、文件最后被修改时间、文件名

接下来的“1”代表引用计数;

第一个root代表所有者;第二个root代表所属组;后面的数字代表字节,默认单位为B。

后面的时间是最后修改时间。

在Linux中以“.”开头的文件是隐藏文件。

3.2 Linux目录处理命令(上)

3.2.1 mkdir

目录也是文件。目录是用来保存文件的。

加上-p是递归创建目录。

-m:配置文件的权限,直接设置,不需要看默认权限(umask)。没有给予-m参数时,使用默认权限。

3.2.2 cd

根目录的上一层(..)与根目录自己(.)是同一个目录。

用户user1的主文件夹是/home/user1,而root主文件夹则是/root/。一旦登录Linux系统后,root会在root的主文件夹中。

cd 时可以使用Tab键进行补全。

3.2.3 pwd

目录是链接目录时,pwd -P  显示出实际路径,而非使用连接(link)路径;

pwd显示的是连接路径。

3.3 Linux目录处理命令(下)

3.3.1 rmdir

-p :连同上层“空的”目录也一起删除。

3.3.2 rm

     -i :互动模式,在删除前会询问用户是否操作。(不写也会询问)

     如果要删除一个带有“-”开头的文件,如“-aaa-”,要在-aaa-前面加上目录,避过首位字符是“-”。还有一个方法,使用命令“rm -- -aaa-”

3.3.3 cp

cp-r 是复制目录,不加 -r 是复制文件。

没有加任何参数时,cp复制的是源文件,而非链接文件的属性,使用-d复制链接属性。

选项:

  •      -a 或 --archive     此参数的效果和同时指定"-pdr"参数相同
  •      -b 或 --backup      删除、覆盖目的文件先备份,备份的文件或目录亦建立为符号链接,并指向源文件或目录链接的源文件或目录。假如没有加上这个参数,在复制过程中若遇到符号链接,则会直接复制源文件或目录
  •      -f 或 --force       强行复制文件或目录, 不论目的文件或目录是否已经存在
  •      -i 或 --interactive 覆盖文件之前先询问用户
  •      -l 或 --link        对源文件建立硬链接,而非复制文件
  •      -p 或 --preserve    保留源文件或目录的属性,包括所有者、所属组、权限与时间
  •      -P 或 --parents     保留源文件或目录的路径,此路径可以是绝对路径或相对路径,且目的目录必须已经丰在
  •      -r                  递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
  •      -R 或 --recursive   递归处理,将指定目录下的文件及子目录一并处理
  •      -s 或 --symbolic-link  对源文件建立符号链接,而非复制文件
  •      -S <备份字尾字符串> 或 --suffix=<备份字尾字符串> 用"-b"参数备份目的文件后,备份文件的字尾会被加上一个备份字符串。默认的备份字尾符串是符号"~"
  •      -u 或 --update      使用这项参数之后,只会在源文件的修改时间(Modification Time)较目的文件更新时,或是名称相互对应的目的文件并不存在,才复制文件
  •      -v 或 --verbose     显示执行过程
  •      -V <备份方式> 或 --version-control=<备份方式>  指定当备份文件时,备份文件名的命名方式,有以下3种:
  •                          1.numbered或t, 将使用备份编号,会在字尾加上~1~字符串,其数字编号依次递增
  •                          2.simple或never 将使用简单备份,默认的备份字尾字符串是~, 也可通过-S来指定
  •                          3.existing或nil将使用当前方式,程序会先检查是否存在着备份编号,若有则采用备份编号,若无则采用简单备份
  •      -x 或 --one-file-system  复制的文件或目录存放的文件系统,必须与cp指令执行时所处的文件系统相同,否则不复制,亦不处理位于其他分区的文件
  •      --help              显示在线帮助
  •      --sparse=<使用时机>  设置保存希疏文件的时机
  •      --version           显示版本

直接复制文件,会使两个文件的时间不一致。若要使目标文件与源文件时间一致,则使用-a,目标文件与源文件完全一样。

ll与ls -l一样。

在默认的条件下,cp的源文件与目的文件的权限是不同的,目的文件的所有者通常会是命令操作者本身。因此在进行备份的时候,某些需要特别注意的特殊权限文件,例如密码文件(/etc/shadow)以及一些配置文件,就不能直接以cp来复制,而必须要加上-a-p等可以完整复制文件权限的参数才行。另外,如果要复制文件给其他的而用户,也必须要注意到文件的权限(包含读、写、执行以及文件所有者等)。

可以将多个数据一次复制到同一个目录去,最后面一定是目录。

3.3.4 mv

  • -i: 若指定目录已有同名文件,则先询问是否覆盖旧文件;
  • -f: 在mv操作要覆盖某已有的目标文件时不给任何指示;
  • -u :若目标文件已经存在,且 source 比较新,才会更新(update)
  • -t  : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。
  • -b :若需覆盖文件,则覆盖前先行备份。

例如:

若目标文件与源文件在同一个路径下,则Linux用mv命令来进行改名。也可以使用rename更改大量文件的文件名。         

例如:

mv 剪切目录时不需要加-r

如果有多个源文件或目录,则最后一个目标文件一定是“目录”。

3.3.5 取得路径的文件名(basename)与目录名称(dirname)

3.4 Linux中常见目录作用

Linux目录配置标准:FHS(Filesystem HierarchyStandard 文件系统层次化标准)

3.4.1 常见目录的作用

区别在用户bin目录下保存的命令所有用户都能执行;sbin目录保存的命令只有超级用户才能执行。

  • /boot:启动目录,保存用户的启动数据。
  • /dev:特殊文件保存目录,即硬件文件。
  • /etc:保存系统默认的配置文件。
  • /home:普通用户的家目录。
  • /root:超级用户的家目录。
  • /lib:Linux中的函数库。
  • /media、/mnt、/misc:空目录,外接存储设备的盘符。
  • / (root,根目录):与开机系统有关。
  • /usr (UNIX software resource,UNIX 操作系统软件资源): 与软件安装/执行有关。
  • /var (variable):与系统运作过程有关。
  • /opt:给第三方软件防止的目录。
  • /srv:service,是一些网络服务启动之后,这些服务所需要取用的数据目录。常见的服务例如www,FTP等。
  • /tmp:让一般用户或者正在执行的程序暂时放置文件的地方,任何人都能访问,所以需要定期清理。
  • /lost+found:使用标准的ext2/ext3文件系统格式才会产生的一个目录,目的在于当文件系统发生错误时,将一些丢失的片段放置到这个目录下。
  • /proc:这个目录本身是一个虚拟文件系统(virtual,filesystem)。它放置的数据都是在内存中,例如系统内核、进程(process)、外部设备的状态及网络状态等。
  • /sys:跟/proc非常类似,也是一个虚拟的文件系统,主要也是记录与内核相关的信息。包括目录已加载的内核模块与内核检测到的硬件设备信息等。
  • /var:在系统运行后才会渐渐占用硬盘容量的目录。因为/var目录主要针对常态变动的文件,包括缓存(cache)、登录文件(logfile)以及某些软件运行时所产生的文件,包括程序文件(lock file,run file),或者例如MySQL数据库的文件等。

3.4.2 /bin,/sbin,/usr/sbin,/usr/bin 目录之简单区别

  • /bin是系统的一些指令。bin为binary的简写主要放置一些系统的必备执行档例如:cat、cp、chmod df、dmesg、gzip、kill、ls、       mkdir、more、mount、rm、su、tar等。
  •  /sbin一般是指超级用户指令主要放置一些系统管理的必备程式例如:cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、     ifup、 ifdown、init、insmod、lilo、lsmod、mke2fs、modprobe、quotacheck、reboot、rmmod、 runlevel、shutdown等。
  •  /usr/bin 是你在后期安装的一些软件的运行脚本。主要放置一些应用软体工具的必备执行档例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome*、 gzip、htpasswd、kfm、ktop、last、less、locale、m4、make、man、mcopy、ncftp、 newaliases、nslookup passwd、quota、smb*、wget等。
  •  /usr/sbin   放置一些用户安装的系统管理的必备程式例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba、sendmail、squid、swap、tcpd、tcpdump等。

/bin,/sbin,/usr/sbin,/usr/bin 目录都是存放命令的,首先区别下/sbin和/bin:

       从命令功能来看,/sbin 下的命令属于基本的系统命令,如shutdown,reboot,用于启动系统,修复系统,/bin下存放一些普通的基本命令,如ls,chmod等,这些命令在Linux系统里的配置文件脚本里经常用到。

     从用户权限的角度看,/sbin目录下的命令通常只有管理员才可以运行,/bin下的命令管理员和一般的用户都可以使用。

     从可运行时间角度看,/sbin,/bin能够在挂载其他文件系统前就可以使用。

     而/usr/bin,/usr/sbin与/sbin /bin目录的区别在于:

    /bin,/sbin目录是在系统启动后挂载到根文件系统中的,所以/sbin,/bin目录必须和根文件系统在同一分区;

    /usr/bin,usr/sbin可以和根文件系统不在一个分区。

    /usr/sbin存放的一些非必须的系统命令;/usr/bin存放一些用户命令,如led(控制LED灯的)。

3.5 Linux链接命令ln

bs 是 sb的硬链接,csb是sb的软链接。

硬链接:硬链接中删除任何一个文件,里面的数据还存在。只有文件才能创建硬链接。硬链接的引用计数相同。修改其中一个文件,另一个文件也变化。对其中一个改名,i节点没有改变,依旧相同。文件类型是文件-

软链接:软链接中改任何一个文件,其他文件也变化。但是删除源文件后,软链接就不能使用了。文件类型是l。如果要使用软链接,源文件一定要使用绝对路径。

4 文件搜索命令

4.1 Linux中文件名的搜索命令locate

locate 比 find 速度快。只能搜索后台数据库,只能搜索文件名。

mlocate不是实时更新的,是每天更新一次。

可以使用updatedb更新数据库。updatedb命令会去读取/etc/updatedb.conf这个配置文件的设置,然后再去硬盘里面进行查找文件名的操作,最后就更新整个数据库文件了。

locate:依据/var/lib/mlocate内的数据库记载,找出用户输入的关键字文件名。

  • touch命令有两个功能:

       一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;

        二是用来创建新的空文件。

       

先创建/tem/cangls,但是更新数据库后仍然没有找到。因为文件定义了筛选规则:

4.2 Linux中命令搜索命令

4.2.1 文件名的查询whereis

-b :只找二进制格式的文件;

-m:只找在说明文件manual 路径下的文件

-s:只找source源文件

-u:查找不在上述三个选项当中的其他特殊文件

Linux系统会将系统内的所有文件都记录在一个数据库文件里面,而当使用whereis 或者locate 时,都会以次数据库文件的内容为准。参见4.1。

4.2.2 脚本文件名的查询which

 

-a:将所有由PATH目录中可以找到的命令均列出,而不只第一个被找到的命令名称。

 


有两个which,其中一个是alias,就是所谓的“命令别名”,意思是输入which会等于后面接的那串命令。

cd 不能通过whereis、which找到,因为cd是shell base的内置命令。通过whereis、which找到的命令都是通过外部安装的外来命令,默认查找PATH内所规范的目录,所以找不到。

whereis可以看到文件的帮助文件,which可以看到文件的别名。

4.2.3 PATH环境变量

输入命令,会从以上路径中找该命令,每个目录中间用冒号隔开。

一般用户登录时,PATH下并不包含任何“sbin”的目录存在。

添加PATH变量:添加“/root”到PATH时,输入命令:PATH="$PATH":/root,该方法关闭终端失效;

删除PATH变量:如果之前的PATH文件为  路径1:路径2:路径3:路径4;要删除路径4,只需要copy上面的路径1:路径2:路径3

然后赋值给PATH   export PATH=路径1:路径2:路径3该方法关闭终端失效。

      命令行进行快速的PATH配置,仅仅在本次登录shell有效,也就是说重启后你在命令行指定的/etc/rc.d/init.d这个路径就从PATH中失效了,而PATH又是在.bashrc这个配置文件中指定的,如果你想要永久的加入某个路径就需要在此文件中加入,对于永久有效的路径同样只能够从.bashrc文件中才能永远删除。

# vi /etc/bash.bashrc

在文件后面添加想要添加或删除想要删除路径

使新的环境变量生效  # source /etc/profile 

4.3 Linux中find命令

Linux find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录文件。并且将查找到的子目录和文件全部进行显示。

语法:find path -option [ -print ] [ -exec -ok command ] {} \;

参数说明 :

find 根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部份为 path,之后的是 expression。如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression。

expression 中可使用的选项有二三十个之多,在此只介绍最常用的部份。

  • -mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
  • -amin n : 在过去 n 分钟内被读取过
  • -anewer file : 比文件 file 更晚被读取过的文件
  • -atime n : 在过去n天内被读取过的文件
  • -cmin n : 在过去 n 分钟内被修改过
  • -cnewer file :比文件 file 更新的文件
  • -ctime n : 在过去n天内被修改过的文件
  • -empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name
  • -ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写
  • -name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
  • -size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。-type c : 文件类型是 c 的文件。
  • d: 目录
  • c: 字型装置文件
  • b: 区块装置文件
  • p: 具名贮列
  • f: 一般文件
  • l: 符号连结
  • s: socket
  • -pid n : process id 是 n 的文件

你可以使用 ( ) 将运算式分隔,并使用下列运算。

  • exp1 -and exp2
  • ! expr
  • -not expr
  • exp1 -or exp2
  • exp1, exp2

(1)与用户或用户组名有关的参数:

  • -uid n:n  为数字,这个数字是用户的账号ID,即UID,这个UID是记录在/etc/passwd里面与顺号名称对应的数字。
  • -gid n:n为数字,这个数字是用户组名的1D,即GID,这个GID记录在/etc/group中。
  • -user nane:nane为用户账号名称,例如dmtsa1.
  • -group name:name为用户组名,例如users。
  • -nouser:寻找文件的所有者不存在/etc/passwd的人。
  • -nogroup:寻找文件的所有用户组不存在于/etc/group中的文件。当你自行要装软件时,很可能该软件的属性当中并没有文件所有者,这是可能的,在这个时候,就可以使用-nouser与-nogroup查找。或者将系统中某个账号删除了,但是该账号已经在系统内创建很多文件时,就可以使用-nouser开找出该类型的文件。

(2)与文件权限及名称有关的参数:

  • -name fllename:查找文件名为fllename的文件。
  • -size [+-] SIZE :查找比SIZE还要大(+)或小(一)的文件,这个SIZE的规格有:c  代表byte,k:代表1024bytes。所以,要找比50KB还要大的文件,就是“-size +50k”。
  • type TYPE:查找文件的类型为TYPE的,类型主要有:一般正规文件(f)、设备文件(b,c)、目录(d)、连接文件(1)、socket(s)、及EIFO(p)等属性。
  • -perm mode:查找文件权限“刚好等于”mode的文件,这个mode为类似chmod的属性值,举例来说,-rwsx-xx-x的属性为4755
  • -perm -mode:查找文件权限“必须要全部包括mode的权限”的文件,举例来说,我们要查找-rwxr--r--,即0744的文件,使用-perm -0744,当一个文件的权限为“-rwsr-xr-x“,即4755时,也会被列出来,因为-xwsr-xx-x的属性已经包括了-rwxr--r--的属性了。
  • -perm +mode:查找文件权限“包合任一mode的权限”的文件,举例来说,我们查找-rwsr-xr-x,即-perm +755时,但一个文件属性为-rw-------也会被列出来,因为它有-rw…的属性存在。

例如:

① 找出文件名为passwd的这个文件

② 找出/var目录下文件类型为Socket的文件名有哪些

这个-type的属性也很有帮助,尤其是要找出那些怪异的文件,例如socket与FIFO文件,可以用find /var -type p或 -type s来找 。
③ 查找文件当中含有SGID或SUID或SBIT的属性

所谓的7000就是---s--s--t,那么只要含有s或t的就列出,所以要使用+7000,使用-7000表示要含有---s--s--t的所有三个权限,上述范例中比较有趣的是-perm这个参数。它的重点在找出特殊权限的文件。我们知道SUID与SGID都可以设置在二进制程序上,假设我想要将/bin、/sbin这两个目录下只要具有SUID或SGID的文件就列出来,可以这样做:

find 后面可以接多个目录来进行查找,另外,find本来就会查找子目。

(3)与时间有关的参数

-newer file :file为一个存在的文件,列出比file还要新的文件名。

  • modification time(mtime):当该文件的“内容数据”更改时,就会更新这个时间,内容数据指的是文件的内容,而不是文件的属性或权限。
  • status time(ctime):当该文件的“状态”(status)改变时,就会更新这个时间,举例来说,像是权限与属性被更改了都会更新这个时间。
  • access time(atime):当“该文件的内容被取用”时,就会更新这个读取时间(access),举例来说,我们使用cat去读取/etc/man.config,就会更新该文件的atime了

(4)其他可进行的操作

    
-exec command:command为其他命令,-exec后面可再接其他的命令来处理查找到的结果。-exec 与{} \;一起用是标准格式,中间加第二条命令。即命令一的执行结果,让命令二来进行处理。与find合用的意思是用find查找出来的结果,交给命令2来处理。{}代表的是“由find找到的内容”。
-print:将结果打印到屏幕上,这个操作是默认操作。

模糊查询需要使用通配符。

没有所有者的文件,是垃圾文件,但是有两个例外:①内核产生的文件,有可能没有所有者。②外来文件,比如光盘、移动硬盘等。

-newer file :file为一个存在的文件,列出比file还要新的文件名。

  • modification time(mtime):当该文件的“内容数据”更改时,就会更新这个时间,内容数据指的是文件的内容,而不是文件的属性或权限。
  • status time(ctime):当该文件的“状态”(status)改变时,就会更新这个时间,举例来说,像是权限与属性被更改了都会更新这个时间。
  • access time(atime):当“该文件的内容被取用”时,就会更新这个读取时间(access),举例来说,我们使用cat去读取/etc/man.config,就会更新该文件的atime了

默认按照天。

使用千字节是用小写的“k”,是用兆字节是用大写的“M”。默认的单位是数据块,使用的不是分区的数据块,是用硬盘的扇区所说的数据块。如下图,画对号的地方指扇区,每个扇区是512个字节。因此按大小搜索时要加入单位。

-exec 与{} \;一起用是标准格式,中间加第二条命令。即命令一的执行结果,让命令二来进行处理。与find合用的意思是用find查找出来的结果,交给命令2来处理。

[root@localhost ~]# find /etc -size +20k -a -size -50k -exec ls^Clh {} \;

4.4 Linux中grep命令

       Linux grep命令用于查找文件里符合条件的字符串。

       grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为"-",则grep指令会从标准输入设备读取数据。

语法:

grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]

参数:

  • -a 或 --text : 不要忽略二进制的数据。
  • -A<显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
  • -b 或 --byte-offset : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。
  • -B<显示行数> 或 --before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。
  • -c 或 --count : 计算符合样式的列数。
  • -C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。
  • -d <动作> 或 --directories=<动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
  • -e<范本样式> 或 --regexp=<范本样式> : 指定字符串做为查找文件内容的样式。
  • -E 或 --extended-regexp : 将样式为延伸的普通表示法来使用。
  • -f<规则文件> 或 --file=<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
  • -F 或 --fixed-regexp : 将样式视为固定字符串的列表。
  • -G 或 --basic-regexp : 将样式视为普通的表示法来使用。
  • -h 或 --no-filename : 在显示符合样式的那一行之前,不标示该行所属的文件名称。
  • -H 或 --with-filename : 在显示符合样式的那一行之前,表示该行所属的文件名称。
  • -i 或 --ignore-case : 忽略字符大小写的差别。
  • -l 或 --file-with-matches : 列出文件内容符合指定的样式的文件名称。
  • -L 或 --files-without-match : 列出文件内容不符合指定的样式的文件名称。
  • -n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。
  • -o 或 --only-matching : 只显示匹配PATTERN 部分。
  • -q 或 --quiet或--silent : 不显示任何信息。
  • -r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同。
  • -s 或 --no-messages : 不显示错误信息。
  • -v 或 --revert-match : 显示不包含匹配文本的所有行。
  • -V 或 --version : 显示版本信息。
  • -w 或 --word-regexp : 只显示全字符合的列。
  • -x --line-regexp : 只显示全列符合的列。
  • -y : 此参数的效果和指定"-i"参数相同。

find使用通配符来达到模糊匹配,grep使用正则表达式来进行模糊匹配。如果要搜索的是文件名,就应该使用通配符,完全匹配;如果搜索的是文件中的数据,应该使用正则表达式,是包含匹配

5 帮助命令

5.1 Linux中的帮助命令

5.1.1 man

man 是manual 的缩写。

输入命令man ls 后,可以输入 /-d  查找包含 -d 的内容,按“N”键找到下一个,按“shift”+“N”键找到上一个。

 

打开某个命令的某个级别的帮助文件,使用类似man 5 passwd。如果不加数字,默认打开最小的级别。

可以得出包含“passwd”关键字的信息。

5.2 Linux中其他帮助命令

5.2.1 --help

5.2.2 shell 

能找到命令的执行位置,就是后来写入的外部命令;找不到命令的执行位置,就是shell自带的内部命令。

5.2.3 info

 

例如:info ls。

6 压缩命令

6.1 .zip

Windows与Linux中的 .zip文件可以通用。

加上 .zip的后缀是为了识别出来该文件是压缩文件。

6.2 .gz格式压缩

6.3 .bz2

6.4 .tar

6.5 .tar.gz

 

6.6 .tar.bz2

手工指定解压缩位置:,即 -C /tmp/

压缩多个文件,

指定解压的位置:,即在压缩包名前面加上目录。

只查看压缩包里面的内容:,即使用 -ztvf。

7 关机与重启命令

7.1 shutdown 

输入shutdown -r 05:30 后,就卡住,不能再执行命令。此时需要按 “Ctrl+C” 终止退出。因此在使用shutdown时,可以加“&” 使后台执行。

在服务器上尽量避免远程关机。

7.2 其他关机命令

这三种命令都没有shundown安全,不会在服务器关机和重启的时候正确保存数据。

7.3 其他重启命令

reboot可以用来重启。尽量不要使用 init 6。

7.4 系统运行级别

3是我们一般使用的。系统的默认运行级别。可以使用cat /etc/inittab 查看。

7.5 退出登录命令

8 其他常用命令

8.1 Linux中挂载命令

8.1.1 查询与自动挂载

/proc  与 /sys是系统系统内存的挂载点,不能随意改动。

通过vi /etc/fstab  查看 /etc/fstab:

如果在 /etc/fstab文件中添加光盘自动挂载,那么开机时会检测是否有光盘,没有光盘的话,将开机启动失败。

8.1.2 挂载命令格式

光盘的默认为iso9660。

特殊选项:

在Linux中脚本文件必须要以  #!/bin/bash  开头,#的意思是以下写的内容是Linux脚本。如果Linux中嵌套其他语言,那么不写  #!/bin/bash  这句话,该脚本不能正确执行。

./  指当前目录。

mount -o remount,noexec /home/

做完测试后要改回来,重新允许执行:mount -o remount,noexec /home/

8.1.3 挂载光盘

/home 分区是系统挂载好的。

dev下的sr0和dev下的cdrom 是软链接;建议写sr0。

卸载之后才能正常取出光盘。

8.1.4 挂载U盘

光盘的设备文件名是系统自带的,在/dev/下。

fdisk -l 查看系统中已经识别的硬盘。

文件系统 vfat 是指 Windows中的 fat32系统,只支持不超过4g的单个文件,基本被淘汰。

Linux默认不支持NTFS文件系统,即移动硬盘不能在Linux中直接挂载。Linux把能用识别的驱动都装在了内核里,把认为用不到的驱动在内核中没有加载。NTFS-3g可以装在Linux中,就支持NTFS文件系统,但是是只读的。

8.2 Linux中用户登录查看命令

8.2.1 w

第一行:当前时间、系统运行时间、当前系统登录用户数、系统在一分钟、五分钟、十五分钟之前的平均负载。

第二行:说明行;

第三行、第四行:与第二行对应的数据。tty1是本机终端,即Linux中登录的;pts/0是远程登录的,通过Windows的工具登录到了Linux,ip 是Windows的ip。

8.2.2 who

8.2.3 last

8.2.4 lastlog

last 和 lastlog 不能通过vi 查看。

8.3 CentOS的查看

uname -r:查看实际的内核版本;

lsb_release -a:查看LSB的版本,distribution的版本。

9 改变文件属性和权限

9.1 chgrp,改变文件所属用户组

chgrp是修改文件或目录所属组。(只是更改文件的属组)

Linux chgrp命令用于变更文件或目录的所属群组。

在UNIX系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。您可以使用chgrp指令去变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可。

9.1.1 语法

chgrp [-cfhRv][--help][--version][所属群组][文件或目录...] 
或 chgrp [-cfhRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]

9.1.2 参数说明

  •   -R或--recursive  递归处理,将指定目录下的所有文件及子目录一并处理。
  •   -c或--changes 效果类似"-v"参数,但仅回报更改的部分。
  •   -f或--quiet或--silent  不显示错误信息。
  •   -h或--no-dereference  只对符号连接的文件作修改,而不更动其他任何相关文件。
  •   -v或--verbose  显示指令执行过程。
  •   --help  在线帮助。
  •   --reference=<参考文件或目录>  把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同。
  •   --version  显示版本信息。

注:要被改变的组名必须要在/etc/group文件内存在才行,否则就会显示错误。

9.2 chown,改变文件所有者

(change owner)

Linux/Unix 是多人多工操作系统,所有的文件皆有拥有者。利用 chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。

一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的文件拥有者,也没有权限可以自己的文件拥有者改设为别人。只有系统管理者(root)才有这样的权限。

使用权限 : root

9.2.1 语法

chown [-cfhvR] [--help] [--version] user[:group] file...

9.2.2参数 :

  • user : 新的文件拥有者的使用者 ID
  • group : 新的文件拥有者的使用者组(group)
  • -R : 处理指定目录以及其子目录下的所有文件
  • -c : 显示更改的部分的信息
  • -f : 忽略错误信息
  • -h :修复符号链接
  • -v : 显示详细的处理信息
  • --help : 显示辅助说明
  • --version : 显示版本

注:一般用冒号“:”来隔开所有者和用户组。

复制文件给你之外的其他人时,复制行为(cp)会复制执行者的属性与权限,如此以来,即使将文件复制给其他用户了,但他仍然无法修改(可以使用ls -al查看属性/权限),所以你就必须要修改这个文件的所有者与用户组。

9.3 chmod,改变文件的权限

Linux/Unix 的文件调用权限分为三级 : 文件拥有者群组其他。利用 chmod 可以藉以控制文件如何被他人所调用。

权限的设置方法有两种:使用数字或者是符号进行权限的修改

9.3.1 数字类型改变文件权限

语法:chmod [-cfvR] abc file文件或目录
  • -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
  • -c : 若该文件权限确实已经更改,才显示其更改动作
  • -f : 若该文件权限无法被更改也不要显示错误讯息
  • -v : 显示权限变更的详细资料

其中a,b,c各为一个数字,分别表示User、Group、及Others的权限。

r=4,w=2,x=1

  • 若要rwx属性则4+2+1=7;
  • 若要rw-属性则4+2=6;
  • 若要r-x属性则4+1=5。

我们以vim编辑一个shell的文字批处理文件后,它的权限通常是“-rw-rw-r--”,也就是664,如果要将该文件变成可执行文件,并且不要让其他人修改此文件的话,那么就需要“-rwxr-xr--”这样的权限,此时要执行“chmod 755 test.sh”命令。

9.3.2 符号类型改变文件权限

语法:chmod [-cfvR] [ugoa...][[+-=][rwxX]...][,...] file文件或目录
  • u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
  • + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
  • r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
  • -c : 若该文件权限确实已经更改,才显示其更改动作
  • -f : 若该文件权限无法被更改也不要显示错误讯息
  • -v : 显示权限变更的详细资料
  • -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)

示例:

① 将文件 file1.txt 设为所有人皆可读取 : chmod a+r file1.txt

② 将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :

      chmod ug+w,o-w file1.txt file2.txt

③ 将目前目录下的所有文件与子目录皆设为任何人可读取 :chmod -R a+r *

 

 

 

 

 

 

 

 

 

 

 

 

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值