Linux基础_什么是shell和常用的文件操作命令

shell:命令解释器,根据输入的命令执行相应命令。

察看当前系统下有哪些shell可以使用

cat /etc/shells  #查看当前系统都有哪些shell
echo $SHELL      #查看当前系统正在使用的shell是什么

下面给大家列出一些常见的shell:

/bin/sh (已经被 /bin/bash 所取代)

/bin/bash (就是 Linux 默认的 shell)

/bin/ksh (Kornshell 由 AT&T Bell lab. 发展出来的,兼容于 bash) /bin/tcsh (整合 C Shell ,提供更多的功能)

/bin/csh (已经被 /bin/tcsh 所取代)

/bin/zsh (基于 ksh 发展出来的,功能更强大的 shell,我现在使用的就是zsh 以后会专门介绍一下)

由于bash是linux默认的shell我们就来着重说一下这个:

bash 是一个为GNU计划编写的Unix shell。它的名字是一系列缩写:Bourne-Again SHell — 这是关于Bourne shell(sh)的一个双关语(Bourne again / born again)

bash是许多Linux平台的内定Shell,事实上,还有许多传统UNIX上用的Shell,像 tcsh、csh、ash、bsh、ksh等等,Shell Script大致都类同,当您学会一种Shell以后,其 它的Shell会很快就上手,大多数的时候,一个 Shell脚本 通常可以在很多种Shell上使用

小窍门:

在bash下敲命令时,Tab键可以补全已经敲了一部分的文件名和目录名。如果是Ubuntu 系统,系统默认启用了bash completion,还可以补全命令的某些参数、Makefile目标等 等。如果是Debian系统,可以用以下命令启用bash completion:

还有一些比较常用的快捷键:

2015-11-17 23.45.55

Linux\Unix 系统目录结构

Linux\Unix 没有盘符这个概念,只有一个根目录/,所有文件都在它下面 ,下面我列出一些常见的目录及作用:

/ 根目录

bin        //系统可执行程序,如命令

boot      //内核和启动程序,所有和启动相关的文件都保存在这里

grub      //引导器相关文件

dev       //设备文件

etc        //系统软件的启动和配置文件所在的目录,系统在启动过程中需要读取的文件都在这个目录里,例如用户账户和密码。

home    //用户的主目录。下面是自己定义的用户名的文件夹

lib         //系统程序库文件,这个目录里存放着系统最基本的动态链接共享库,类似于Windows下的system32 目录,几乎所有的应用程序都需要用到这些共享库。

media    //挂载媒体设备,如光驱、U盘等

mnt        //目录是让用户临时挂载别的文件系统,如挂载Windows下的某个分区,ubuntu默认还是挂载在/media目录。

opt         //可选的应用软件包(很少使用)

proc       //这个目录是系统内存的映射,我们可以直接访问这个目录来获取系统信息。也就是说这个目录的内容不在硬盘上而是在内存里。

sbin       //管理员系统程序

selinux

srv

sys        //udev用到的设备目录树,/sys反映你机器当前所接的设备

tmp      //临时文件夹

usr         //这是个最庞大的目录,我们要用到的很多应用程序和文件几乎都存放在这个目录下。

bin         // 应用程序

game     //游戏程序

include

lib           //应用程序的库文件

lib64

local        //包含用户程序等

sbin         //管理员应用程序

常用的文件操作命令

ls

ls [OPTION]… [FILE]…

 

-a 列出隐藏文件,文件中以“.”开头的均为隐藏文件,如:~/.bashrc

-l 列出文件的详细信息

-R 连同子目录中的内容一起列出

用ls -l命令显示的信息中,开头是由10个字符构成的字符串,其中第一个字符表示文 件类型,它可以是下述类型之一

普通文件

d 目录

l 符号链接

b 块设备文件

c 字符设备文件

s socket文件,网络套接字

p 管道

后面的9个字符表示文件的访问权限,分为3组,每组3位。第一组表示文件属主的权 限,第二组表示同组用户的权限,第三组表示其他用户的权限。每一组的三个字符分别表示 对文件的读、写和执行权限。访问权限后面的数字表示与该文件共享inode的文件总数,即硬链接数(参见下面ln命 令)。

which

查看指定命令所在路径,例如查看 sudo 这个命令的所在路径:

2

mkdir

mkdir [OPTION] DIRECTORY…

创建目录DIRECTORY,可以一次创建多个。OPTION如果是-p,表示可以连同父目录一起 创建。

rmdir

rmdir [OPTION]… DIRECTORY…

删除空目录,可以一次删除多个。OPTION如果是-p,表示可以连同空的父目录一起删除。空目录,只包含.和..的目录为空目录

touch

touch [OPTION]… FILE…

* 将每个文件的访问及修改时间都更新为目前的时间

* 如果文件不存在,则创建一个字节数为0的文件。

rm 删除文件命令

#删除文件
rm file #file是你要删除的文件名

#删除目录
rm -rf dir #dir是你要删除目录的路径,加参数 -r 是递归删除目录下的所有文件和子目录、 -f参数是强制删除 不要询问

mv 文件 移动\重命名 命令

#重命名
mv file newfile #将file 重命名为 newfile

#移动
mv file /dir/ #将当前目录下的file文件移动到 根目录下的 dir目录下

cp 文件拷贝命令

#拷贝文件
cp file1 file2  
cp file1 dir/ #将file1拷贝到 dir目录下
cp file1 ../  #将file1拷贝到上层目录下

#拷贝目录
cp dir1 dir2 -r   #参数-r是递归执行操作
cp dir1 ~/ -r     #参数-r是递归执行操作

cat 查看文件内容命令

查看文件里内容,输出到终端,如果cat时没跟文件名,则读标准输入,遇到\n后,输 出到标准输出,终端下输入Ctrl-d表示结束

more 分段查看文件内容命令

more [OPTION] FILE…

查看文本文件的内容,屏幕显示完一屏就等待用户按下任意键再滚动到下一屏,如果中 途不想继续看下去了,可以按Ctrl+C或q终止显示。

less 查看文本文件内容的命令

less [OPTION] FILE…

查看文本文件的内容,屏幕显示完一屏就等待用户按键,用户可以向上或向下查看,如果中途不想继续看下去了,可以按Ctrl+C或q终止显示。

head 显示指定文件的前面几行

head [OPTION]… FILE…

显示指定文件的前面几行。如果没有指定文件,将从标准输入(键盘)上读取。如果没 有指定要显示的行数,则默认显示前10行。如果要显示文件的前5行:

head -5 file1 #只显示file1文件的前5行内容

tail  显示文件的最后几行

tail [OPTION]… FILE…

显示文件的最后几行。若没有指定显示的行或字符数,则默认显示末尾10行。如果要显 示文件末5行:

tail -5 file1  #只显示file1文件的最后5行内容

ln 文件链接建立命令

链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。建立硬链接时,链接文件和被链接文件必须位于同一个文件系统中,并且不能建立 指向目录的硬链接。而对符号链接,则不存在这个问题。默认情况下,ln产生硬链接。如果 给ln命令加上-s选项,则建立符号链接。

举例如下, 注意ls -l列出文件的硬链接数和字节数:

#硬链接
touch zploo
ln zploo zploo_hl   #给文件zploo建立一个名为zploo_hl的硬链接

#软连接
ln -s zploo zploo_s  #给文件zploo建立一个名为zploo_s的软链接

#创建软硬链接的命令区别就在于一个 -s 参数

stat zploo

stat zploo_hl

执行上面两条命令你会发现,zploo和zploo_hl两个文件的 Inode 是一样的  关于硬链接是实现方式,两个文件的 Inode 是一样的,所有达到一次修改,多处同步(因为linux内核操作文件是以 Inode 编号为准的)

庄朋龙
庄朋龙

一个爱生活的技术菜鸟

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注