linux基础入门
- linux是一门开源稳定性高实用的全文本的操作系统,一般实用于服务器,我们国家大多数互联网公司采用的是
Cent OS
,说起Cent Os
那他和 红帽(Red Hat)
公司的关联那就大了,好了不啰嗦了下面正式开始我们的基础的讲解。
- linxu 基础入门首先是命令,要对命令的了解,活学,活用,当然还有他的当然和发展史等等,但是篇我们说的是命令,正所谓,万丈高楼从低起,我们要先打好基,才能成为高手,童鞋们让我们一起加油吧。
内部命令
- 内部命令那什么叫内部命令,内部命令就是基于shenll 里面的命令,用来执行操作,所以我给称他为内部命令。
shenll
可以说他是个翻译,我们要和计算机说话肯定需要东西来翻译啊,我们又不是搞编程的,我们又不认识代码,这时候shell
就出来了。
shell
分很多种我们默认用的是bash
, 可以用cat /etc/shells
来查看计算机里面的shell 种类,在可以用echo /etc/$SHELL
来查看你的系统用的什么shell
,当然我们默认用的是bash,我们当然说的就是bash啦。
-bash
实际上是一个文件,真实存在于系统里面,可以用ls /bin/bash
来查看路径,他会显示绿色,绿色表示是可以执行文件,绿色都是可执行的,他是一个程序,用ll /bin/bash
命令可以查看bash
的大小,bash
命令是我们系统运行了,会自动启动,所以一开始我们就能执行。
- 那我们怎么知道那些命令是内部命令? , 这样的话,我们用
cd
这个常用的命令来试试 。 - 在命令行输入:
type cd
,执行命令以后他会显示cd is a shell builtin
千万要注意空格哦:builtin
的意思是内置或内键的意思,这表示他输入内部命令。
-type
这个命令表示可以帮我们判断命令的类型。 - 那外部命令是什么样子,那我们用
ifconfig
这个命令是用来查看本机的ip 的 输入:type ifconfig
他会显示ifconfig is/usr/sbin/ifconfig
他显示的是一个路径,那表示他不是bash
自带的了,他已经独立出来了,这种就表示他是一个外部命令。 -
shell
是分好几种类型的如:sh,bash,nologin,csh,tcsh
,等等,每种shell
内置的内部命令都不用,但是有些命令在里面也是相同的,这表示内部命令依赖于shell类型。` - 那系统种中有多少种内部命令或多少个内部命令,那我们可以用 help 命令 来查看,这样他会显示,系统所有的内部命令,用
enable
也可以列出所有的内部命令。 - 那怎么去禁用内部命令,可以用 :
enable -n
后面是命令 , 这样可以禁用命令,禁用命令就是不允许他用了,但是有些命令就算禁用了,但是他也存在于外部命令,存在也外部命令的意思就是他,在外部也有这个命令如 :echo
这个命令就算把他禁用了他在外部也有这个命令他一样可以执行。 - 那这样就有了个优先级之分 ,到底是外部命令还是内部命令,谁先使用,那肯定是内部命令,那为什么不是外部命令,原因很简单,因为
bash
开机的时候已经集成在内存里面了,而外部命令还在磁盘里面,内存比硬盘速度快多了,那原理上是不是很合理,其实系统上就是这么设定的。 - 那怎么去开机禁用的命令 :
enable
后面接命令,其实就是把-n
去掉这就是启用内部命令。 - 其实我们怎么看命令既是外部又是内部命令?我们可以用 :
type -a
后面接命令 可以查这个命令是否是外部又属于内部,我们还可以用 :type -P
选项 后面接命令 , 这样可以查出命令的路径,假如什么都不显示,这表示这个命令没有外部命令,没有外部命令他就不显示路径。 - 那怎么显示那些命令被禁用了,我们可以用:
enable -n
选项 后面不接命令来查看,输入命令以后会显示所有被禁用的内部命令,而且用 enable -n 选项 后面接命令 , 还可以一次禁用多个命令,当然enable
后面接命令 还可以支持启用多个命令。 - 最后还告诉大家哥小秘密哦:
enable
还可以自己禁用自己哦,但是童鞋们不要担心,因为我们用的都是命令行界面所以只有重新打开命令行界面就可以了,他会重新启用bash
,我们又可以用了,哈哈。
外部命令
- 外部命令,我们在上面用
type
看了他是一个一个的路径,既然是路径那就表示他是存在于磁盘里面,也就是硬盘,外部命令既然是一个一个的路径,那我们输入命令的时候我们好像没输入路径吧,那他是怎么运行的? ,他是怎么找到这个文件的,磁盘文件这么多他不可能一个一个去找吧,那他是怎么执行的,怎么找到路径的?。
- 外部命令有什么命令来查看,我们可以用:
which
后面加命令,可以来查看外部命令的路径,一般专用他来查看外部命令的路径,他和type 很有相似之处,用:which -a
选项 他会把$PATH
里面所有的和命令相同的路径全找出来,有时候用他会现实出来不是我们想要的东西,其实是别名,他的功能就是查看别名,后面我会介绍。 - 还有一个命令 :
whereis
后面接命令列出外部命令和一些文档命令 后面在来介绍。 - 其实他是依赖于PATH变量命令:
echo $PATH
可以找到PATH
变量的路径,他们会一个一个路径里面找,找不到的话他们就报错了,注意这些路径不在内存里面哦,但是他们执行过后就缓存在内存里面了 ,缓存了以后他就不需要在去硬盘找PATH变量里面找了,大家注意每个版本的PATH变量都不同哦。
系统别名
- 别名也就是小名吧,作用是把很长的路径给他定义一个别名以后,用最短的时间来执行。
- 那怎么定义别名,比如:
alias cdnet='cd /etc/sysconifg/network-scripts/'
这个路径长吧,我以后只要输入cdnet
就会直接切换到 :etc/sysconfig/network-scripts
:这个目录下面这样不是很方便吗。 - 我们用alias 这个命令可以列出系统里面所有的别名,里面有我们已经定义好的别名和系统自带的别名,每个版本系统定义的别名都不同。
- 但是我们只样定义的别名都只是临时的想要永久定义别名需要去修改家目录下面的一个文件叫:
.bashrc
这个文件去修改这样才能修改别名,就算以后退出终端了,别名一样可以用。 - 但是我们是修改文件的,所以我们这个别名不会马上生效和临时的别名不同,需要我们用:
. .bashrc
来执行 这样才能马上执行我们修改的别名。 - 我们这个别名只是修改用户的别名哦,如果你想每个用户都能用也称全局别名需要修改:
/etc/.bashrc
修改这个文件才能每个用户都能用这个别名。 - 删除别名:
unalias
接想删除的别名这样就可以删除他了,但是这只是临时删除,终端退出以后,在登录的话别名会重新加载别名,想要彻底删除,需要去家目录里面的:bashrc
里面去修改,当前你想要删除全局的别名也要去:/etc/bashrc 里面才能删除,当然
nalias -a `选项可以取消全部别名,但是只是临时的,不要紧张。
外部命令
- 外部命令,我们在上面用
type
看了他是一个一个的路径,既然是路径那就表示他是存在于磁盘里面,也就是硬盘,外部命令既然是一个一个的路径,那我们输入命令的时候我们好像没输入路径吧,那他是怎么运行的? ,他是怎么找到这个文件的,磁盘文件这么多他不可能一个一个去找吧,那他是怎么执行的,怎么找到路径的?。
- 外部命令有什么命令来查看,我们可以用:
which
后面加命令,可以来查看外部命令的路径,一般专用他来查看外部命令的路径,他和type 很有相似之处,用:which -a
选项 他会把$PATH
里面所有的和命令相同的路径全找出来,有时候用他会现实出来不是我们想要的东西,其实是别名,他的功能就是查看别名,后面我会介绍。 - 还有一个命令 :
whereis
后面接命令列出外部命令和一些文档命令 后面在来介绍。 - 其实他是依赖于PATH变量命令:
echo $PATH
可以找到PATH
变量的路径,他们会一个一个路径里面找,找不到的话他们就报错了,注意这些路径不在内存里面哦,但是他们执行过后就缓存在内存里面了 ,缓存了以后他就不需要在去硬盘找PATH变量里面找了,大家注意每个版本的PATH变量都不同哦。
Hash缓存表
- 缓存表俗称哈希表用:
hash
命令可以查看,这都是缓存到内存里面的外部命令,输入命令以后会有英文叫hits
的单词 这其实就是这个命令执行了几次的意思,1就是这个命令执行了一次,3就是这个命令执行了三次,当然hits
在单词里面是命中的意思 ,command
这个相信大家都知道 路径 ,命令的路径这就是已经缓存在内存里面的命令。
- 我们用命令
hash -l
后面不接命令 可以详细的显示出命令的路径和命令本身。 - 用命令
hash -p
选项 后面接路径和命令本身如:hash -p /usr/bin/cd dd
这样我们就给cd
取了别名 叫dd
一样可以执行 但是临时的。 - 删除缓存别名如:
hash -d
选项 后面接你要删除的命令 ,这样可以删除缓存中的命令。 - 清空所有缓存命令是:
hash -r
清除所有的缓存。 - 还有个命令是:
hash -t
选项这个命令是用于显示出别名的路径,也叫打印缓存的路径,也就是打印出外部命令缓存到这里的路径。
简单小命令
- date 查看当前系统时间
- date 改时间格式MMDDHHmmYYYY.ss
- MM是月 DD是号 HH小时 mm分钟 YYYY是年 ss 是秒 ,当前改的只是内存里的时间。
- ckock 硬件时间
- ckock -s 把硬件时间读取到软件
- hwckock -w 把软件时间读取到硬件时间
- ntpdate 同步时间 但是需要同步的服务器有同步服务
- 输入 LANG=“zh_CH.UTF-8” 可以切换显示中文时间
- 输入 LANG=“en_US.UTF-8” 可以切换为英文模式时间
- UTF-8 是支持所有语言的
- cal 是显示日历 修改时间:cal-10-2018 不要加横杠
- cal 显示整年:cal 2018 最高9999年 缺点就是不能显示农历,有一个特殊的年 09 1752年是一个故事。
- 时区我们可以在/etc/localtime里面改.CentOS 7里面专有个命令来查看时区,用命令timedatectl list-timezones 列出所有时区,找到我们想要改的时区,让后我们在设置时区,用命令timedatectl set-timezone 后面接你想设置的时区,记住在timezone后面一定要加 / 斜杠或空格哦 ,这样我们就改了时区。(注意这些命令只有
CentOS 7
命令才支持哦) - nano 文本小编辑器
- halt ,poweroff 关机
- reboot 重启 -f 强制重启 -p 切断电源
- shutdown 关机或重启 -h 10分钟后关机 -c 取消关机 假如 :shutdown -h 后面跟时间可以定制时间关机1就是1分钟 10就是10分钟,但是可以用-c取消关机,。
- shutdown -h 还可以发消息关机 ,如:shutdown 18.16 "这里填写消息" ; 他会提前15分钟提醒你。
echo命令 - echo 回显的意思也称打印|
- -n 不换行|
- e 启用字符功能
- -a 报警 需要-e配合使用
- \b退格的功能 |
- \c 最后不加上换行符号
- \n 换行且光标移至行首
- \r 回车,即光标移至行首
- \t 插入 rab
- \ 插入\字符
系统时间
date
查看当前系统时间
-
date
改时间格式MMDDHHmmYYYY.ss
-
MM
是月DD
是号HH
小时mm
分钟YYYY
是年ss
是秒 ,当前改的只是内存里的时间。 -
ckock
硬件时间
-ckock -s
把硬件时间读取到软件 -
hwckock -w
把软件时间读取到硬件时间 -
ntpdate
同步时间 但是需要同步的服务器有同步服务 - 输入
LANG=“zh_CH.UTF-8”
可以切换显示中文时间 - 输入
LANG=“en_US.UTF-8”
可以切换为英文模式时间
- UTF-8 是支持所有语言的
-
cal
是显示日历 修改时间:cal
-10-2018 不要加横杠 -
cal
显示整年:cal
2018 最高9999年 缺点就是不能显示农历,有一个特殊的年 09 1752年是一个故事。 - 时区我们可以在
/etc/localtime
里面改.CentOS 7
里面专有个命令来查看时区,用命令timedatectl list-timezones
列出所有时区,找到我们想要改的时区,让后我们在设置时区,用命令timedatectl set-timezone
后面接你想设置的时区,记住在timezone
后面一定要加 / 斜杠或空格哦 ,这样我们就改了时区。(注意这些命令只有CentOS 7 命令才支持哦) -
nano
文本小编辑器 -
halt ,poweroff
关机 -
reboot
重启-f
强制重启-p
切断电源 -
shutdown
关机或重启-h
10分钟后关机-c
取消关机 假如 :shutdown -h
后面跟时间可以定制时间关机1就是1分钟 10就是10分钟,但是可以用-c取消关机,。 -
shutdown -h
还可以发消息关机 ,如:shutdown
18.16 "这里填写消息" ; 他会提前15分钟提醒你。
echo命令
-
echo
回显的意思也称打印|
--n
不换行| -
-e
启用字符功能 -
-a
报警 需要-e配合使用 -
\b
退格的功能 | -
\c
最后不加上换行符号 -
\n
换行且光标移至行首 -
\r
回车,即光标移至行首 -
\t
插入rab
-
\\
插入\字符
使用帮助
- 创建
whatis
数据库,查命令资料我们有时候会出现一种情况,那就是这个命令明明没错但是为什么不能查,呵呵这个情况那是因为,系统刚装他还没把资料数据库装进去,刚装的系统要过几天系统才会把资料数据库装进去,所以要执行一个命令我们自己装数据库这个命令就是:nakewhatis
这个命令才会把数据库装好。
-
whatis
这个命令会帮我们来描述命令的用途,和章节号。 - 内部命令帮助的用法,可以用
help
这个命令是专用来查内部命令的帮助格式是:help enable
。 -
man
是用来查外部命令的,当然他也可以来查内部命令, 在man
里面很多资料是分章节来分号的,可以用:ls /usr/share/man
可以查看man
:第一章是用来放用户命令,第二章是用来放系统调用,第三章是用来放C库调用,第四章是用来放设备文件以及特殊文件,第五章配置文件格式,第六章是用来放游戏,第七章是用来放杂项,第八章是用来放管理类的命令,第九章是用来放linux
内核的API
,对于我们来说只关系第一章。 - 还有个小命令
info
也可以来查,但是用的少 - 查帮的顺序是先用
type
来查看命令,属于外部还是内部命令,如果是外部命令,还要用shatis
来查看他的章节号,然后在用在用man
来查命令的资料,如果是内部命令,就用help
来查他的资料,查帮助的时候有时候资料不是很全要活学,活用,多看帮助提深你的英语高度,小伙伴们一起加油吧。 - 搜索快捷键 【n】是往下搜索【N】大写N是网上搜索,也可以用/来所说,也可以用?来搜索,/斜线是默认向下搜索,? 问号默认向上搜索。