Linux常用命令(一)之文件处理命令

来源:互联网 发布:网络名词流行用语解释 编辑:程序博客网 时间:2024/06/05 14:08

Linux优良特性

  1. 分时的多用户、多任务的操作系统
  2. 多数的网络协议的支持(unix和tcp/ip协议是同时发展起来的),方便的远程管理(可以通过图形、命令行)
  3. 强大的内存管理和文件管理系统
  4. 大量的可用软件和免费软件(游戏与办公方面较少,Linux主要用于服务器与嵌入式领域),例如使用windows server上,构建一个平台,防火墙,邮件服务器等都是收费的。
  5. 优良的稳定性和安全性(很少在Linux上安装杀毒软件)
  6. 良好的可移植性和灵活性(几乎支持所有CPU平台)
  7. 可供选择的厂商多

Linux系统结构

这里写图片描述

  • 硬件:CPU平台
  • 内核层:Linux系统的心脏,所有的任务都由内核执行完成,内核与用户之间的交互有两种方式,一种是命令行的方式,一种是图形界面的方式。(Linux内核处理任何事物,都要有一个数字标记,例如文件的数字标识,叫做i节点,内核通过调用这些数字标识来进行对象的处理)
  • Shell层:通过命令行完成交互。
  • 应用层(图形界面):像微软的Windows一样,但是名字叫做X Window
    X Window系统特点(X Window是一种协议,制定了一些像tcp/ip一样的规定):
    • 独立于操作系统,灵活性非常强,例如可以安装多个X Window,登录时可以选择
    • 网络特性
    • 源代码免费

UNIX图形环境:CDE(Common Desktop Environment,通用桌面环境)

Linux一些默认规则

文件命名规则

  1. 除了/之外,所有的字符都合法(/是目录层的分隔、表示符,只有一个/表明是root)。
  2. 有些字符最好不用,如空格符、制表符、退格符和字符@#¥&-等。
  3. 避免使用.作为普通文件名的第一个字符。在Linux中,默认.开头的文件为隐藏文件,不是普通文件。
  4. 大小写敏感(Linux源于UNIX,UNIX用C语言把内核绝大多数代码进行重写的,C语言中是区别大小写的),但是在Windows中是不严格区分的。
  5. 终止命令:ctrl+c

命令格式

命令格式: 命令 -选项 参数
例如: ls -la /etc
说明:

  1. 当有多个选项时,可以写在一起(选项:使用命令的时候有不同的操作方法,不同的设置)。
  2. 两个特殊的目录.和..,分别代表当前目录和当前目录的父目录。例如:cd ..可以回到上一级目录,cd与..间有一个空格。

Linux常用命令

命令路径
root可以执行的命令,所在路径:
/sbin
/usr/sbin
(bin是binary缩写,sbin是super binary的缩写,usr是user的缩写)
all users可以执行的命令所在路径:
/bin
/usr/bin

因此可以通过命令所在目录来查看其使用权限。
在Linux系统中,所有的东西都是文件,命令自然也是一个文件,是一个二进制文件(bin-binary)

ls命令——显示目录

命令所在路径:/bin/ls
英文原意是list,功能是显示目录文件
语法: ls 选项[-ald] [文件或目录]
常用选项

-l :详细信息显示,列出长数据串,包含文件的属性与权限数据等(long)  -a :显示所有文件,连同隐藏文件(开头为.的文件)一起列出来(all)  -d :查看目录属性,而不是列出目录的文件数据  -h :将文件容量以较易读的方式(GB,kB等)列出来  -R :连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来  

例如
查看根目录下的目录:ls /
查看根目录下的所有文件:ls -a /
查看文件的详细信息:ls -l /,我们取出其中的一个进行分析

这里写图片描述

可以看到文件以d开头,通过文件的开头(即第一个字符)我们可以获取文件类型(以下是三种常见文件类型):

  • d 目录(directory)文件
  • - 二进制文件
  • l 软链接文件(link)

后面的9个字符,三个看成一组rwx r-x r-x:r-read 读、w-write 写、x-execute 执行,每三个字符作为一部分,代表一类用户,即:

  • rwx 代表所有者u(user)
  • r-x 代表所属组g(group),比如我们希望其他几个用户对此文件也有权限,可以将这些用户放在一个组中,并对此组进行授权,在这里所属组具有读和执行的权限,没有写权限,因此用-代替
  • r-x 代表其他人o(others)

因此第一列字符告诉了我们文件类型和文件权限

第二列表示文件夹内文件和文件夹的总数量(包括文件夹本身),硬链接数
第三列表示文件或文件夹的拥有者
第四列表示文件或文件夹的所属的组
第五列表示文件或文件夹的大小,往往都是标记目录本身的大小,或者目录及其子目录的大小,数据块(block)是Linux中最小存储数据的单位,512字节,理论上数据块是可以调整大小的
第六列开始表示文件创建的时间或者最后被修改的时间
第九列(即最后一列)表示文件名

复合使用ls -ld /test查看test目录的详细信息

cd命令——切换目录

命令所在路径:shell内置命令
执行权限:所有用户
语法: cd [目录]
功能描述:切换目录
例子:

cd /               # 切换到根目录cd ..              # 切换到上一级目录cd /root/Docements # 切换到目录/root/Docements  cd ./path          # 切换到当前目录下的path目录中,“.”表示当前目录    cd ../path         # 切换到上层目录中的path目录中,“..”表示上一层目录  

pwd命令——显示当前所在的工作目录

命令所在路径:/bin/pwd
英文原意:print working directory

touch命令——创建空文件

命令所在路径:/bin/touch
语法: touch [文件名]
例子,在/test目录下创建文科testfile:

cd /testpwd    #检查下路径是否正确touch testfilels -l testfile     #检查文件是否存在

mkdir命令——创建新目录

英文原意: make directory
命令所在路径:/bin/mkdir
例子,在/test目录下创建目录samlee,并再创建文件testfile:

cd /testmkdir samlee

cp命令——复制文件或目录

英文原意:copy
命令所在路径:/bin/cp
语法:cp -R [源文件或目录][目的目录] or cp -R 复制目录
注:复制文件不需要使用任何选项,复制目录需要选项
常用选项:

-a :将文件的特性一起复制  -p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份  -i :若目标文件已经存在时,在覆盖时会先询问操作的进行  -r :递归持续复制,用于目录的复制行为  -u :目标文件与源文件有差异时才会复制  

例子:
(1)复制目录,将etc目录复制到test目录下 cp -R /etc /test
(2)将/test1目录下的file1复制到/test3目录,并将文件名改为file2:

cp /test1/file1 /test3/file2

(3)cp -a file1 file2 #连同文件的所有特性把文件file1复制成文件file2

mv命令——移动文件、更名

英文原意:move
命令所在路径:/bin/mv

例子:
将当前目录下文件file1更名为file3:mv file1 file3
将test目录下的inittab文件移动到tmp目录下,并更名为file.test:

mv /test/inittab /temp/file.testls /testls /temp

rm命令——删除文件或目录

英文原意:remove
语法:rm -r [文件或目录]
注:删除文件不需要加选项,删除目录需要加选项
常用选项:

-f :就是force的意思,忽略不存在的文件,不会出现警告消息  -i :互动模式,在删除前会询问用户是否操作  -r :递归删除,最常用于目录删除,它是一个非常危险的参数  

例子:

rm -i file # 删除文件file,在删除之前会询问是否进行该操作  rm -fr dir # 强制删除目录dir中的所有文件  

注 :上述如果不使用强制删除-fr,会每次都会询问是否删除,十分麻烦

cat命令——查看文件内容

命令所在路径:/bin/cat
该命令用于查看文本文件的内容,后接要查看的文件名,通常可用管道与more和less一起使用(more:more [文件名],分页显示文件内容),从而可以一页页地查看数据。对于more的浏览状态,有些常用选项:

(空格)或f    显示下一页(Enter)     显示下一行 q或Q          退出
cat text | less # 查看text文件中的内容  # 注:这条命令也可以使用less text来代替  

head/tail命令——查看文件前/后几行

语法:head/tail -num [文件名]
例子:

head -20 /etc/services    #查看文件前20行tail -5  /etc/services    #查看文件后5行

其中tail还有一个特殊的选项-f(用于动态显示,例如新上线一个服务,我们需要观察其日志,通过-f就可以时时显示它的动态信息,只要文件有变化,就显示文件的最新内容,默认显示10行):
tail -f /etc/services

ln命令——产生链接文件(软链接及硬链接)

英文原意:link
命令所在路径:/bin/ln
语法:ln -s[源文件][目标文件] ; ln -s 创建软链接

(1)创建软链接

ln -s /etc/issue /issue.softls -l /etc/issue /issue.soft

通过ls命令观察软链接信息可以发现,所有的软链接文件的权限都是lrwxrwxrwx,软链接文件很小,实际就是一个符号链接,它具有什么权限不重要,因为最后真正访问的都是源文件,它的时间是创建这个软链接文件的时间,软链接类似于windows中的快捷方式,执行的时候都会链接到源文件

(2)创建硬链接

ln /etc/issue /issue.hardls -l /etc/issue /issue.hard

通过ls查看两个文件的详细信息发现,两个文件除了存放位置不同之外,其余信息完全相同,硬链接文件的大小与源文件一样大,类似于copy,但是不同之处是,硬链接是同步更新的(同步更新的原因是硬链接与源文件具有相同的inode,即i节点),其中的一个文件变化,另一个文件也会跟着进行变化;还有一点与cp命令的不同之处就是,假如:

cp /etc/issue /issue.hardls -l /etc/issue /issue.hard

/issue.hard的时间信息是执行当前操作的时间,与/etc/issue的时间是不同的,并且硬链接数也是不同的。硬链接不可以跨文件系统,即不可以把/test目录下的一个文件在/a目录下生成一个硬链接

以上就是Linux中常用的文件处理命令:ls、cd、pwd、touch、mkdir、cp、mv、rm、cat、head/tail、ln。后续将在学习的过程中继续总结相关命令。

1 0
原创粉丝点击