Linux基础入门
Linux简介
Linux是一款免费、开源、高效、稳定、处理高并发非常强悍的的操作系统。
Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX(可移植操作系统接口)和UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。
Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux的主要发行版本
Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包
Linux和Windows的区别
安装VM和Centos
VM和Centos的关系说明
用VM创建一个虚拟机空间,通过VM软件来创建好的虚拟空间来安装
vmware下载
https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html
创建虚拟机时,有三种形式:
1、桥连接:Linux可以和其他系统通信。但是可能造成ip冲突
2、NAT:网络地址转换方式,Linux可以访问外网,不会造成ip冲突
3、主机模式,你的Linux是一个独立的主机,不能访问外网
下载centos
可以通过centos7镜像进行安装!
阿里云镜像
http://mirrors.aliyun.com/centos/7/isos/x86_64/
各个版本的ISO镜像文件说明:
CentOS-7-x86_64-DVD-2009.iso 标准安装版(推荐)
CentOS-7-x86_64-Everything-2009.iso 完整版,集成所有软件(以用来补充系统的软件或者填充本地镜像)
CentOS-7-x86_64-LiveGNOME-2009.iso GNOME桌面版
CentOS-7-x86_64-LiveKDE-2009.iso KDE桌面版
CentOS-7-x86_64-Minimal-2009.iso 精简版,自带的软件最少
CentOS-7-x86_64-NetInstall-2009.iso 网络安装版(从网络安装或者救援系统)
安装 VMware 虚拟机软件,然后打开我们的镜像即可使用!
1、打开虚拟机,打开虚拟机设置
2、选择CD/DVD,点击ISO映像文件选择已经下好的Centos7镜像文件
3、点击确定,打开虚拟机
4、选择Install centos7开始自动安装,选择自动分区开始安装
ctrl+alt可以释放鼠标
linux系统具有多种登录方式,最常见的终端形式的(字符串的界面,黑白屏的)和图形化的界面。每个用户都有自己青睐的界面。
具体的更改方式也很简单,只要改变/etc/inittab文件即可:
1.打开/etc目录下的inittab文件
2.找到:“id:5:initdefault:”这一行
3.其中的5就是指linux系统的登录方式
0 - halt
1 - single user mode
2 - Multiuser,without NFS
3 - Full multiuser mode
4 - unused
5 - x11
6 - reboot
将id后的数字改为3就是字符登录(黑白屏的),改为5就是图形界面
但是不要改为0或6,否则系统无法正常开机
购买云服务器
虚拟机安装后占用空间,也会有些卡顿,我们作为程序员其实可以选择购买一台自己的服务器,这样的话更加接近真实线上工作;1、阿里云购买服务器:https://www.aliyun.com/minisite/goods?userCode=0phtycgr
2、购买完毕后,获取服务器的ip地址,重置服务器密码,就可以远程登录了
3、下载 xShell 工具,进行远程连接使用!注意事项:如果要打开端口,需要在阿里云的安全组面板中开启对应的出入规则,不然的话会被阿里拦截!
宝塔面板,傻瓜式管理服务器
安装教程:https://www.bt.cn/bbs/thread-19376-1-1.html
1、开启对应的端口
2、一键安装
3、安装完毕后会得到远程面板的地址,账号,密码,就可以登录了
4、登录之后就可以可视化的安装环境和部署网站!
关于域名
如果自己的网站想要上线,就一定要购买一个域名然后进行备案;备案的话需要一些认证和时间,备完完毕后,就可以解析到自己的网站了,这个时候就可以使用域名来进行服务器的访问!
走进linux
开机登录
开机会启动许多程序。它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。
开机成功后,它会显示一个文本登录界面,这个界面就是我们经常看到的登录界面,在这个登录界面中会提示用户输入用户名,而用户输入的用户将作为参数传给login程序来验证用户的身份,密码是不显示的,输完回车即可!
一般来说,用户的登录方式有三种:
命令行登录
ssh登录
图形界面登录
最高权限账户为 root,可以操作一切!
关机
在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。
关机指令为:shutdown ;
sync # 将数据由内存同步到硬盘中。
shutdown # 关机指令,你可以man shutdown 来看一下帮助文档。例如你可以运行如下命令关机:
shutdown –h 10# 这个命令告诉大家,计算机将在10分钟后关机shutdown –h now # 立马关机1234567
shutdown –h 20:25 # 系统会在今天20:25关机
shutdown –h +10# 十分钟后关机
shutdown –r now # 系统立马重启
shutdown –r +10# 系统十分钟后重启
reboot # 就是重启,等同于 shutdown –r now
halt # 关闭系统,等同于shutdown –h now 和 poweroff
系统目录结构
在linux中一切皆文件,在根目录/,所有的文件都挂在这个根目录下
cd :切换目录
./当前目录
cd… 返回上一级目录
绝对路径:路径的写法,由根目录 / 写起,
例如: /usr/share/doc 这个目录。
相对路径:路径的写法,不是由 / 写起,
例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd…/man 这就是相对路径的写法啦!
登录系统后,在当前命令窗口下输入命令:
ls /
树状目录结构:
以下是对这些目录的解释:
/bin: bin是Binary的缩写, 这个目录存放着最经常使用的命令。
/boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
/dev : dev是Device(设备)的缩写, 存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
/etc:这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。
/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。(存放突然关机文件 )
/media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。(会把本地文件挂载在这个目录下)
/opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
/root:该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
/srv:该目录存放一些服务启动之后需要提取的数据。
/sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统sysfs 。
/tmp:这个目录是用来存放一些临时文件的。(用完即丢的文件)
/usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
/usr/bin:系统用户使用的应用程序。
/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src:内核源代码默认的放置目录。
/var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
/run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。
基本常用命令
处理目录的基本命令
ls: 列出目录cd:切换目录
pwd:显示目前的目录
mkdir:创建一个新的目录
rmdir:删除一个空的目录
cp: 复制文件或目录
rm: 移除文件或目录
mv: 移动文件与目录,或修改文件与目录的名称
你可以使用man [命令]来查看各个命令的使用文档,如:man cp。
ls(列出目录)
在Linux系统当中, ls 命令可能是最常被运行的。
语法:
[root@localhost ~]# ls [-aAdfFhilnrRSt] 目录名称
选项与参数:
-a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)
-l :长数据串列出,包含文件的属性与权限等等数据;(常用)
在linux中命令符是可以一组合使用的
将目录下的所有文件列出来(含属性与隐藏档)
[root@localhost ~]# ls -al ~
cd(切换目录)
cd是Change Directory的缩写,这是用来变换工作目录的命令。
语法:
cd [相对路径或者绝对路径]
练习:
# 切换到用户目录下
[root@localhost /]# cd home
# 使用 mkdir 命令创建 dog 目录
[root@localhost home]# mkdir dog
# 进入 dog 目录
[root@kuangshen home]# cd dog
# 回到上一级
[root@localhost dog]# cd ..
# 回到根目录
[root@localhost dog]# cd /
# 表示回到自己的家目录,亦即是 /root 这个目录[root@localhost dog]# cd ~
pwd(显示当前用户所在目录)
pwd 是Print Working Directory的缩写,也就是显示目前所在目录的命令
语法:
[root@localhost dog]#pwd [-p]
选项与参数:
-p:显示出确实的路径,而非使用连结目录
mkdir(创建新目录)
语法:
mkdir [-mp] 目录名
选项与参数:
-m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
-p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!
练习:
# 进入我们用户目录下
[root@localhost /]# cd /home
# 创建一个 test 文件夹
[root@localhost home]# mkdir test
# 创建多层级目录
[root@localhost home]# mkdir test1/test2/test3/test4
mkdir: cannot create directory ‘test1/test2/test3/test4’:
No such file or directory # <== 没办法直接创建此目录啊!
# 加了这个 -p 的选项,可以自行帮你创建多层目录!
[root@localhost home]# mkdir -p test1/test2/test3/test4
# 创建权限为 rwx--x--x 的目录。
[root@localhost home]# mkdir -m 711 test2
[root@localhost home]# ls -l
drwxr-xr-x 2 root root 4096 Mar 1221:55 test
drwxr-xr-x 3 root root 4096 Mar 1221:56 test1
drwx--x--x 2 root root 4096 Mar 1221:58 test2
rmdir(删除空的目录)
语法:
rmdir [-p] 目录名称
选项与参数:
-p :连同上一级『空的』目录也一起删除
练习:
# 看看有多少目录存在?
[root@localhost home]# ls -l
drwxr-xr-x 2 root root 4096 Mar 1221:55 test
drwxr-xr-x 3 root root 4096 Mar 1221:56 test1
drwx--x--x 2 root root 4096 Mar 1221:58 test2
# 可直接删除掉,没问题
[root@localhost home]# rmdir test
# 因为尚有内容,所以无法删除!
[root@localhost home]# rmdir test1
rmdir: failed to remove ‘test1’: Directory not empty
# 利用 -p 这个选项,立刻就可以将 test1/test2/test3/test4 依次删除。
[root@localhost home]# rmdir -p test1/test2/test3/
cp(复制文件或目录)
语法:
[root@www ~]# cp [-adfilprsu] 来源档(source) 目标档(destination)
[root@www ~]# cp [options] source1 source2 source3 .... directory
选项与参数:
-a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
-d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
-r:递归持续复制,用於目录的复制行为;(常用)
-f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
-i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
-l:进行硬式连结(hard link)的连结档创建,而非复制文件本身。
-s:复制成为符号连结档 (symbolic link),亦即『捷径』文件;
-u:若 destination 比 source 旧才升级 destination !
练习:
# 找一个有文件的目录,我这里找到 root目录
[root@localhost home]# cd /root
[root@localhost ~]# ls
install.sh
[root@localhost ~]# cd /home
# 复制 root目录下的install.sh 到 home目录下
[root@localhost home]# cp /root/install.sh /home
[root@localhost home]# ls
install.sh
# 再次复制,加上-i参数,增加覆盖询问?
[root@localhost home]# cp -i /root/install.sh /home
cp: overwrite ‘/home/install.sh’? y # n不覆盖,y为覆盖
rm(移除文件或目录)
语法:
rm [-fir] 文件或目录
选项与参数:
-f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
-i :互动模式,在删除前会询问使用者是否动作
-r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!
练习:
# 将刚刚在 cp 的实例中创建的 install.sh删除掉!
[root@localhost home]# rm -i install.sh
rm: remove regular file ‘install.sh’? y
# 如果加上 -i 的选项就会主动询问喔,避免你删除到错误的档名!
# 尽量不要在服务器上使用 rm -rf /(会将系统中所有文件都删除,所谓删库跑路)
mv(移动文件或者目录,或者修改名称)
语法:
[root@www ~]# mv [-fiu] source destination
[root@www ~]# mv [options] source1 source2 source3 .... directory
选项与参数:
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会升级 (update)
练习:
# 复制一个文件到当前目录
[root@localhost home]# cp /root/install.sh /home
# 创建一个文件夹 test
[root@localhost home]# mkdir test
# 将复制过来的文件移动到我们创建的目录,并查看
[root@localhost home]# mv install.sh test
[root@localhost home]# ls
test
[root@localhost home]# cd test
[root@localhost test]# ls
install.sh
# 将文件夹重命名,然后再次查看!
[root@localhost test]# cd ..
[root@localhost home]# mv test mvtest
[root@localhost home]# ls
mvtest
文件基本属性
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安 全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。 在Linux中我们可以使用 ll 或者 ls –l 命令来显示一个文件的属性以及文件所属的用户和组, 如:
实例中,boot文件的第一个属性用"d"表示。"d"在Linux中代表该文件是一个目录文件。
在Linux中第一个字符代表这个文件是目录、文件或链接文件等等:
当为[ d ]则是目录 当为[ - ]则是文件;
若是[ l ]则表示为链接文档 ( link file );
若是[ b ]则表示为装置文件里面的可供储存的接口设备 ( 可随机存取装置 );
若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标 ( 一次性读取装置 )。
接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。
其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。
要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。
每个文件的属性由左边第一部分的10个字符来确定(如下图):
从左至右用0-9这些数字来表示。
第0位确定文件类型,
第1-3位确定属主(该文件的所有者)拥有该文件的权限。
第4-6位确定属组(所有 者的同组用户)拥有该文件的权限,
第7-9位确定其他用户拥有该文件的权限。
其中:
第1、4、7位表示读权限,如果用"r"字符表示,则有读权限,如果用"-"字符表示,则没有读权限;
第2、5、8位表示写权限,如果用"w"字符表示,则有写权限,如果用"-"字符表示没有写权限;
第3、6、9位表示可执行权限,如果用"x"字符表示,则有执行权限,如果用"-"字符表示,则没有执行权 限。
对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。 同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。 文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。 因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。
在以上实例中,boot 文件是一个目录文件,属主和属组都为 root。
修改文件属性
1、chgrp:更改文件属组
chgrp [-R] 属组名 文件名
-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有 文件的属组都会更改。
2、chown:更改文件属主,也可以同时更改文件属组
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
3、chmod:更改文件9个属性
chmod [-R] xyz 文件或目录
Linux文件属性有两种设置方法,一种是数字,一种是符号。
Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute 权限。 先复习一下刚刚上面提到的数据:文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组 的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:
r:4 w:2 x:1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx-- -] 分数则是:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= — = 0+0+0 = 0
给文件赋予最高权限
chmod 770 filename
文件内容查看
Linux系统中使用以下命令来查看文件的内容:
cat 由第一行开始显示文件内容 tac 从最后一行开始显示,可以看出
tac 是 cat 的倒著写!
nl 显示的时候,顺道输出行号!
more 一页一页的显示文件内容
less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
head 只看头几行 tail 只看尾巴几行
你可以使用 man [命令]来查看各个命令的使用文档,如 :man cp。
cat
语法:
cat [-AbEnTv]
选项与参数:
-A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
-E :将结尾的断行字节 $ 显示出来;
-n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
-T :将 [tab] 按键以 ^I 显示出来;
-v :列出一些看不出来的特殊字符
linux链接概念
Linux 链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。 情况下,ln 命令产生硬链接。
硬连接
硬连接指通过索引节点来进行连接。在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型 都给它分配一个编号,称为索引节点号(Inode Index)。在 Linux 中,多个文件名指向同一索引节点是存 在的。比如:A 是 B 的硬链接(A 和 B 都是文件名),则 A 的目录项中的 inode 节点号与 B 的目录项中 的 inode 节点号相同,即一个 inode 节点对应两个不同的文件名,两个文件名指向同一个文件,A 和 B 对文件系统来说是完全平等的。删除其中任何一个都不会影响另外一个的访问。 硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误 删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响 索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。 也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。
软连接
另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于 Windows 的快捷 方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文 件的位置信息。比如:A 是 B 的软链接(A 和 B 都是文件名),A 的目录项中的 inode 节点号与 B 的目 录项中的 inode 节点号不相同,A 和 B 指向的是两个不同的 inode,继而指向两块不同的数据块。但是 A 的数据块中存放的只是 B 的路径名(可以根据这个找到 B 的目录项)。A 和 B 之间是“主从”关系,如 果 B 被删除了,A 仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。
测试:
[root@localhost /]# cd /home
[root@localhost home]# touch f1 # 创建一个测试文件f1
[root@localhost home]# ls
f1
[root@localhost home]# ln f1 f2 # 创建f1的一个硬连接文件f2
[root@localhost home]# ln -s f1 f3 # 创建f1的一个符号连接文件f3
[root@localhost home]# ls -li # -i参数显示文件的inode节点信息
397247 -rw-r--r-- 2 root root 0 Mar 13 00:50 f1
397247 -rw-r--r-- 2 root root 0 Mar 13 00:50 f2
397248 lrwxrwxrwx 1 root root 2 Mar 13 00:50 f3 -> f1
从上面的结果中可以看出,硬连接文件 f2 与原文件 f1 的 inode 节点相同,均为 397247,然而符号连 接文件的 inode 节点不同。
# echo 字符串输出 >> f1 输出到 f1文件
[root@localhost home]# echo "I am f1 file" >>f1
[root@localhost home]# cat f1
I am f1 file
[root@localhost home]# cat f2
I am f1 file
[root@localhost home]# cat f3
I am f1 file
[root@localhost home]# rm -f f1
[root@localhost home]# cat f2
I am f1 file
[root@localhost home]# cat f3
cat: f3: No such file or directory
通过上面的测试可以看出:当删除原始文件 f1 后,硬连接 f2 不受影响,但是符号连接 f1 文件无效;
依此您可以做一些相关的测试,可以得到以下全部结论:
删除符号连接f3,对f1,f2无影响;
删除硬连接f2,对f1,f3也无影响;
删除原文件f1,对硬连接f2没有影响,导致符号连接f3失效;
同时删除原文件f1,硬连接f2,整个文件会真正的被删除。
Vim编辑器
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程 序员中被广泛使用。
简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。
vim 则可以说是程序开发者的一项很好用的工具。 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。
连 vim 的官方网站 (http://www.vim.org) 自己也说 vim 是一个程序开发工具而不是文字处理软件。
vim 键盘图:
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和 底线命令模式(Last line mode)。 这三种模式的作用分别是:
命令模式:
用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字 符,i被当作了一个命令。
以下是常用的几个命令:
i 切换到输入模式,以输入字符。
-
x 删除当前光标所在处的字符。
- 切换到底线命令模式,以在最底一行输入命令。
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
输入模式:
在命令模式下按下i就进入了输入模式。
在输入模式中,可以使用以下按键:
字符按键以及Shift组合,输入字符
ENTER,回车键,换行
BACK SPACE,退格键,删除光标前一个字符
DEL,删除键,删除光标后一个字符
方向键,在文本中移动光标
HOME/END,移动光标到行首/行尾
Page Up/Page Down,上/下翻页
Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
ESC,退出输入模式,切换到命令模式
底线命令模式
在命令模式下按下:(英文冒号)就进入了底线命令模式。 底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
q 退出程序
w 保存文件
按ESC键可随时退出底线命令模式。
简单的说,我们可以将这三个模式想成底下的图标来表示:
账户管理
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管 理员申请一个账号,然后以这个账号的身份进入系统。 用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另 一方面也可以帮助用户组织文件,并为用户提供安全性保护。 每个用户账号都拥有一个唯一的用户名和各自的口令。 用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。
实现用户账号的管理,要完成的工作主要有如下几个方面:
用户账号的添加、删除与修改。
用户口令的管理。
用户组的管理。
添加账户
useradd 选项 用户名
参数说明:
选项 :
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-m 使用者目录如不存在则自动建立。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
用户名 : 指定新账号的登录名。
删除账户
如果一个用户的账号不再使用,可以从系统中删除。 删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。 删除一个已有的用户账号使用 userdel 命令,其格式如下:
userdel 选项 用户名
常用的选项是 -r,它的作用是把用户的主目录一起删除。
修改账户
修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。 修改已有用户的信息使用 usermod 命令,其格式如下:
usermod 选项 用户名
用户口令管理
用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使 用,必须为其指定口令后才可以使用,即使是指定空口令。 指定和修改用户口令的Shell命令是 passwd 。超级用户可以为自己和其他用户指定口令,普通用户只 能用它修改自己的口令。
命令的格式为:
passwd 选项 用户名
可使用的选项:
-l 锁定口令,即禁用账号。
-u 口令解锁。
-d 使账号无口令。
-f 强迫用户下次登录时修改口令。
用户名如果默认用户名,则修改当前用户的口令。
例如,假设当前用户是sam,则下面的命令修改该用户自己的口令:
$ passwd
Old password:******
New password:*******
Re-enter new password:*******
如果是超级用户,可以用下列形式指定任何用户的口令:
# passwd sam
New password:*******
Re-enter new password:*******
普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两 次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。 为了系统安全起见,用户应该选择比较复杂的口令,例如最好使用8位长的口令,口令中包含有大写、小 写字母和数字,并且应该与姓名、生日等不相同。
为用户指定空口令时,执行下列形式的命令:
# passwd -d sam
此命令将用户 sam 的口令删除,这样用户 sam 下一次登录时,系统就不再允许该用户登录了。 passwd 命令还可以用 -l(lock) 选项锁定某一用户,使其不能登录,例如:
\# passwd -l sam
用户组管理
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户 组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的 更新。
增加新用户组
groupadd 选项 用户组
可以使用的选项有: -g GID 指定新用户组的组标识号(GID)。 -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
删除用户组
groupdel 用户组
修改用户组
groupmod 选项 用户组
常用的选项有:
-g GID 为用户组指定新的组标识号。
-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-n新用户组 将用户组的名字改为新名字
切换组
如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。 用户可以在登录后,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组。例如:
$ newgrp root
这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组。
磁盘管理
Linux磁盘管理好坏直接关系到整个系统的性能问题。 Linux磁盘管理常用三个命令为 df、du 和 fdisk。
df :列出文件系统的整体磁盘使用量
du:检查磁盘空间使用量
df
df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间, 目前还剩下多少空间等信息。
语法:
df [选项与参数] [目录或文件名]
选项与参数:
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H :以 M=1000K 取代 M=1024K 的进位方式;
-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i :不用硬盘容量,而以 inode 的数量来显示
du
Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空 间的查看,还是和df命令有一些区别的,这里介绍Linux du命令。
语法:
du [选项与参数] 文件或目录名称
选项与参数:
-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
-h :以人们较易读的容量格式 (G/M) 显示;
-s :列出总量而已,而不列出每个各别的目录占用容量;
-S :不包括子目录下的总计,与 -s 有点差别。
-k :以 KBytes 列出容量显示;
-m :以 MBytes 列出容量显示;
进程管理
1、在LINUX中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。
2、每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。
3、 每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操 作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
4、一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。
ps指令
使用ps指令即可查看当前系统中正在执行的进程的各种进程信息
语法:
ps –选项
选项说明:
-a:显示当前终端的所有进程信息
-u:以用户的形式显示进程信息
-x:显示后台进程运行的参数
ps -aux|grep xxx ,查看某个服务的进程 如,ps -aux|grep mysql
说明:
1、grep 命令用于查找文件里符合条件的字符串。
2、命令格式:命令A|命令B,即命令A的正确输出作为命令B的操作对象
使用 ps -ef可查看父进程
ps -ef是以全格式显示当前所有的进程
-e 显示所有进程。
-f 全格式。
• UID:用户ID
• PID:进程ID
终止进程
kill指令就像是Windows系统中的任务管理->结束任务一样
基本语法:
kill [选项] 进程号(功能描述:通过进程号杀死进程)
killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负 载过大而变得很慢
时很有用)
常用选项: -9 :表示强迫进程立即停止
查看进程树
基本语法:
pstree [选项] ,可以更加直观的来看进程信息
常用选项:
-p :显示进程的PID
量而已。
-h :以人们较易读的容量格式 (G/M) 显示;
-s :列出总量而已,而不列出每个各别的目录占用容量;
-S :不包括子目录下的总计,与 -s 有点差别。
-k :以 KBytes 列出容量显示;
-m :以 MBytes 列出容量显示;
进程管理
1、在LINUX中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。
2、每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。
3、 每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操 作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
4、一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。
ps指令
使用ps指令即可查看当前系统中正在执行的进程的各种进程信息
语法:
ps –选项
选项说明:
-a:显示当前终端的所有进程信息
-u:以用户的形式显示进程信息
-x:显示后台进程运行的参数
ps -aux|grep xxx ,查看某个服务的进程 如,ps -aux|grep mysql
说明:
1、grep 命令用于查找文件里符合条件的字符串。
2、命令格式:命令A|命令B,即命令A的正确输出作为命令B的操作对象
使用 ps -ef可查看父进程
ps -ef是以全格式显示当前所有的进程
-e 显示所有进程。
-f 全格式。
• UID:用户ID
• PID:进程ID
终止进程
kill指令就像是Windows系统中的任务管理->结束任务一样
基本语法:
kill [选项] 进程号(功能描述:通过进程号杀死进程)
killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负 载过大而变得很慢
时很有用)
常用选项: -9 :表示强迫进程立即停止
查看进程树
基本语法:
pstree [选项] ,可以更加直观的来看进程信息
常用选项:
-p :显示进程的PID
-u :显示进程的所属用户