积跬步-至千里系列之一:Linux系统学习的一些初级命令
本文是我自己从零开始学习Linux的命令的过程,将这些命令整理出来,方便自己回顾总结,也希望能帮助大家。由于我是根据书本上自己边看书边学习的,所以下面的总结也就跟着书上的结构来划分。既算作是总结,也算作是自己的一份笔记吧。
- Shell基本命令
- 1.显示当前所在目录:
pwd
;改变目录 :cd 后面跟路径
/表示根目录下; - 2.浏览硬盘文件:
ls命令
.ls是list的缩写。后面可以跟很多的参数,主要介绍几个:-a 列出所有文件
,包含隐藏文件,隐藏文件以.开头表示;-F 对文件进行分类显示
, 具体分类为目录后面加/, 可执行文件后面加*,链接文件后面加@符号;-l选项用来查看文件的各种属性
,使用了该选项,列出的文件列表会有八列,分别表示文件的权限标志,文件的链接个数,文件所有者的用户名,该用户所在的用户组组名,文件的大小,文件最后一次修改日期,修改时间,文件名放在最后显示;除此之外,有一个dir命令,dir命令除了比ls功能少外,其他一样,可以不做掌握; - 3.查看文件:cat和more命令。
cat用于查看文件内容
,后面通常跟文件名;平时使用过程中,为了方便阅读和查找,需要看程序的行号,cat命令加-n选项表示查看内容的同时列出行号
,方便阅读和查找,比如cat -n stack.h
; 另外,有的文件程序特别长,如果一次性显示出来,查找根本不方便,此时可以使用more命令,具体为more 文件名
,该命令会按照屏幕大小来分页显示文件内容,当内容超过一屏时,按空格键表示向下翻动一页,Enter键表示向下滚动一行,q键退出查看; - 4.阅读文件头和尾:head 和 tail命令。同样,后面加-n选项表示指定显示的行数,比如
head -n 2 text
会显示文件的头两行内容;tail命令同理; - 5.查找文件内容:
grep命令
。在看别人的代码或者源码的过程中,我们常常需要猜测,验证,寻找关键代码,这个时候grep命令就会对我们起到很大的帮助,具体的使用规则是grep [options]pattern [file..];我在平时最常使用的是grep -rn "content" .
-r表示递归进行搜索, n表示行号, .代表当前目录及其自目录,在大量的程序中查找关键词特别好用; - 6.
find命令
:顾名思义,搜索命令。具体的规则是find [option][path …][expression] ;如find /usr/bin -name zip -print , /usr/bin 代表路径,表明会在该目录及其子目录下查找, -name表示名字 此处就是 zip,既然是名字,就可以使用通配符,*以及?等,-print表示标准输出;除了指定名字外,还可以制定type类型,在学习的书上看到了六种参数类型,分别为b表示块设备文件,c表示字符设备文件,d表示目录文件,f表示普通文件,p表示命名管道,i表示符号链接,这么多类型初学时肯定不太好记,需要长时间的使用才能熟练;另外还有很多的可以指定的选项,只能说Linux太强大,自己知道的太少啦; - 7.文件定位命令locate:简单实用:
locate *.doc
定位所有doc文件; - 8.查找特定的程序whereis命令:如上简单实用:
whereis 程序名称
- 9.用户及版本信息查看命令。同一台机器上,可能同时登陆了多个用户,通过
who命令可以查看当前系统中所用登陆的用户
, 直接一个who单词,简单直接; 另外whoami可以查看我是谁,也就是当前用户身份;uname 命令用于显示系统版本信息
, -a选项表示输出系统的所有信息,大多数时候我们通常使用uname -r 用于查看系统内核版本信息;
- 10.寻求帮助命令。
man命令
用于在不知道或者忘记一些命令的相关规则和选项时为使用者提供便捷的帮助,具体用法就是man 想要查看的命令,比如man find
查看fand命令的相关说明和选项,man ls 查看ls命令的选项说明和规则
; - 11.获取命令的简介和简短说明,有些时候我们只需要某个命令的核心作用是用来做什么的就可以了,whatis命令和apropos命令就派上用场了,比如whatis uname ,即whatis命令就是从详细到简短的过程;相反的apropos命令是通过使用手册反查到某个命令;
- 文件目录管理
- 1.Linux系统主要的目录及其内容:
- /bin表示构建最小系统所需要的命令;
- /boot内容和启动文件
- /dev各种设备文件
- /etc系统软件的启动和配置文件
- /home用户的主目录
- /lib C编译器的库
- /media 可移动介质的安装点
- /opt 可选的应用软件包
- /proc 进程的映像
- /root超级用户root的主目录
- /sbin和系统操作有关的命令
- /tmp临时文件存放点
- /usr非系统的程序和命令
- /var系统专用的数据和配置文件
- 2.更改文件及目录的权限。
sudo mkdir work 暂时获取root权限创建work工作目录
,sudo chmod 权限
;切换用户为su命令 su name,rm filename 删除文件 - 3.建立文件和目录:
mkdir 目录名
,可喜的是可以跟多个目录名,表示同时创建多个空目录;touch命令用来创建一个空文件
,touch hello
命令表示创建了一个名字为hello的空文件; - 4.移动,复制和删除命令:mv是move的缩写,可以用来移动文件,
mv hello bin/
将hello文件移动到bin目录下,同时还可以移动目录,mv photo/ bin/
默认情况下移动不会有警告和提示,如果需要警告和提示,需要加上-i选项
,在需要覆盖或者发生其他情况时,会提示用户进行选择操作;复制命令是cp,cp 源文件 目标目录 ,形式非常简单,-i表示同名时会提示用户
进行覆盖选择操作,-b选项表示对同名文件改名后再复制
,-r表示递归
的将选中的目录及其子目录一起复制;删除命令分为两个,一个是删除目录,使用rmdir 目录名
将目录进行删除,另一种是用rm 文件名
表示删除文件;但是rmdir命令并不常用,最最常用的就是rm命令-r递归删除或者直接rm 文件名或者分类的文件,即可高效的将文件或者目录进行删除。 - 5文件和目录的权限:Linux中将所有人分成三类,分别是文件所有者,文件属组用户和其他人。
- 6改变文件所有权:chown和chgrp命令。chown命令用于改变文件的所有权,chown命令格式:chown [option]… [owner] [:[group]] file …
比如:sudo chown davie:root days表示将days文件的属主更改为lewis,把用户属主改为root组;如果只修改属主,后面的组属选项可以省略,比如sudo chown guest days,同理,也可以只修改组属;另外chown还提供了-R选项,用于改变一个目录及其下所有文件的所有权限,-R表示递归修改,比如sudo chown -R lewis day;对于chgrp命令,其实是专门来设置文件的属组的,如sudo chgrp nogroup days;同样有-R选项表示递归修改 - 7.改变文件权限chmod命令:最最常用的就是sudo chmod 644 filename,或者sudo chmod 777 filename 用于文件权限的修改或者目录的权限的修改;
- 8查看文件类型:ls -l 会列出文件的类型;
- 9建立链接:ln命令。符号链接需要使用带-s参数的ln命令创建,具体形式为:ln -s TARGET LINK_NAME ,例如ln -s days myd_dyas 意为建立一个名为mydays的符号链接指向文本文件days;
- 10输入输出重定向和管道:重定向和管道时Shell的一种高级特性。大意理解就是将原本输出到控制台或者终端的内容输出到文件中,不在终端或者控制台显示了。>符号表示重定向;输入重定向命令为一个简单的cat命令,没有任何的参数,执行了cat,终端就会等待用户进行终端输入,默认的标准输入终端是键盘,执行Ctrl+D表示结束;另外,通过使用输入重定向符号 <可以让程序从一个文件中获取输入;
- 11.管道,管道将“重定向”再向前推进了一步。通过一根竖线“|”,将一条命令的输出链接到另一条输入。比如 ls | grep ay 就表示在文件列表中查找文件名中包含ay的文件,然后输出到终端;
- 软件包管理
- 1.下载和安装软件包:sudo apt-get update用于更新当前apt-get缓存中的软件包信息。然后就可以使用apt-get install 命令安装软件包了,最好在每次安装之前都运行apt-get update,保证获得的软件包都是最新的。sudo apt-get name 安装程序;install安装,upgrade更新,remove卸载,source下载源代码,clean删除已下载的包文件;如果记不住命令,可以使用上文提到的man apt-get 来查看命令帮助文档;sudo apt-get remove name 删除程序
- 磁盘管理
- 用户与用户组管理
- 进程管理