Linux,一般指GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds)于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它支持32位和64位硬件,能运行主要的Unix工具软件、应用程序和网络协议。
本文主要介绍在使用Linux的过程中可能会使用到的比较基本的简单指令。
1.ls指令
ls 选项 目录或文件
功能:对于目录就列出目录下的子目录和文件,对文件就列出文件名以及其他信息。
选项:
ls -l :显式文件的详细属性;
ls -a:显式目录下的所有文件(包括隐藏文件);
ls -d:将目录像文件一样显式。
要点补充:
①要明确一个概念:文件=文件内容+文件属性,即文件是由文本内容和文件本身的文件名等属性共同组成的。所以对于文件的操作可以视为对文件内容的操作和对文件属性的操作。
②在Linux中,以 . 开头的文件是隐藏文件,如.text.txt等。而在任何目录下都会默认存在两个隐藏目录:.和..。
. :表示当前路径,一般用于寻找当前目录下的文件,如执行目录下的文件则需要./a.out;
.. :表示上级路径,可以用于路径回退。
③ / :是Linux的路径分隔符;\ :是windows的路径分隔符。
两个路径分隔符之间一定是一个目录,而路径的末端一定是一个普通文件或目录。由于Linux的文件目录结构是一颗多叉树,任何文件都只有一个父目录,所以路径就具有唯一性,可以标识一个特定的文件。而这棵树的根结点,也就是整个Linux的根目录,就是 / 。
在Linux中,存在两种表示文件位置的方式:绝对路径、相对路径。绝对路径就是从根目录开始依次向下的路径访问;相对路径则是以当前位置为参考,到对应文件的路径。
假设当前处在lib目录下,需要访问test.txt文件,那么绝对路径就是:/home/xlz/test.txt ;相对路径就是:./../../home/xlz/test.txt 。
2.clear指令
功能:清屏。
3.pwd指令
功能:显示用户当前所在目录。
4.whoami指令
功能:查看当前正在使用Linux系统的用户是谁。
5.cd指令
cd 目录名
功能:进入到指定的目录下。
选项:
cd .. :返回上级目录;
cd /home/xlz :绝对路径;
cd ../xlz:相对路径;
cd - :跳转到最近一次所处的路径下;
cd ~:跳转到用户家目录。
要点补充:
Linux和windows一样都是多用户操作系统,而桌面的本质就是一个文件夹。每当登录windows时,操作系统确认用户后便会根据用户名找到该用户目录下的桌面文件夹,并以图形化界面进行显式。而所找到的这个目录C:\Users\用户名 就是windows中的家目录,所以不同的用户登录windows看到的桌面不同本质就是各自进入了自己家目录下的桌面文件夹。
对于Linux而言,同样有着自己的家目录,任何一个用户登录后所处的路径默认是自己的家目录。root的默认家目录是 /root,普通用户的家目录则是 /home/用户名 。
6.which指令
which 指令名
功能:显示指令在系统中的所处路径。
要点补充:
指令在本质上就是可执行程序,这个可执行文件一般存储在/user/bin目录下,所以对可执行程序的安装、卸载等操作就是在指定路径下对可执行文件的拷贝、删除。
7.alias指令
alias 别名='指令名'
功能:为指令起一个别名,可以使用这个别名代替其原本的名字。如:我们使用的ls和ll就是别名。
8.touch指令
touch 选项 文件名
功能:在当前目录下新建一个普通文件。
9.stat指令
stat 文件名
功能:显示文件的详细信息。
要点补充:
在文件的详细信息中我们发现了最下方有三个时间,分别是Access、Modify和Change,这就是一个文件的ACM时间。
Access:访问时间,在读取或执行时改变。
Modify:修改时间,在文件内容被修改时改变。
Change:更改时间,在文件属性(如权限等)修改时改变。
10.mkdir指令
mkdir 选项 目录名
功能:在当前目录下新建一个目录文件。
选项:
mkdir -p a/b/c/d/e:在当前目录下递归建立多个目录。
11.tree指令
功能:以树状形式显示目录结构。
要点补充:
我们之前提到了指令实际上就是可执行程序,所以当执行一个指令时实际上就是执行一个可执行程序,那么就必须要找到这个可执行程序。tree指令可能并不是提前装好的指令,所以想要执行这个指令需要通过yum进行安装。
yum install -y tree ——安装tree
12.rmdir指令和rm指令
rmdir 选项 目录名
rm 选项 文件名
功能:rmdir删除目录,仅支持删除空目录。rm可以删除普通文件,对于root用户会提出确认是否要删除的选项,使用y或者n做出回答。
选项:
rm -f dir:无需询问,直接删除。
rm -r dir:递归删除目录以及其下所以文件,使用rm删除目录一定要加-r选项。
要点补充:
在Linux指令中,可以使用通配符即*来代替0个或若干个任意字符。
13.man指令
man 选项 查找的命令
功能:可以使用提供的手册查询命令,获取帮助等。
选项:
man 数字 查找的命令:选择在第几个手册中查询,不加数字选项时从头向后依次查询。
man手册内容:
1.Standard commands:标准命令,在shell中可以操作的指令或可执行程序;
2.System calls:系统调用,系统核心可以调用的函数与工具等 ;
3.Library functions:库函数,一些常用的函数与函数库,大部分是C的函数库;
4.Special devices:设备说明,设备文件的说明,通常是在/dev下的文件;
5.File formats:文件格式,查看配置文件的帮助或者某些文件的格;
6.Games and toys:游戏和娱乐;
7.Miscellaneous:杂项,例如:linux文件系统,网络协议,ASCII code等等的说明;
8.Administrative Commands:管理员命令,系统管理员针对root 用户可以使用的管理命令;
9.其他(linux特定的),跟kernel有关的文件。
man指令可能也需要安装。
yum install -y man-pages ——安装man
14.cp指令
cp 选项 源文件/源目录(绝对路径或相对路径) 目标文件/目标目录(绝对路径或相对路径)
功能:将对应的文件拷贝到对应的路径下,可在目标路径中进行拷贝后的重命名。
选项:
cp -rf 原目录 目标路径:对目录进行拷贝。
15.mv指令
mv 选项 源文件/源目录(绝对路径或相对路径) 目标文件/目标目录(绝对路径或相对路径)
功能:将对应的文件剪切到对应的路径下。用途一般有:①文件重命名(在当前目录下剪切);②文件剪切;③剪切并重命名。
要点补充:
Linux中的同一个目录下不允许存在同名文件。
16.cat指令
cat 选项 文件
功能:查看目标文件的内容,默认将其打印在显示器上。
选项:
cat -n 文件:打印内容的同时输出行号。
cat -s 文件:对于文件中的多行空行只输出一个空行。
要点补充:
①tac指令是反向的cat,倒着打印文件内容。
②在Linux中,要编辑文件内容,可以使用nano,相当于windows中记事本的存在。可以使用nano+文件名来创建或打开文件并进行编辑。nano可能需要通过yum进行安装。
③在Linux中需要建立一切皆文件的理念。对于文件的操作,最基础的就是读操作和写操作。Linux将硬件设施也当作文件,如显示器设备实际上是一个显示器文件,键盘设备就是一个键盘文件。对于这个显示器文件,可以对其写入内容,表现出的效果就是打印,显示器文件没有读方法;对与键盘文件而言,可以对其进行读操作,实际上就是在键入内容,键盘文件没有写方法。
④再补充一个echo命令:echo+"字符串"。这个命令的作用是默认在显示器上打印字符串,即向显示器文件写入。
⑤明确了一切皆文件的概念后,我们再引入重定向的概念。
>:输出重定向:改变输出的方向。如echo "hello linux" > log.txt,其意思是将原本默认写入显示器文件的内容输出重定向,写入了log.txt文件中。输出重定向当文件不存在的时候会创建文件,如果存在则会将其先清空在写入。所以 > new.txt 的效果就是新建一个new.txt新空文件,或者将原本存在的new.txt清空。
>>:追加重定向:和>的区别是输出重定向会清空原文件再写入,而追加重定向直接在原文件内容后进行追加。
<:输入重定向:改变输入的方向。输出重定向是修改写的方向,而输入重定向则是修改读的方向。如cat < log.txt,就是将log.txt作为读的来源,默认写入显示器。可能会发现cat log.txt和cat < log.txt,效果相同,但是其具体逻辑是完全不同的。
17.more指令
more 选项 文件
功能:查看文件,在打印满一屏幕的输出后停止。在more中,用回车进行下翻,逐行阅读;输入q来退出;输入/xxx来搜索xxx并跳转。
18.less指令
less 选项 文件
功能:查看文件,和more相似。在less中,可以使用上下键进行文本查看;输入q来退出;输入/xxx来搜索xxx并跳转。
19.head指令和tail指令
head -num filename
tail -num filename
功能:查看文件的前(head)或者后(tail)num行(没有-num选项时,默认是10行)。
20.wc指令
wc -l 文件
功能:统计文本的行数。
要点补充:
指令的级联:管道(|),用于数据的传输。如head -8010 text.txt | tail -11 | wc -l,对8000-8010行统计行数。所以可以看出“|”管道的作用就是将左侧指令执行后的数据传给右边的数据,继续进行处理。
21.date指令
date +[格式化] ——使用格式化输出时间
%Y:年份;
%m:月份;
%d:日期;
%H:小时;
%M:分钟;
%S:秒;
%F:年份相当于%Y-%m-%d;
%X:相当于%H:%M:%S;
%s:时间戳
date +[格式化] -d @时间戳 ——将时间戳转化为一个格式化的时间
22.cal指令
cal 选项 月份 年份
功能:查看日历,默认是当前月的日历
选项:
cal -3:查看当前月,前一月和后一月三个月的日历。
23.find指令
find 路径 选项
find 路径 -name 文件名 ——根据文件名查找文件
24.grep指令
grep 选项 '字符串' 文件
功能:行文本过滤工具,显示文件中包含指定字符串的行。
选项:
-n:显式在原文本中的行号;
-v:反选,即不包含指定字符串的行;
-i:字符串忽略大小写。
25.zip/unzip指令
zip -r xxx.zip 需要压缩的文件们 ——压缩文件
unzip xxx.zip ——在当前路径下解压
unzip -d xxx.zip 路径 ——在指定路径下解压
要点补充:
①zip和unzip可能需要yum安装。
②打包压缩的好处:缩小体积,占据的磁盘空间更小,下载快;不会轻易丢失文件。
26.tar指令
tar -cvzf test.tgz 需要压缩的文件们 ——压缩文件
tar -xvzf test.tgz ——当前路径解压
tar -xvzf test.tgz -C 路径 ——解压到指定路径
-c:创建压缩文件;
-x:解压;
-v:显式压缩过程的文件;
-z:压缩;
-f:使用压缩文件名,-f后必须紧跟着压缩文件名,其他选项不可以再紧跟着-f;
-C:解压到指定目录。
要点补充:
①基于Xshell的win和Linux文件互传:sz 文件,可以将云服务器的内容下载到本地;rz,可以将本地文件上传至云服务器。
②Linux之间的文件互传:scp 文件 用户名@目的机器IP地址 : 拷贝路径。
27.bc指令
功能:进入交互式计算器,输入quit退出。
28.uname指令
uname -r ——显式Linux内核版本
3.10.0(内核版本)-1160.95.1.el7(centos7).x86_64(64位)
要点补充:
cat /etc/redhat-release ——显式操作系统版本(centos下路径)
cat /proc/cpuinfo ——显式CPU信息
cat /proc/meminfo ——显式内存信息
29.shut指令
shut -h ——关机(关闭云服务器)
shut -r ——重启
shut -t num ——在num秒后关机