三、Linux目录介绍三、Linux目录介绍
/:表示的是根的意思
/bin:(binary)存放的是一些二进制文件,但是在Linux中二进制文件是可以被执行的。这个目录中的命令文件是给普通用户使用(非超级管理员用户)。
/etc:Linux下所有的配置文件都会存放到etc目录。
/home:是所有非root用户家目录的一个集合。
/root:root用户的家目录。
/sbin:sbin表示super bin(shell bin),里面同样也类似于bin目录,也存放了一些二进制文件,只不过这些命令只能是让超级管理员去运行。
/usr:存放着一些用户自己安装的软件,其实类似于windows下的Program Files目录。
/var:(variable)存放着Linux下的一些日志文件,在实际开发的时候有一些公司也习惯把Apache或者nginx的站点目录也会放到这个目录中。
四、命令行(shell,壳)
了解:常见的shell。
Csh、tcsh、zsh、bash等
在Linux中如何打开命令行界面?
打开方式:在Linux中的任意一个空白的地方(不要点着图标),右键然后选择【在终端中打开】,会看到一个类似于下面界面的窗口:
命令行符号介绍:
关于用户身份标记说明:
在Linux中#表示超级管理员身份,$符号表示普通用户。
五、基本命令(重点)
通用语法格式:# 指令名称 [选项] [操作的目标]
假设:让小明去楼下超市买清风牌的餐巾纸和农夫山泉牌矿泉水。
1、简单命令
1.1、ls指令
语法1:#ls [路径]
表示列出指定路径下的文件夹和文件的名字,如果路径没有指定则列出当前路径下的(list)
例如:在root用户的家目录中输入ls命令,则会看到以下的效果:
要求列出/home的文档的名称。
#ls /home
语法2:#ls -l [路径]
表示以列表的形式列出指定路径下的文件夹和文件的名字
例如:使用ls –l的命令列出当前用户家目录中的文件夹和文件信息
语法3:#ls -la [路径]
表示以列表的形式列出指定路径下的文件夹和文件名(包含隐藏文件,all)
例如:在当前用户的家目录中输入ls –la命令可以查看全部的文件夹和文件名,并且包含了隐藏文件(特点是以“.”开头的名字)
1.2、clear指令
表示的含义:清空当前屏幕中全部的命令(其实质是没有清空,只不过是顶到上面去了)
语法:#clear
等效于快捷键:ctrl + L
1.3、su指令
作用:切换用户(switch user)。
语法:#su 需要切换到的用户名(用户名可以不写,则表示切换到root用户)
例如:
1、从root用户切换到admin用户。
#su admin
2、从admin用户切换到root用户。
#su root
等价于:
#su
通过上述两个命令的操作发现一个结论:
当切换到的用户权限如果比当前用户的权限低,可以直接切换,不需要密码;反之,如果从低往高切换则要求输入被切换到的账户对应的密码。
1.4、cd指令
作用:切换目录(change directory)。
语法:#cd 需要切换到的路径(路径可以是相对路径,也可以是绝对路径)
路径可以写也可以不写,不写则表示切换到当前用户的家目录。
例如:
1、从root用户家目录中切换到admin用户的家目录中
#cd /home/admin
提示:在切换路径或者后期打开一个文件的时候可以多建议使用tab键(可以自动补全命令路径)。
2、切换用户切换到admin用户,然后从admin用户的家目录使用cd切换到root的家目录
#su admin
#cd /root
结论: 低级用户没有权限访问高级用户相关的资源。
关于路径:
路径分为相对路径和绝对路径。
相对路径是相对当前路径的一种表现形式。
特点:只要不是以“/”开头的就是相对路径。
绝对路径是直接从“根”开始的一种路径形式。
特点:以“/”开头的路径称之为绝对路径。
案例:从root用户家目录中切换到admin用户的家目录中,要求以相对路径形式书写。
#cd ../home/admin
分析:
当前路径:/root
目标路径:/home/admin
1.5、pwd指令
作用:打印当前的工作路径(print working directory)。
例如:在当前用户的家目录中使用pwd命令。
2、文档的操作命令
2.1、创建文件
命令:touch
语法:#touch路径
例如:
1、在当前路径下创建一个文件名字叫php2018.txt。
# touch php2018.txt
2、在磁盘根目录下创建文件php2018.txt。
# touch /php2018.txt
2.2、创建文件夹
命令:mkdir [make directory]
语法:#mkdir 文件夹路径
例如:在root的桌面上创建一个php69的文件夹
#mkdir php69
问题:
#mkdir index.php创建的是什么? 【文件夹】
问题:
在上述的指令执行的基础上行,执行#touch index.php,创建的是什么?【什么都没有】
2.3、复制
命令:cp (copy)
语法:#cp [-r] 需要复制的文档 需要保存的位置
选项说明:
-r:表示递归。如果复制的是文件夹,则-r就不是选项,是必须要加的。
问题:文档在复制的过程中,其名称一般是否变化? 【不变,数量变化】
案例1:需要使用root用户,将根下的php2018.txt复制到admin用户的家目录下
#cp /php2018.txt /home/admin/
案例2:将桌面上(当前目录)的php69文件夹复制到admin的家目录下
#cp php69 /home/admin/
2.4、移动/剪切/重命名
命令:mv (move)【剪切+粘贴】
语法:#mv 需要操作的文档 新的文档的位置
案例:【移动/剪切】将admin家目录下的php2018.txt,移动到root家目录下。
问题:移动操作会影响什么? 【路径变化,数量不变,名称不变】
#mv /home/admin/php2018.txt /root/
案例2:【重命名】将root下的php2018.txt重命名为php.doc。
问题:重命名操作会影响什么? 【名称变,路径不变,数量不变】
#mv /root/php2018.txt /root/php.doc
2.5、删除
命令:rm (remove)
语法:#rm [-rf] 需要删除的文档
选项说明:
-r:表示递归
-f:force,表示强制,没有删除确认提示
案例1:删除root下的php.doc
案例2:删除root下的php文件夹
面试题:
请问使用root用户“#rm -rf /”这个命令能不能执行?
答:从语法上讲,该指令可以执行,表示递归删除根,但是这个操作很危险,不建议执行。
3、文档的查看指令
3.1、tail指令
作用:查看一个文件的末n行
语法:#tail -n 文件的路径
说明:-n可以不写,不写,默认表示10行。
案例:使用tail指令查看root/install.log文件的末5行和末10行
#tail -5 /root/install.log
#tail /root/install.log 等价于 #tail -10 /root/install.log
3.2、head指令
作用:查看文件的头n行
语法:#head -n 文件的路径
注意:如果不指定-n则默认头10行
案例:使用head指令查看root/install.log文件的头5行和头10行
#head -5 /root/install.log
#head /root/install.log 等价于 #head -10 /root/install.log
3.3、cat指令
作用:查看某个文件的全部内容(将内容全部输出在命令行中)【正序】
语法:#cat 文件路径1 文件路径2 文件路径3 …
案例:使用cat指令输出install.log文件内容
#cat /root/install.log
3.4、tac指令
作用:查看某个文件的全部内容(倒序的)
语法:#tac 文件路径1 文件路径2 文件路径3…
案例:使用tac指令输出install.log文件内容
#tac /root/install.log
3.5、vim指令
作用:打开一个文件,显示内容
语法:#vim 文件路径
例如:打开/root/install.log
#vim /root/install.log
退出输入“:q”按下回车即可。
4、关机重启指令
4.1、reboot指令
作用:重启计算机
语法:#reboot
注意:部分情况下(除非自开机以来只有当前一个普通用户登录过)普通用户无法执行reboot指令
4.2、shutdown指令
作用:关机
语法:#shutdown -h 时间
时间常见的值:
now:(shutdown -h now),表示立即关机
+m:(m表示minutes数字),例如+5,则表示五分钟之后关机
4.3、halt指令
作用:关机(关闭内存)
语法:#halt
六、扩展(1)
1、ctrl+a
在命令行中可以使用ctrl+a,来进行光标的快速定位:可以将命令行中的光标从其他的位置快速移动到行首。【ahead】
2、ctrl+e
在命令行中可以使用ctrl+e,来进行光标的快速定位:可以将命令行中的光标从任意位置快速定位到行末。【end】
3、↑和↓键
在命令行输入的位置可以按下↑来查看之前的执行命令历史,可以按下↓来翻到最新的命令执行历史。【即使远程终端断开连接,下次连接上依然可以使用】
4、将命令执行结果保存到文件中去(重点)
按照下面的语法:
#需要执行的命令 > 需要保存到的文件路径 【覆盖写】
或者
#需要执行的命令 >> 需要保存到的文件路径 【追加写】