linux基本命令总结

1. 请说明的文件属性

   -rw-r--r-- 1 root root 238 Jun 18 17:22 test.txt

答:root用户拥有读写权限,root组与其他用户拥有读权限

   -rwxr-xr-- 1 test1 testgroup 5238 Jun 19 10:25 ping_tsai

答:test1用户拥有读写、运行权限,testgroup组拥有读、运行权限,其他用户没有权限

2. 列举改变文件属性命令

答:chgrp 用户 文件或者文件夹(chgrp root tmp)

chown 用户:组 文件或者文件夹(chown root:root tmpchown –R root:root tmp)后者将改变目录内所有文件及目录的文件属性

chmod 7774,2,1) 文件名(chmod 777 tmp)权限构成r=4w=2x=1

chmod u=rwxg=o= 文件名(chmod u=rwx,g=rx,o=r tmp)

3. 在自己的home目录下创建名称为test的目录

答:mkdir /home/test

4. 3创建的test目录下,创建名称为hello的文件,内容如下:

   This is a test.

答:touch hello

5. hello文件,拷贝为hello.bak

答:cp hello hello.bak

6. hello.bak文件重命名为rename

答:mv hello.bak rename

7. 删除文件rename

答:rm rename

8. 请将test目录打包为test.tgz

答:tar -cvf directory.tgz directory

9. 某命令xx/usr/local/bin/xx下,但直接执行xx命令时,却提示无法找到该命令,请问是什么原因

答:该命令的路径没有添加到PATH变量中。

PATH=”$PATH”:命令所在目录(将命令所在目录添加到PATH中)

10. 请显示当前所在路径

答:pwd

11. 请返回到home目录

答:cd /home

12. 查看当前目录下的内容,并将结果输出到指定文件(result)

答:ls –l > result.txt

13. 删除文件夹test

答:rmdir test

14. 创建文件时有默认的权限属性,需要修改默认的权限属性时使用哪个命令。采用默认属性创建文件夹和文件后,两者的属性有什么不同

答:chmod,chgrp,chown

文件夹drwxrwxrw-   文件-rw-rw-r--

15. 请列举你学到的常用命令,并对命令的作用进行简单描述

date

cal     cal   cal   cal 月 年

bc(退出quit

man

shutdown -h now

ls      ls –l   ls –a   ls –al > out.txt        ls –S(排序输出)

cd

pwd

ctrl+alt+backspace     --重启X windows

ctrl+alt+F1~F6        --切换终端

ctrl+alt+F7            --回到X windows

date                  --显示时间

cal [mouth][year]      --显示日历

bc                    --计算器(scale=3显示三位小数)

当一个目录的X属性未对其它用户开放时,其它用户不能进入该目录

ca[TAB][TAB]         --打印出所有已ca开头的命令

df  [-ahikHTm]                  --列出档案系统

du          --列出档案与目录的容量  du –sm /*列出根目录下每个目录的容量

ln [-sf] 源文件 目标文件   --默认建立hard link  -s表示symbolic link   -f如果目标文件存在则删除目标文件后在建立(hard link不占用inodeblock   symbolic link相同于快捷方式)

pwd     --显示当前路径    pwd –P   --显示当前路径,而不是link路径

madir  --创建目录   mkdir –m 777 test  --创建权限为777的目录

mkdir –p ….  --创建多级目录

rmdir   -p  删除多级空目录  -r强制删除目录以及目录下的所有文件

mv  源位置  新位置

PATH  PATH=”PATH”:/root  --root目录加进PATH

alias cc='ls -al'        将cc设置为ls -al

unalias cc               取消别名cc

 

关闭防火墙:service iptables stop

打开ftp  service vsftpd start

分配IP    修改/etc/sysconfig/network-scripts/ifcfg-eth0中的ONBOOTyes,然后ifup eth0即可。

 

查看机器位数

getconf LONG_BIT

 

mkdir

rmdir

rm      rm -fr 目录或文件

cp

[root @test /root ]# cp [-drsu] [源文件] [目标文件]

参数说明:

-d :进行复制时,如果是复制到链接文件,若不加任何参数,则默认情况下会将链接到的源文件

复制到目的地,若加-d,则链接文件可原封不动地将链接这个快捷方式复制到目的地。

-r :可以进行目录的复制。

-s :做成链接文件,与ln指令功能相同。

-u, --update:如果源文件较新,或者没有目标文件,才会进行复制动作。可用于备份操作。

 

mv

语法:

[root @test /root ]# mv [-u] [源文件] [目标文件]

参数说明:

-u :同样,为update的简写,当源文件比目标文件还新时才会动作!

范例:

[root @test /root]# cp .bashrc bashrc

[root @test /root]# mv bashrc bashrc.old <==也可以用来更改文件名

[root @test /root]# mv bashrc bashrc2 /tmp <==bashrcbashrc2移到/tmp目录

下。请注意,最后一个才是最终的目标文件,其他的都是源文件

 

cat/tac 顺序查看文件/反序查看文件

more/less       按页查看文件/按页查看,且可以向前翻页

head/tail       查看文件的前几行/查看文件的最后几行     head [-n number] [文件名] 查看第n

nl      查看文件并显示行号

od      以二进制形式查看文件

touch   创建文件        touch 文件名

chgrp   chgrp 组名 文件夹或文件

chown   chown 用户名:组名 文件或文件夹

chmod   chmod 777 文件或文件夹  chmod -R 777 文件或文件夹       -R作用于文件夹下的所有文件及子文件夹

file(查看文件的类型)

ln

[root @test /root ]# ln [-s] [源文件] [目标文件]

参数说明:

-s :提供符号链接

:如果直接使用ln而不加任何参数,就属于硬链接

Block是记录文件内容数据的区域,inode则是记录该文件的属性及其放置在哪个Block之内的信息。所以,每个文件都会占用一个inode。当Linux系统要查找某个文件时,它会先搜寻inode table找到这个文件的属性及数据放置地点,然后再查找数据存放的Block进而将数据取出。

硬链接

刚才说过,当系统要读取某个文件时,它会先读inode table,然后根据inode的信息到

数据区域将数据取出备用。硬链接就是再建立一个inode链接到文件放置的Block块。也就是

说,进行硬链接时,实际上您的文件内容不会改变,只是在查询时,利用原来的inode与后

来添加的inode均可指定到该文件放置的地点,因此,读取两个inode的结果都是存取同一个

文件的内容。不过,这样一来就有个问题,因为inode会链接到Block块,而“目录”本身仅

消耗inode,这样,硬链接就不能链接目录。所以,硬链接有两个最大的限制:

1. 不能跨文件系统,因为不同的文件系统有不同的inode table

2. 不能链接目录。

符号链接

相对于硬链接,符号链接比较好理解,基本上,它是再建立一个独立文件,而这个文

件会让数据读取操作指向它链接的那个文件。由于只是利用文件作为指向的动作,所以,

当源文件被删除,符号链接的文件就打不开了,屏幕会显示“无法开启某文件”。

因此,硬链接比较安全,因为即使某一个inode被删除,只要还有一个inode,该文件就

能被找到。

 

umask:设定创建文件或目录是的默认权限

umask指定的是“该默认值需要取消的权限”,因为rwx分别是421,所以,

当要取消写权限,就输入2,而如果要取消读权限,就输入4,那么要取消读与写权限,就

输入6,而要取消执行与写权限,就输入3。这样就理解了吧。那么,输入5是什么?是取消

读与执行权限。如果以上面的例子来说明(umask002),那么当用户

· 建立文件时:666-002 ==> (-rw-rw-rw-) – (--------w-) ==> -rw-rw-r--

· 建立目录时:777-002 ==> (drwxrwxrwx) – (--------w-) ==> drwxrwxr-x

 

which

语法:

[root @test /root ]# which [文件名称]

参数说明:

范例:

[root @test /root]# which passwd

/usr/bin/passwd

which的基本功能是通过PATH环境变量到该路径内寻找可执行文件,所以基本的功能

在于寻找可执行文件。

 

whereis

语法:

[root @test /root ]# whereis [-bmsu] [目录名称]

参数说明:

-b :只找二进制文件

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

-s :只找source源文件

-u :没有说明文档的文件!

范例:

[root @test /root]# whereis passwd

passwd:/usr/bin/passwd/etc/passwd /usr/share/man/man1/passwd.1.bz2

passwd相关字的文件或目录都列出来。

[root @test /root]# whereis -b passwd

passwd: /usr/bin/passwd /etc/passwd

仅列出二进制文件。

[root @test /root]# whereis -m passwd

passwd: /usr/share/man/man1/passwd.1.bz2

仅搜寻man page所在的目录。

 

locate

语法:

[root @test /root ]# locate [目录名称]

参数说明:

范例:

[root @test /root]# locate root

……一大堆带有root字符串的文件都会显示出来

[root @test /root]# updatedb

立刻更新数据库

 

find

语法:

[root @test /root ]# find [路径] [参数]

参数说明:

1. 时间:

-atime n :n*24小时内被存取过的文件列出来

-ctime n :n*24小时内被改变、新增的文件或目录列出来

-mtime n :n*24小时内被修改过的文件列出来

-newer file :把比file还要新的文件列出来

2. 使用名称:

-gid n :寻找群组IDn的文件

-group name :寻找群组名称为name的文件

-uid n :寻找拥有者IDn的文件

-user name :寻找用户名称为name的文件

-name file :寻找文件名为file的文件名称(可以使用通配符)

-type type :寻找文件属性为type的文件,type包含了b, c, d, p, l, s

这些与前一章的属性相同。例如lLinkd为目录

范例:

[root @test /root]# find / -name testing <==寻找文件名为testing

[root @test /root]# find / -name 'test*' <==寻找文件名包含test

[root @test /root]# find . -ctime 1

寻找当前目录下一天内新增的目录或文件

[root @test /root]# find /home/test –newer .bashrc

寻找/home/test目录下比.bashrc还要新的文件

 [root @test /root]# find /home -user test

寻找/home下拥有者为test的文件

[root @test /root]# find /dev -type b

寻找/dev目录下文件属性为b的文件

 

dumpe2fs

[root @test /root ]# dumpe2fs [参数]

参数明:

-h :列出superblock的数据

范例:

[root @test /root]# dumpe2fs /dev/hdc2 <==查看该文件系统的相关信息

 

df

语法:

[root @test /root ]# df [参数] [目录或文件名]

参数说明:

-a: 列出所有的文件系统

-h: 以易于阅读的GBMB等格式显示

-i: inode的数量来显示

-T: 连同文件系统的名称显示(如ext3

 

du

语法:

[root @test /root ]# du [参数] [目录或文件名]

参数说明:

-a: 列出所有的文件与目录容量

-h: 以易于阅读的GBMB等格式显示

-s: 列出总量

-m: MB列出容量

 

ln

语法:

[root @test /root ]# ln [参数] 源文件 目标文件

参数说明:

-f: 如果目标存在,就主动将目标文件删除后再创建

-s: 创建符号连接(不加s默认为硬连接)

 

mount

语法:

[root @test /root ]# mount [-t 文件系统] [-L Label] [-o 额外选项] [-n] 设备文件名 挂载点

参数说明:

-f: 如果目标存在,就主动将目标文件删除后再创建

-s: 创建符号连接(不加s默认为硬连接)

范例:

[root @test /root]#mount –t iso9660 ..  .. <== -t iso9660表示挂载CDDVD

[root @test /root]#mount –t vfat –o iocharset=cp950 ..  .. <== –t vfat –o iocharset=cp950表示挂载优盘,且优盘中有以中文命名的文件名

[root @test /root]#mount –t iso9660 –o loop ..  .. <== o loop表示挂载DVD镜像文件

 

gzip,zcat

语法:

[root @test /root ]# gzip [参数] 文件名

[root @test /root ]# zcat 文件名.gz

参数说明:

-c: 将压缩参数输出带屏幕

-d: 解压缩

-v: 显示压缩比等信息

-#: 压缩等级,-1最快,-9最慢,默认-6

范例:

gzip –v man.config

zcat man.config.gz

gzip –d man.config.gz

gzip -9 –c man.config > man.config.gz  <==用最佳压缩比压缩,并保留原始文件

 

bzip2,bzcat

语法:

[root @test /root ]# bzip2 [参数] 文件名

[root @test /root ]# bzcat文件名.bz2

参数说明:

-c: 将压缩参数输出带屏幕

-d: 解压缩

-k: 保留原始文件

-z: 压缩的参数

-v: 显示压缩比等信息

-#: 压缩等级,-1最快,-9最慢,默认-6

范例:

bzip2 -z man.config

bzcat man.config.bz2

bzip2 –d man.config.bz2

bzip2 -9 –c man.config > man.config.bz2  <==用最佳压缩比压缩,并保留原始文件

 

zip,unzip

范例:

zip命令可以用来将文件压缩成为常用的zip格式。unzip命令则用来解压缩zip文件。

1. 我想把一个文件abc.txt和一个目录dir1压缩成为yasuo.zip

zip -r yasuo.zip abc.txt dir1

  1. 我下载了一个yasuo.zip文件,想解压缩:

# unzip yasuo.zip

  1. 我当前目录下有abc1.zipabc2.zipabc3.zip,我想一起解压缩它们:

unzip abc\?.zip

注释:?表示一个字符,如果用*表示任意多个字符。

  1. 我有一个很大的压缩文件large.zip,我不想解压缩,只想看看它里面有什么:

# unzip -v large.zip

  1. 我下载了一个压缩文件large.zip,想验证一下这个压缩文件是否下载完全了

# unzip -t large.zip

 

tar

语法:

[root @test /root ]# tar [-j或者-z] [-cv] [-f 新建文件名] 文件名  <==打包与压缩

[root @test /root ]# tar [-j或者-z] [-tv] [-f 新建文件名]  <==查看文件

[root @test /root ]# tar [-j或者-z] [-xv] [-f 新建文件名] [-C 解压目录]  <==解压缩

参数说明:

-c: 建立打包文件

-t: 查看打包文件的中包含哪些文件

-x: 解包功能

-j: 通过bzip2压缩

-z: 通过gzip压缩

-v: 压缩/解压过程中,将正在处理的文件名显示出来

-f filename: -f后要立即接需要打包成的文件名!建议-f 单独写

-C: 在特定目录解压

-P: 保留绝对路径(默认情况下/etc/…被打包后会变成etc/…..

--exclude=file: 在压缩过程中,不要讲file打包进去

范例:

tar –jxv –f 打包文件.tar.bz2 待解开文件  <==解压特定文件

tar –jtv –f 打包文件.tar.bz2 待查看文件 <==查看特定文件

 

type

语法:

[root @test /root ]# type [参数] 命令名 <==显示命令式内置的bash命令还是外部命令

 


dos2UNIX -kn file newfile 将dos文件格式装换成unix文件格式

UNIX2dos -kn file newfile 将unix文件格式转换成dos文件格式
-n表示保留旧文件,将转换后的文件输出到新文件

 

 

 

 

每个目录的大致内容如下表所示。

/bin 这是存放诸如lsmvrmmkdirrmdirgziptartelnetftp等常用执行文件的地方(这

些执行文件的执行方法会在后面提到)。有时这个目录的内容与/usr/bin一样(有时甚至

会使用链接文件),是专门用于放置一般用户使用的执行程序

/boot 这里是放置您的Linux核心与启动相关文件的地方,目录下的vmlinuz-xxx就是Linux的内

核。如果您的启动管理程序选择grub,那么这个目录内还有/boot/grub子目录

/dev 存放与设备有关的文件。基本上,UnixLinux系统均把设备当成文件,例如/dev/fd0代表

软驱,相当于Windows系统下的A区,而/dev/cdrom则代表光驱。如前所述,这个目录下

的文件通常分为两种,分别是管理硬盘I/O的块文件与外设的字符文件

/etc 系统在启动过程中需要读取的文件均在这个目录下,例如Lilo的参数、用户账号与密码、

系统的主要设定、http架站参数、您要启动的服务项等,所以在这个目录下工作的时候一

定要记得备份,否则文件被意外修改后会很麻烦

/etc/rc.d 这个目录主要存放开关机过程中用到的脚本文件。脚本文件有点像DOS下的批处理文档

(以.bat作为后缀名)

/etc/rc.d/init.d 所有服务默认的启动脚本文件都放在这里,例如,要启动与关闭iptables,可以使用:

/etc/rc.d/init.d/iptables start

/etc/rc.d/init.d/iptables stop

/etc/xinetd.d 这个路径在较新的Linux版本中才有,由于早期版本中用来启动服务的文件是inetd.conf

但是在较新版本中,启动服务已经变成使用xinetd.conf文件,因此,您若需要启动一些额

外服务,在Mandrake 9.0以后的版本就要到/etc/xinetd.d目录下查找

/etc/X11 这是与X windows有关的配置文件所在的目录,尤其重要的是里面的XF86Config-4

/home 基本上,这是系统默认的用户根目录(home directory),在您新增一个一般用户的账号

时,默认的用户根目录已在这里设定好

/lib Linux执行或编译某些程序时要用到的函数库(library)就在这个目录下

/lost+found 系统产生异常错误时,会将一些遗失的片段放置在此目录下,通常这个目录会自动出现

在设备目录下。例如您在/disk中加装一块硬盘, 这个目录下就会自动产生目录

/disk/lost+found

/mnt 软驱与光驱接默认装载点的地方。通常,软驱挂在/mnt/floppy下,光驱挂在/mnt/cdrom下,

不过也不一定,只要您高兴,随便找一个地方装载也可以

/proc 用于放置系统核心与执行程序所需的一些信息,例如您的网络状态等问题。这个目录将

在启动Linux的时候自动被挂上,而且该目录不会占用硬盘空间,因为里面都是内存中的

数据

/root 系统管理员的根目录

/sbin 放置系统管理常用的程序,例如fdiskmke2fsfsckmkswapmount等。与/bin不太一

样,这个目录下的程序通常是root等系统管理员使用的程序

/tmp 这是让一般用户存放临时文件的地方,例如您在安装Linux下的软件时,可能软件的默认

安装目录就是/tmp,所以您要定期清理,当然,重要数据最好不要放在这里

/usr 这是最重要的一个目录,里面含有很多系统信息,其下包含许多子目录,用来存放程序

与指令。这个目录有点类似Windows下的Program Files目录

/usr/include 一些套件的头文件。基本上,当我们以Tarball方式(*.tar.gz方式)安装某些数据时会用到

的函数库都在这个目录下

/usr/lib 内含许多程序与子程序所需的函数库

/usr/local 在安装完Linux之后,基本上所有的配备您都有了,但软件总要升级,例如您要升级代理

服务,则通常软件默认的安装目录就是在/usr/local中(local是“本地”的意思),同时,

为了与系统原先的执行文件有所区别,升级后的执行文件通常放在/usr/local/bin目录下(通

常,为了便于管理,鸟哥都会将后来安装的软件放在这里)

/usr/share/doc 放置一些系统说明文件的地方。例如您安装了Lilo,那么在该目录下就可以查到Lilo的说

明文件,很是便利

/usr/share/man 放置一些程序的说明文件的地方,就是您使用man时会查询的路径。例如您使用man ls

令时,就会查出 /usr/share/man/man1/ls.1.bz2这个说明文件的内容

/usr/src 是放置核心源代码的默认目录,未来我们要编译核心的时候,就必须到这个目录下

/usr/X11R6 X Window System存放相关文件的目录

/var 这个目录也非常重要,所有服务的登录文件或错误信息文件(log files)都在/var/log下,

此外,一些数据库如MySQL则在/var/lib下,还有,用户未读邮件的默认存放地点为

/var/spool/mail

需要注意的目录

Linux系统中,有几个目录需要特别注意,下面列出这几个目录及相关的用途。

  • /etc:这个目录相当重要,如前所述,启动与系统数据文件均在这个目录下,因此

当这个目录被破坏,您的系统也就差不多该死掉了!而在后面,您会发现我们常常

使用这个目录下的/etc/rc.d/init.d子目录,因为该目录用于存放启动一些Linux系统服

务的脚本(可以认为是批处理文档)。而在/etc/rc.d/rc.local这个文件是启动执行文

件,有点类似旧Windows系统下的autoexec.batconfig.sys。所以,如果您有需要在

启动时加载的服务或执行文件,可以写在这个文件的最后一行,则启动时就会自动

加载执行文件了。

  • /bin/sbin/usr/bin/usr/sbin:这是系统默认的执行文件的放置目录,例如root

用的userconfnetconfperlgccC++__________数据都放在这几个目录中,所以如果您

在提示符下找不到某个执行文件,可以在这4个目录中查找。其中,/bin/usr/bin

是系统用户使用的目录,而/sbin/usr/sbin则是系统管理员使用的目录。

  • /usr/local:这是系统预留的让您安装后来升级的套件的目录。例如,当您发现有更

新的Web套件(如Apache),而又不想以RPM的方式升级套件,则可以将apache

件安装在/usr/local下。安装在这里有个好处,因为目前大家的系统都差不多,所以

如果您的系统要让别人接管,也较容易上手,比较容易找到数据。因此,如果需要,

通常我都会将/usr/local/bin路径加到我的path中。

  • /home:这是系统默认的用于存放用户账号的根目录。
  • /var:这个目录很重要。登入、各类服务发生问题时的记录,以及常规性的服务记

录等都记在这个目录下,所以当您的系统出现问题,就需要在这个目录记录的文件

数据中查看问题所在。另外,mail的默认位置也在这里,所以这个目录非常重要。

  • /usr/share/man/usr/local/man:这两个目录为放置各类套件说明文档的地方,例如,

您执行man man,则系统自动查找这两个目录下的所有说明文件,如果有相同的数

据就会显示出来。

 

 

猜你喜欢

转载自cc414011733.iteye.com/blog/2306951