目录
文件和目录列表
基本列表功能
显示列表长度
过滤输出列表
浏览文件系统
Linux 文件系统
遍历目录
处理文件
创建文件
复制文件
制表键自动补全
重命名文件
删除文件
处理目录
创建目录
删除目录
编辑其他常用命令与操作
Uname命令
clear命令
返回上一级命令
显示网络配置信息命令ifconfig
重启系统和关机
man命令
find 命令
grep命令
du 命令
df命令
gedit命令
当前系统进程命令 ps
进程实时任务命令 top
查看文件类型 file
想要知道系统中哪些文件,可以使用列表命令(ls)。
(1)ls命令最基本的形式会显示当前目录下的文件和目录,ls命令输出的列表是按字母排序的(按列排序而不是按行排序)
(2)ls -F命令,在目录名后边加了正斜号(/),以方便用户在输出中分辨出他们。
(3)ls -a命令,把隐藏文件和普通文件及目录一起显示出来,所有的以.开头的隐藏文件都显示出来了。
(4)ls -F -R命令,-R参数是ls命令可用的另一个参数,叫做递归选项。它列出了当前目录下包含的子目录中的文件。如果目录很多,这个输出就会很长。
在基本的输出列表中,ls命令并未输出太多每个文件的相关信息。要显示附加信息,另一个常用的参数是-l。-l参数会产生列表格式的输出,包含了目录中每个文件的更多相关信息。
这种长列表格式的输出在每一行中列出了单个文件或目录。除了文件名,输出中还有其他有用的信息。输出的第一行显示了在目录中包含的总块数。在此之后,每一行都包含了关于文件(或目录)的下述信息:文件类型,比如目录(d)、文件(-)、字符型文件(c)或块设备(b);文件的权限;文件的硬链接总数;文件属主的用户名;文件属组的组名;文件的大小(以字节为单位);文件的上次修改时间;文件名或目录名。
这个过滤器就是一个进行简单文本匹配的字符串。可以在要用的命令行参数之后添加这个过滤器:ls -l 音乐。
当用户指定特定文件的名称作为过滤器时,ls命令只会显示该文件的信息。有时你可能不知道要找的那个文件的确切名称。ls命令能够识别标准通配符,并在过滤器中用它们进行模式匹配:问号(?)代表一个字符;星号(*)代表零个或多个字符。
在过滤器中使用星号和问号被称为文件扩展匹配(file globbing),指的是使用通配符进行模式匹配的过程。通配符正式的名称叫作元字符通配符(metacharacter wildcards)。除了星号和问号之外,还有更多的元字符通配符可用于文件扩展匹配。可以使用中括号。ls -l y[a-y]m。同时可以使用感叹号(!)将不需要的内容排除在外。ls -l y[!u]m。
当登录系统并获得shell命令提示符后,你通常位于自己的主目录中。此时我们需要了解Linux文件系统,为下一步作铺垫。
Linux在路径名中不使用驱动器盘符。在Windows中,PC上安装的物理驱动器决定了文件的路径名。Windows会为每个物理磁盘驱动器分配一个盘符,每个驱动器都会有自己的目录结构,以便访问存储其中的文件。举个例子,在Windows中经常看到这样的文件路径:
c:\Users\Rich\Documents\test.doc
这种Windows文件路径表明了文件test.doc究竟位于哪个磁盘分区中。如果你将test.doc保存在闪存上,该闪存由J来标识,那么文件的路径就是J:\test.doc。该路径表明文件位于J盘的根目录下。
Linux则采用了一种不同的方式。Linux将文件存储在单个目录结构中,这个目录被称为虚拟目录(virtual directory)。虚拟目录将安装在PC上的所有存储设备的文件路径纳入单个目录结中,Linux虚拟目录结构只包含一个称为根(root)目录的基础目录。根目录下的目录和文件会按照访问它们的目录路径一一列出,这点跟Windows类似。
窍门:Linux使用正斜线(/)而不是反斜线(\)在文件路径中划分目录。在Linux中,反斜线用来标识转义字符,要是用在文件路径中的话会导致各种各样的问题。在Linux中,你会看到下面这种路径:
/home/Rich/Documents/test.doc
这表明文件test.doc位于Documents目录,Documents又位于rich目录中,rich则在home目录中。要注意的是,路径本身并没有提供任何有关文件究竟存放在哪个物理磁盘上的信息。Linux虚拟目录中比较复杂的部分是它如何协调管理各个存储设备。在Linux PC上安装的第一块硬盘称为根驱动器。根驱动器包含了虚拟目录的核心,其他目录都是从那里开始构建的。Linux会在根驱动器上创建一些特别的目录,我们称之为挂载点(mount point)。挂载点是虚拟目录中用于分配额外存储设备的目录。虚拟目录会让文件和目录出现在这些挂载点目录中,然而实际上它们却存储在另外一个驱动器中。通常系统文件会存储在根驱动器中,而用户文件则存储在另一驱动器中。
在Linux文件系统上,可以使用切换目录命令cd将shell会话切换到另一个目录。进入linux根目录,cd /,$前边代表当前的路径。如下图可知,我们已经进入根目录。并且用ls查看目录下的信息。pwd命令,可以查看当前所在目录的路径。
shell提供了很多在Linux文件系统上操作文件的命令。
你总会时不时地遇到要创建空文件的情况。例如,有时应用程序希望在它们写入数据之前,某个日志文件已经存在。这时,可用touch命令轻松创建空文件。在桌面创建一个文件。并且查看文件属性。此时文件大小为0,因为touch只是创建了一个空文件。
对系统管理员来说,在文件系统中将文件和目录从一个位置复制到另一个位置可谓家常便饭。cp命令可以完成这个任务。
在最基本的用法里,cp命令需要两个参数——源对象和目标对象:
cp source destination
当source和destination参数都是文件名时,cp命令将源文件复制成一个新文件,并且以destination命名。新文件就像全新的文件一样,有新的修改时间。
新文件test_two和文件test_one的修改时间并不一样。如果目标文件已经存在,cp命令可能并不会提醒这一点。最好是加上-i选项,强制shell询问是否需要覆盖已有文件。
cp命令的-R参数威力强大。可以用它在一条命令中递归地复制整个目录的内容。
在使用命令行时,很容易输错命令、目录名或文件名。实际上,对长目录名或文件名来说,输错的几率还是蛮高的。这正是制表键自动补全挺身而出的时候。制表键自动补全允许你在输入文件名或目录名时按一下制表键,让shell帮忙将内容补充完整。
在Linux中,重命名文件称为移动(moving)。mv命令可以将文件和目录移动到另一个位置
或重新命名。
在Linux中,删除(deleting)叫作移除(removing)。bash shell中删除文件的命令是rm。rm
命令的基本格式非常简单。我们要删除yum文件夹下的zy11。
在Linux中,有些命令(比如cp命令)对文件和目录都有效,而有些只对目录有效。
在Linux中创建目录很简单,用mkdir命令即可,系统创建了一个名为yyq的新目录。注意,新目录长列表是以d开头的。这表示yyq并不是文件,而是一个目录。
可以根据需要批量地创建目录和子目录。但是,如果你想单单靠mkdir命令来实现,就会得到下面的错误消息:
要想同时创建多个目录和子目录,需要加入-p参数,我们创建一个yyq1的文件夹,再创建一个yu的文件夹,最后再创建一个xiaoyu的文件夹。
删除目录之所以很棘手,是有原因的。删除目录时,很有可能会发生一些不好的事情。shell会尽可能防止我们捅娄子。删除目录的基本命令是rmdir。 默认情况下,rmdir命令只删除空目录。因为我们在yum目录下创建了一个文件zy,zy1,zy1y,kkyq,zyy,yyq,yyq1,yu,xiaoyu,所以rmdir命令拒绝删除目录。要解决这一问题,得先把目录中的文件删掉,然后才能在空目录上使用rmdir命令。
rmdir并没有-i选项来询问是否要删除目录。这也是为什么说rmdir只能删除空目录还是有好处的原因。也可以在整个非空目录上使用rm命令。使用-r选项使得命令可以向下进入目录,删除其中的文件,然后再删除目录本身。 我们利用 mkdir -p 创建多个文件夹 yyq/zy/zy1。删除yyq目录和其下的子目录。这种方法同样可以向下进入多个子目录,当需要删除大量目录和文件时,这一点尤为有效。
Linux uname(英文全拼:unix name)命令用于显示操作系统信息,例如内核版本、主机名、处理器类型等。uname 可显示电脑以及操作系统的相关信息。
Linux clear命令用于清除屏幕。实际并没有清屏,只是将其上边的内容隐藏。
返回上一级为:../,再返回上一级,继续: ../ .我们创建一个文件夹为:zy,在zy文件夹下再创建一个yyq文件夹,我们打开yyq文件夹再返回到yum文件夹。
Linux ifconfig命令用于显示或设置网络设备。ifconfig可设置网络设备的状态,或是显示目前的设置。查看其中所有的网卡。
其中ens33 类似网卡名词一样,不一定所所的用户的名词都一样。
sudo ifconfig ens33 down ,将网卡关闭,将不能上网,sudo ifconfig enss up,将网卡打开,其中sudo ifconfig enss reload 重启网卡。
reboot
命令用于重启系统。poweroff 关机。
Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man一下即可。同时也可以使用man man 查看man的使用方法。eg:man printf,查看以后按q键退出。
find命令用来在指定目录下查找文件,例如我们在当前目录下创建一个test1的文件夹,我们在此文件夹下创建一个文件为zy.c,我们在此目录下查找zy.c文件,find -name zy.c。
Linux grep (global regular expression) 命令用于查找文件里符合条件的字符串或正则表达式。grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。我们输入 grep -nr "ubuntu" /,在根目录下查找ubuntu目录。
常用参数选项:
-i
:忽略大小写进行匹配。-v
:反向查找,只打印不匹配的行。-n
:显示匹配行的行号。-r
:递归查找子目录中的文件。-l
:只打印匹配的文件名。-c
:只打印匹配的行数。Linux du (英文全拼:disk usage)命令用于显示目录或文件的大小。du 会显示指定的目录或文件所占用的磁盘空间。
一般-sh最常见,查看test1目录下的文件大小。
查看当前目录下所有文件的大小
Linux df(英文全拼:disk free) 命令用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计。(这个命令在嵌入式开发中应用较少)
启动:从菜单启动:应用程序——>附件——>文本编辑器 从命令行执行以下命令: gedit.我们编辑test1文件夹下的zy.c文件。
Linux ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。
ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义:
au(x) 输出格式
我们在嵌入式中ps就可以,在ubuntu中 我们用ps -aux,因为嵌入式时单用户,ubuntu是多用户。
此命令和我们windows下的任务管理器一样。实时显示进程任务。按q键退出。
此命令在嵌入式应用较多。在ubuntu下编译arm下的软件,一般编译完要查看一下可执行软件。看他是不是arm版本。