admin管理员组文章数量:1599276
目录
- Linux目录用途
- 分区、inode、扇区、块、软链接与硬链接
- 挂载、文件系统结构
- VMware的网络配置以及远程登录管理工具putty
- 命令格式、目录处理命令ls、文件权限说明
- 目录处理命令:mkdir,cd,pwd,rmdir,cp,mv,rm
- 文件处理命令(touch,ln,cat,more,less,head,tail)
- 权限管理(chmod, chown, chgrp, umask)
- find命令与locate命令(查找文件/文件夹)
- which命令和whereis命令(查找命令+别名/帮助文档)
- grep命令(查找文件中某行)
- man命令与help命令(帮助命令)
- 用户添加删除修改密码useradd、userdel、passwd
- 修改用户信息 usermod、修改用户密码状态chage、切换用户su、用户组增改删groupadd、groupmod、groupdel、gpasswd
- 用户登录信息查看命令who、w
- 打包、压缩、解压缩命令gzip、gunzip、tar、zip、unzip、bzip2、bunzip2
- 邮件发送与读取命令write、wall、mail
- 网络配置命令ping、ifconfig、last、lastlog、traceroute、netstat、setup、mount
- 关机重启命令shutdown、halt、poweroff、init 、reboot
- vim编辑器:建立、编辑和显示文本文件
- sudo使普通用户具有root权限
- rpm、yum、源码包三种安装/卸载方式
- 用户管理配置 /etc/passed、/etc/shadow、/etc/group、etc/gshadow、用户管理的相关文件
- Linux大坑专填
Linux目录用途
linux不靠扩展名区分文件类型,但是有一些约定,方便管理员识别,不是必须的,linux能够通过颜色来帮助说明
压缩包:*.gz、*.bz2、*.tar.ba2、*.tgz等
二进制软件包:*.rpm
网页文件:*.html、*.php
脚本文件:*.sh
配置文件:*.conf 配置文件通常保存在/etc/下
linux所有的存储设备都必须挂载之后用户才能使用,包括硬盘、U盘和光盘
分区、inode、扇区、块、软链接与硬链接
Linux 规定每一个硬盘设备最多能有4个主分区(其中包含扩展分区)
如/dev/hda1 /dev/hda2表示第一个硬盘的第一和第二个分区,现在基本上都是sata接口 所以一般都是/dev/sda,
1234是给主分区保留的,逻辑分区只能从5开始(扩展分区就是拿主分区去划分逻辑分区
格式化:
根据写入文件系统,把硬盘分成一个一个大小的block,同时也建立一个inode table。
扇区(sector):每个扇区512字节;
块(block):多个扇区组成,文件存取的最小单位,最常见是4kB,即连续八个sector组成一个block,文件数据都存储在“块”中
iNode:储存文件元信息的地方,包括文件创建者、创建日期、大小等等。元信息包括文件字节数、文件拥有者的User ID、文件的Group ID、文件的读写执行权限、文件的时间戳,共三个:ctime,mtime,atime【ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间】、链接数、文件数据block的位置。Inode也叫“索引节点”
查看文件的Inode命令:stat 文件名 (ls -i 也可
iNode的大小:
格式化时候,操作系统自动将硬盘分成两个区域:数据区,存放文件数据;另一个是inode区(inode table),存放iNode所包含的信息
iNode节点大小:128或256byte,inode节点总数,在格式化就给定,一般是每1kb或者2kb设置一个inode
查看每个硬盘分区的inode总数和已经使用的数量,可以使用df命令,如下
df -i
每个inode节点大小可以用如下命令:
sudo dumpe2fs –h /dev/had | grep “inode size”
inode的号码:
每个inode都有一个号码,操作系统用inode号码来识别不同的文件,文件名只是inode号码便于识别的别称或者绰号,表面上,用户通过文件名,打开文件。实际上,系统内部这个过程分成三步:
首先,系统找到这个文件名对应的inode号码;
其次,通过inode号码,获取inode信息;
最后,根据inode信息,找到文件数据所在的block,读出数据。
硬链接和软链接:
硬链接:多个文件名指向同一个inode号码
软链接"(soft link)/"符号链接(symbolic link):文件A和文件B的inode号码虽然不一样,但是文件A的内容是文件B的路径。读取文件A时,系统会自动将访问者导向文件B。
挂载、文件系统结构
挂载:
(个人认为,Linux中就是要把分区/设备文件挂载了才能找到,就像Windows中在字母盘中放置文件一样,而Linux只有一个根目录)
对于硬盘,无论有几个分区,分给哪一个目录使用,它归根到底就只有一个根目录,一个独立且唯一的文件结构。
每个分区都是用来组成整个文件系统的一部分,因为它采用了一种叫“载入”的处理方式,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。
通俗点讲:挂载就是将分区/文件系统挂载到哪个目录里,建立一个映射关系。
注:挂载点必须是空目录
语法:mount 【-l】 #查看已挂载的文件设备
mount 【文件系统】 【挂载点】 #挂载文件设备
挂载好之后,就可以通过挂载点访问光盘中的数据:也就是说挂载点是访问挂载设备的入口。
注:Linux中
必须分区:/(根分区);swap分区(交换分区,内存2倍,不超过2Gb)
推荐分区:/boot(启动分区 200MB)
文件系统结构:
逻辑的结构【即目录】并不一定是对应逻辑分区中的文件关系
VMware的网络配置以及远程登录管理工具putty
vmware为我们提供了三种网络工作模式,它们分别是:
Bridged(桥接模式)、NAT(网络地址转换模式)、Host-Only(仅主机模式)
个人总结:
桥接模式是用网桥将虚拟交换机与主机的网卡连接,以实现联网与通信;(因为说此时是把物理主机当成了交换机,虚拟交换机和物理主机都连在该交换机上,故可以联网和通信);
NAT模式时利用虚拟NAT设备连接了 主机网卡和虚拟交换机,虚拟交换机再连接虚拟DHCP设备,实现联网;利用主机中的虚拟网卡Vmnet8实现主机与虚拟机的通信;
Host-Only模式就是利用主机中的虚拟网卡Vmnet1实现主机与虚拟机的通信。
Vmware网络配置中的 VMnet0 表示的是用于桥接模式下的虚拟交换机;VMnet1表示的是用于仅主机模式下的虚拟交换机;VMnet8表示的是用于NAT模式下的虚拟交换机
1、桥接模式
主机上没有相对应的虚拟网卡。
桥接模式就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信。在桥接的作用下,类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰。在桥接模式下,虚拟机ip地址需要与主机在同一个网段,如果需要联网,则网关与DNS需要与主机网卡一致。
如果网络环境是ip资源很缺少或对ip管理比较严格的话,那桥接模式就不太适用了。
其网络结构如下图所示:
2、NAT模式
对应主机中的VMware Network Adapter VMnet8虚拟网卡
在NAT模式中,主机网卡直接与虚拟NAT设备相连,然后虚拟NAT设备与虚拟DHCP服务器一起连接在虚拟交换机VMnet8上,这样就实现了虚拟机联网。
VMware Network Adapter VMnet8虚拟网卡主要是为了实现主机与虚拟机之间的通信。
配置方式:使用vi /etc/sysconfig/network-scripts/ifcfg-eth0配置网卡:
(1)设置ONBOOT为yes,设置BOOTPROTO为dhcp(自动分配ip)即可;
(2)设置ONBOOT为yes,设置BOOTPROTO为static/none,手动配置ip、网关、dns、子网掩码;注意ip需要在dhcp地址范围内。
3、host-only模式
对应主机的VMware Network Adapter VMnet1虚拟网卡。
Host-Only模式其实就是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信的,Host-Only模式将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只与主机相互通讯。
命令格式、目录处理命令ls、文件权限说明
命令格式:命令 【-选项】【参数】
例:ls -l /etc
说明: 1)个别命令使用不遵循此格式:如直接输入ls
2)当有多个选项时,可以写在一起
3)简化选项与完整选项:-a等同–all,简化选项用一个-,完整选项用–,一般用简化
ls:显示目录文件
语法:ls 选项【-ald】 【文件或目录】
-a 显示所有文件,包括隐藏文件(以.开头的)(–all)
-l 显示详细信息 (long的缩写)(相对于 ll
-d 只查看目录属性,不显示目录下的文件只显示目录
-i 查看文件的inode节点
-h 以人类方便理解的方式显示(human)
使用 ll 查看文件信息时,第一列表示地即是权限信息。其中:
linux把用户分成三类,所有者(u),用户组(g),其他人(o),用来表示文件和使用者之间的关系
Linux中文件类型不是用扩展名来识别地,而是用权限位的第一位,常见的文件类型有:
-"-":普通二进制文件。
-“b”:块设备文件。这是一种特殊设备文件,存储设备都是这种文件,如分区文件 /dev/sda1 就是这种文件。
-“c”:字符设备文件。这也是特殊设备文件,输入设备一般都是这种文件,如鼠标、键盘等。
-“d”:目录文件。
-“l”:软链接文件。
-“p”:管道符文件。是一种非常少见的特殊设备文件。
-“s”:套接字文件。这也是一种特殊设备文件,一些服务支持 Socket 访问,就会产生这样的文件。
注:
在 CentOS 6 以上的系统中,权限位中出现了 “.”,代表 :这个文件受 SELinux 的安全规则管理。
目录处理命令:mkdir,cd,pwd,rmdir,cp,mv,rm
mkdir:创建新目录(可同时创建多个
路径:/bin/mkdir
语法:mkdir 【可选项-p】 【目录名】
-p: 递归创建
cd:切换目录
路径:shell内置命令
语法:cd 【目录名】
pwd:显示当前目录的绝对路径
路径:/bin/pwd
语法:pwd
rmdir:删除空目录
路径:/bin/rmdir
语法:rmdir 【目录名】
cp:复制文件或目录。 (复制时可以直接就修改名字
路径:/bin/cp
语法:cp -rp【源文件或目录】【目标目录】
-r: 复制目录
-p:保留文件属性
mv:剪切文件、改名
路径:/bin/mv
语法:mv 【源文件或目录】【目标目录】
rm:删除文件
路径:/bin/rm
语法:rm -rf 【文件或目录】
-r 删除目录
-f 强制执行(不用确认,只注意)
文件处理命令(touch,ln,cat,more,less,head,tail)
touch: 创建空文件(可以同时创建多个文件,用空格分开,不建议用特殊符号给文件命名,尤其是空格)
路径:/bin/touch
语法:touch 【文件名】
ln:生成链接文件
路径:/bin/ln
语法:ln 【可选项-s】 【源文件】 【目标文件】
-s 创建软连接
注:
硬链接有啥好处?(实时备份)
硬链接不能跨分区
不允许对目录使用硬链接
cat:显示文件内容(tac反向显示)
路径:/bin/cat
语法:cat 【文件名】
-n 显示行号
more:分页显示文件内容 (无法向上翻页
路径:/bin/more
语法:more 【文件名】
空格或者f:进行翻页
回车:换行
Q或q:退出
less:分页显示文件内容,可以向上翻页,可进行搜索
路径:/bin/less
语法:less 【文件名】
Page up/down:进行翻页
上下:换行
Q或q:退出
/内容:可以查找内容,n:下一个
head:显示文件内容,只显示前几行
路径:/bin/head
语法:head -n 行数【文件名】
tail:显示文件内容,只显示末尾几行
路径:/bin/head
语法:tail -n 行数【文件名】
权限管理(chmod, chown, chgrp, umask)
chmod:修改文件与目录权限
路径:/bin/chmod
语法:chmod 【{ugoa} {±=} {rwx}】 【文件或目录】
chmod 【mode=421】 【文件或目录】
-R 递归修改
注:
只有两个人可修改:拥有者,或者root
例子:chmod u+x 【文件】 #表示所有者添加执行权限
chmod g+w,o-r 【文件名】
chmod u=rwx 【文件名】
最常用的还是用421方式
权限的数字表示 r----4 w—2 x-----1
chown:修改 文件/目录 所有者权限
路径:/bin/chown
语法:chown 【用户】 【文件或目录】
前提:root用户才能修改,用户要先存在
chgrp:改变或目录所属组
路径:/bin/chgrp
语法:chown 【用户组】 【文件或目录】
前提:root用户才能修改
umask:缺省权限管理:表明了需要从默认权限中去掉哪些权限来成为最终的默认权限值。
语法:
umask -S:查看默认缺省权限(字母形式
umask : 查看默认缺省权限(数字形式
以上显示的的默认目录的缺省权限,默认文件的缺省权限都比 目录 少x(出于安全考虑)
修改缺省权限方式: umask 值
如 umask 002
则目录的缺省权限为 775,文件则为 664
注:
这种方式并不能永久改变umask值,只是改变了当前会话的umask值;
要想永久改变umask值,则可以修改文件/etc/bashrc,在文件中添加一行 umask 027 。
find命令与locate命令(查找文件/文件夹)
两者都是用于查找文件/文件夹
个人认为,find命令更加灵活,可选项更多,且可以定义范围,效率应该较高。
find:
路径:/bin/find (故使用权限为所有用户)
用法:**find 【范围】【条件】 **
find /etc –name init 表示在/etc下查找文件init
(ps:可模糊搜索,-iname:表示忽略大小写。?: 表示一个字符的通配符。*:表示多个字符的通配符)
其他匹配条件还有:
-size 制定文件大小,+n表示大于n, -n表示小于n,以数据块为单位,512字节
-user:根据所有者查找
-group:根据所属组查找
-type:根据文件类型查找,f等
-inum:根据i节点查找,可以看看硬链接都在哪
-exec/-ok:直接对搜索出来的结果执行下一个命令:-exec rm {} ;
【一定要注意rm与{},{}与\ 之间都需要空格】
-cmin,-amin,-mmin:根据时间属性查找,文件属性被改,文件访问,文件内容被修改
【find /etc –cmin -5 表示查找5分钟内被修改文件属性的文件和目录】
补充:
-a:链接符,同时满足多个条件
-o:连接符,满足其中一个
locate:
路径:/bin/locate
用法:locate 文件名
注:
1、locate是在文件资料库查找,刚刚更新的文件可能需要通过【updatedb】才能找到。
2、使用此命令查找文件时,无需扩展名也能找到【如.log】,而用【 find 范围 -name 文件名 】时,需要加上扩展名才可以找到。
which命令和whereis命令(查找命令+别名/帮助文档)
which:
功能描述:搜索命令所在路径以及别名信息
路径:/bin/which
用法:which 命令
whereis:
功能描述:搜索命令所在路径以及帮助文档所在路径
路径:/bin/whereis
用法:whereis 命令
grep命令(查找文件中某行)
功能描述:在文件中搜索字符串匹配的行并输出
路径:/bin/grep
用法:grep [-i/-v]【指定字符串】【文件名】
ps:
-i:不区分大小写
-v:排查指定字符串
如:
grep mysql /root/install.log
grep –v ^# /etc/inittab 查找不是以#开头的文本,也就是除了注释外的
man命令与help命令(帮助命令)
man:
功能:1、查看命令帮助信息; 2、查看配置文件
(ps:当两者都有时,优先查看命令;如果想查看配置,在man后面加 5;
查看配置文件时,无需加路径,否则会显示内容。同【more /绝对路径】;
如果只想看命令/配置文件的简单描述,可以用【whatis 命令】或者【apropos 配置文件】;
可以先用man date查看时间的格式)
命令所在路径:/usr/bin/man
语法:man 【命令或配置文件】
help:
功能描述:查看shell内置命令的帮助信息。(用which,whereis查看不到路径的命令都是内置命令)
命令所在路径:shell内置命令
执行权限:所有用户
语法:help 【内置命令】
如下的命令需要用help查看,如cd umask等,如help umask,如果用man umask会一下把所有内置命令的描述都查出来
help还可以查看shell编程的语法,比如说help if, help while能查看if和while的语法结构
另:
–help 命令:查看命令选项的含义,用法为 【命令】 --help,如ls --help等
用户添加删除修改密码useradd、userdel、passwd
useradd:添加新用户
命令所在路径:/usr/sbin/useradd
执行权限:root
语法:useradd 【可选项】 用户名
–u 指定用户的UID
–d 家目录 手工指定用户的家目录
–c 用户说明 手工指定用户的说明
–g 初始组名 手工指定用户的初始组,但是不建议改
–G 组名 手工指定用户的附加组,可以加入多个已有的组
–s shell 手工指定用户登录的shell,默认是/bin/bash,改为sbin/nologin表示禁用
上述选项都可以在配置文件 /etc/passwd中找到
ps:创建默认用户时,以下六个配置文件会相应修改/添加:
/etc/passwd, /etc/shadow, /etc/group, /etc/gshadow, /home/username, /var/spool/mail/username,
前面四个都是配置文件,可以用来手工添加用户,但不建议;另外,如果在模板配置文件 /etc/skel 中创建了别的文件,useradd时也会随之创建在用户的家目录中。
useradd时,默认的用户配置,可以在文件 /etc/default/useradd 以及**/etc/login.defs** 中修改。
从上到下依次代表:
用户默认组,但是现在不遵循,会自己创建新的初始组,公有模式和私有模式的linux
用户家目录
密码过期宽限天数(/etc/shadow的第7个字段)
密码失效时间(/etc/shadow的第8个字段)**
默认shell
模板目录
是否创建邮箱
**
如图,可以用于修改用户的密码有效天数等(在/etc/shadow 中也可找到修改)
还有普通用户的最小/大 UID和 GID,(在/etc/passwd 中也可找到修改)
userdel:删除用户
执行权限:root
语法:userdel 【可选项-rf】 用户名
功能描述:删除用户
注:删除用户时最好加上可选项 -rf 才能把家目录等中的用户数据清除干净,否则无法新建相同名字的新用户。
passwd:修改密码、查看状态等
超级用户可以修改任何用户密码,普通用户只能修改自己密码,而且普通用户修改密码时候不能太简单
命令所在路径:/usr/bin/passwd
执行权限:根据可选项来定
语法:passwd 【可选项】 用户名
-S:查看密码状态(包括最后一次修改时间、有效时长等等,就可以不用特地跑到/etc/shadow去看,当然普通用户也只能看自己的。
-l: 暂时锁定用户,如passwd -l tangent,(实际是在/etc/shadow中改了密码字段前面加了!!
-u:解锁用户,如passwd -u tangent
–stdin:可以通过管道符输出的数据作为用户的密码,如echo “123456”| passwd –stdin tangent
修改用户信息 usermod、修改用户密码状态chage、切换用户su、用户组增改删groupadd、groupmod、groupdel、gpasswd
1、usermod:修改用户信息
执行权限:root
语法:usermod 【可选项】 用户名
–u:修改UID;
-c:修改说明;
-G:加入附加组;
-L:锁定用户;
-U:解锁用户,
-g:修改初始组
(ps:这些同样可以在 /etc/passwd && /etc/shadow 中修改)
2、chage :修改用户密码状态
权限:由可选项确定
语法:chage 【可选项】 用户名
–l:列出用户详细密码状态(由非特权用户来确定他们的密码或帐号何时过期。
–d:修改密码最后一次日期
–m:两次修改密码时间间隔
–M:密码有效期
–W:前多少天警告
–I:宽限多少天
-E:帐号到期失效的日期
常见chage用法: chage -d 0 username , 用户一登录就要求修改密码
原理: 设置用户上次修改密码的时间为纪元时间(1970年1月1日),这样会使得该命令立刻过期,而不论密码过期策略的设置。
(ps:这些同样可以在 /etc/shadow 中修改)
3、su:切换用户命令
执行权限:所有用户
语法:su #表示切换为root
su - username #表示切换为某个用户(要注意 - 左右两边都要空格
4、groupadd:添加用户组
执行权限:root
语法: groupadd 【选项】 组名
-g :设置GID
(若不特别设置,即为 /etc/default/groupadd 中设置的默认值;当然,后续也可以在 /etc/group
或者使用命令 groupmod进行修改。)
5、groupmod:修改用户组
执行权限:root
语法:groupmod 【可选项】组名
–g GID: 修改组ID
–n 新组名: 修改组名
6、groupdel:删除组
执行权限:root
语法:groupdel 组名
ps:只能删除没有初始用户的组
7、gpasswd:修改组用户
执行权限 :root
语法:gpasswd【选项】 组名
–a 用户名:把用户加入组(也可以在 /etc/passwd 文件 或 /etc/group
或 使用命令【 usermod -G 组名 用户名 】加入
–d 用户名:把用户从组中删除 (也可以在 /etc/passwd 文件 或 /etc/group 中删除
用户登录信息查看命令who、w
who
命令所在路径:/usr/bin/who
执行权限:所有用户
语法:who
功能描述:查看登录用户信息
同样系统管理员若想知道某一时刻登陆的用户:
格式:·
登录用户 终端类型(tty1-tty7表示本地登录终端,pts/0-X表示远程登录终端) 登录时间(登录IP),linux可以有七个本地登录终端,可以按ctrl+alt+f1-f7进行切换
如果想让列表更详细一些,可以加上选项-HIT等。就可以得到该用户是否愿意接受其他用户信息(-T)还可以显示空闲时间(-I)及标题栏(-H)。如果某个用户愿意接受信息,会在MESG栏中显示一个“+”,这时还可以使用命令MESG给用户发从信息。
w
命令所在路径:/usr/bin/w
执行权限:所有用户
语法:w
功能描述:查看当前登录用户详细信息(个人感觉比who更详细,但只能查看当前登录用户
第一行分别是系统当前时间,系统运行时间,登录用户数,系统运行负载情况:(过去5分钟,10分钟,15分钟的负载情况)【值越小,负载越小
IDLE:表示用户空闲的时间
JCPU:当前用户占用CPU的总时间
PCPU:当前用户当前进程占用CPU的时间
WHAT:当前运行的进程
注:可根据上述信息进行系统的负载检测,可以把长时间空闲的用户或者占用较大内存的用户踢出去
打包、压缩、解压缩命令gzip、gunzip、tar、zip、unzip、bzip2、bunzip2
tar:
功能:可用于打包目录/文件;也可以根据可选项 -z 进行打包并压缩
用法:tar 【-zjcfv】【压缩后的文件名】 【要打包或压缩的目录】
可选项:
-c 打包
-x 解压缩
-f 指定文件名 (必需选项
-z 打包同时压缩。压缩后格式:.tar.gz(选择此项时依旧需要添加 c
-j 打包同时压缩。压缩后格式:.tar.bz2
-v 显示过程
ps:会保留源文件
打包后格式:.tar
压缩后格式:.tar.gz / .tar.bz2
拆包/解压缩:tar -xf【名称】 (两种压缩格式都可,拆包/解压缩都可
gzip:
功能:可用于压缩文件,或者压缩打包后的目录
用法:gzip 【文件名/打包后的目录名】
注:压缩后不保留源文件
压缩后格式:.gz
解压缩:gzip -d 或者gunzip
bzip2:
功能:可用于压缩文件或者压缩打包后的目录
用法:bzip2 选项【-k】 【要压缩的文件】
可选项-k: 保留源文件(默认不保留源文件
打包后格式:.bz2
ps:可以和tar配合完成目录的打包和压缩,得到tar.bz2格式文件;
如要使用tar直接打包并压缩成tar.bz2 格式,将tar的 -z 改成 -j即可
拆包: bunzip2
zip:
功能:压缩文件或目录
用法:1、zip -r 【压缩后的目录名】 【源目录名】
2、zip 【压缩后的文件名】 【源文件名】
压缩后格式: .zip
解压缩:unzip 【文件名】
邮件发送与读取命令write、wall、mail
write:给在线用户发送信息
语法:write【用户名】 (以ctrl+D保存结束
wall:给在线的所有用户发信息
语法:wall【message】 (以ctrl+D保存结束
mail:给用户发邮件 或者 读取邮件 (不要求在线
语法:mail【用户名】 (发邮件,以ctrl+D保存结束
mail (读邮件
注:输入mail直接读看邮件,/var/spool/mail/root下,N表示未读,输入数字并回车直接读取内容,按h键返回邮件列表,d 加数字删除邮件,q键退出
网络配置命令ping、ifconfig、last、lastlog、traceroute、netstat、setup、mount
ping
功能:测试网络连通性
语法:ping 【选项c】 【IP地址】
-c 指定发送次数
ifconfig
功能:解析——链路类型:以太网 mac地址
语法:ifconfig
last
功能:列出目前与过去登入系统的用户信息,是比较重要的日志查询命令。
语法:last
lastlog
功能:列出目前与过去登入系统的用户最后一次登录信息
语法:lastlog
traceroute
功能:显示数据包到主机间的路径。(可以用来测试网络故障节点在哪里
语法:traceroute
范例:traceroute www.baidu
netstat
功能:显示网络相关信息
语法:netstat 【选项】
-t :tcp协议
-u:udp协议
-l :监听
-r :路由表
-n:数字形式显示IP地址和端口号
范例:#netstat –tlun 查看本机监听端口
netstat -an 查看本机所有的网络连接
netstat -rn 查看本机的路由列表
setup(只有redhat特有,其他版本的linux没有)
功能:可视化形式配置网络
执行权限:root
语法:setup
注:Setup配置完是永久生效的
mount
功能描述:挂载设备,进行映射
语法:mount 【-t 文件系统】 【设备文件挂载点】
范例:#mount –t /dev/sr0 /mnt/cdrom
注:挂载光盘实例:先创建挂载点,然后挂载,卸载时需要先跳出挂载目录,不然显示忙
关机重启命令shutdown、halt、poweroff、init 、reboot
shutdown
shutdown执行关机,是**送信号给init,要求它改变运行级别,以此来关机。**关机或重启实际上是运行级别的调整,所以也可以用init直接调整运行级别来进行关机或重启。
语法:shutdown【选项】 时间
选项:-c:取消前一个关机命令
-h:关机后关闭电源
-r: 重启
-f:重新启动时不进行磁盘检测(fsck
-F:重新启动时进行磁盘检测
-k:不是真的关机,只是向登录用户发送警告信息
-n:不用init 关机,而是强行关机(不推荐
-t:延迟关机的时间
-w:并不真的重新开机,只是把重开机的数据写入 /var/log 下的 wtmp 记录文件
范例:shutdown –h now 立刻关机
Shutdown -r now 立刻重启
Shutdown -h 【20:30】
注:关机重启前要把所有服务都断开,关机重启要谨慎小心,还有其他的重启关机命令如reboot等等
halt
用halt命令来关机时,实际调用的是shutdown -h。halt 执行时将杀死应用进程,执行sync系统调用文件系统写操作完成后就会停止内核。
若系统的 runlevel 为 0 或 6 ,则Linux halt命令关闭系统,否则以 shutdown 指令(加上 -h 参数)来取代。没有-p时默认不关闭电源。
使用权限:系统管理者
语法:halt 【可选项】
-n : 在关机前不做将记忆体资料写回硬盘(sync)
-w : 并不会真的关机,只是把记录写到 /var/log/wtmp 档案里
-d : 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d)
-f : 强迫关机,无论runlevel是多少,都不调用 shutdown 这个指令
-i : 在关机之前先把所有网络相关的装置停止
-p : 关机时关闭电源(poweroff)
poweroff
poweroff 会发送一个 ACPI 信号来通知系统关机。关闭计算机并切断电源。
用法:poweroff 【可选项】
(具有halt的前五个可选项且意义相同
-h:关闭操作系统之前将系统中所有的硬件设置为备用模式
init
init是所有进程的祖先,他是Linux系统操作中不可缺少的程序之一。它的进程号始终为1,所以发送TERM信号给init会终止所有的用户进程,守护进程等。
语法:init 【级别号】
0:停机或者关机(千万不能将initdefault设置为0)
1:单用户模式,只root用户进行维护
2:多用户模式,不能使用NFS(Net File System)
3:完全多用户模式(标准的运行级别)
4:安全模式
5:图形化(即图形界面)
6:重启(千万不要把initdefault设置为6)
reboot
reboot的工作过程差不多跟halt一样。不过它是引发主机重启,而halt是关机。它的参数与halt相差不多。
vim编辑器:建立、编辑和显示文本文件
是linux/unix上最常用的文本编辑器;
Vim没有菜单,只有命令;
Vim的工作模式有三种:命令模式,插入模式,编辑模式
进入命令模式:vim 【文件名】
在命令模式下输入i或a或o进入插入模式,按esc回到命令模式
在命令模式下按:冒号进入编辑模式,编辑模式是输入命令如:wq是写入保存退出
小技巧:
注:1、以上命令带:的是在编辑模式使用,否则是在命令模式使用;
2、要是想上述快捷方式永久生效,需要写入配置文件,/root/.vimrc, 或者/home/用户名/.vimrc
sudo使普通用户具有root权限
注:也可使其具有某些权限以及不具有某些权限,此处以获得所以权限为例。
方式1:
使用root用户登录,chmod 777 /etc/sudoers,修改sudoers文件权限;
使用visudo命令,在第98行的 root ALL=(ALL) ALL 下方添加一行 : username ALL=(ALL) ALL
(ps:赋予部分权限时修改后方的ALL为要赋予的命令所在路径)
方式2:
使用root用户登录,chmod 777 /etc/sudoers,修改sudoers文件权限;
使用visudo命令,找到以下两行:
##Allows people in group wheel to run all commands
#%wheel ALL=(ALL)
将第二行的 # 去掉,(wheel其实就是root)
然后使用**【usermod -g root username】**,让该用户属于组(wheel)即可;
要注意!不管使用哪种方式,权限修改完成后,登录普通用户,若要执行超级用户的权限命令,方式1、2分别要在命令前方加入 sudo/ su。
如使用visudo命令:sudo visudo
续:应该还有第3种方式:
修改 /etc/passwd 配置文件,将用户的 UID 改为1。
博主未实测,执行root权限指令是否依旧需要加 su/sudo需自行测验。(博主猜测应该不用,毕竟本质已经改了
rpm、yum、源码包三种安装/卸载方式
软件包分为:(rpm与 源码包编译安装方式都可以使用 -prefix 来指定安装位置)
(1)、源码包:脚本安装包,常以压缩包tar.bz先压缩,注意不要先在外界解压!
缺点:大多数以C语言编写,安装过程容易报错。
优点:能看到源代码; 可以自定义安装功能;卸载简单无残留; 先编译安装更稳定。
(2)、二进制包:(rpm包,系统默认包),已经经过编译的,相当于window的EXE文件,
在redhat上是rpm,在Debian版本上是deb。Rpm包可以在安装光盘中的packages中。
优点:相比源码包安装较简单不易出错。
1、rpm方式(若要使用光盘里的Packages里的软件包需要先将光盘挂载)
安装 rpm -ivh 【包全名】(记得要在目录路径下执行)
选项: -i(install)安装
-v(verbose)显示详细信息
-h(hash)显示进度
--nodeps 不检测依赖性
升级 rpm -Uvh 【包全名】
卸载 rpm -e 【 包名】
选项: -e(erase) 卸载
--nodeps 不检测依赖性
ps:使用rpm安装时可能会出现需要各种依赖而安装失败,此时需要按照系统提示把依赖装好。(rpm或上网下载)
rpm包的查询方法:
查询软件包是否安装 rpm -q 包名
rpm -qa|grep httpd:查询所有httpd相关的包
查询软件包详细信息 rpm –qi 包名 #已安装的软件包
rpm -qip 包全名 #未安装的软件包
查询软件包文件的安装位置 rpm -ql 包名 #查询默认安装位置命令
rpm -qlp 包全名 #查询未安装的软件包默认位置
查询系统文件属于哪个软件包 rpm -qf 系统文件名
查询软件包的依赖性 rpm -qR 包名 # 已安装的软件包
rpm -qRp 包全名 #未安装的软件包,需要在包所在目录下
rpm包的校验和文件提取
包校验:用于检查安装的包修改了哪些文件 rpm -V 已安装的包名
包文件提取 rpm2cpio 包全名 | cpio -idv ./文件绝对路径
该命令中,rpm2cpio 就是将 RPM 包转换为 cpio 格式,再通过 cpio 命令即可从 cpio 文件库中提取出指定文件。包全名包括路径。文件绝对路径应该是相对于包全名的路径。
(用于丢失某个子文件,或者误删除,不能全部重新安装,只需要把文件提取放回去)
ps: 包全名可以通过 rpm -qf /目录 找到
ps: 其中rpm2cpio是将rpm包转换成cpio格式的命令, cpio是提取文件命令
ps:其实cpio除了提取,还能备份。
关于cpio,可以参考这篇文章:https://wwwblogs/life-Meer/p/11407228.html
2、yum在线管理方式
作用:同样用于管理rpm包,比直接用rpm更方便,因为它会自动帮你安装好依赖。
注:要先将虚拟机的网络工作模式设为NAT,详情见上方配置网络讲解
Linux默认配置好的yum源在:/etc/yum.repos.id目录下:
默认使用 CentOS-Base.repo,即可联网的网络yum源;
如果不能联网,可以采用CentOS-Media.repo,表示采用光盘yum源。
默认yum源修改方式:
1、使用剪切命令将其他 yum源改名(如加.bak后缀),失效掉;(不用直接删除哦)
2、修改配置文件中yum源优先级;
注:两种方式都要将要使用的默认yum源中的enable设为1,且设置baseurl =file:///光盘挂载位置。
CentOS-Base.repo文件主要内容:(一共有5个软件池,默认生效的是第一个的[base])
yum管理命令
a) 查询在线所有可用软件包列表:yum list
b) 搜索服务器上所有和关键相关的包:yum search 【关键字】
c) 安装软件包:yum -y install 【包名】 -y表示自动yes
(区别于rpm方式,这里不用全包名哦)
另: yum install XXX --enablerepo=YYY :可以安装指定在YYY下的XXX软件包
d) 升级软件包:yum -y update 【包名】
注:千万别yum -y update 后面不加包名,这样会升级所有软件包,导致服务器全部更新,包括内核。
e) 卸载:yum -y remove 【包名】
卸载时要注意依赖,yum卸载可能会自动卸载掉一些当前软件包的依赖包,这个依赖包可以可能被其他包
依赖,甚至是系统依赖,导致其他软件包不能正常使用,所以尽量不卸载
f) 查询所有可用软件组:yum grouplist
g) 安装/删除软件组:yum install/remove 【软件组名】
(软件组名有空格需要双引号,注意安装时是输入英文不是中文)
3、源码包方式(与rpm不同,无默认安装位置,一般建议放在/usr/local/软件名/)
安装方式:
(1)先下载gcc 和 gcc-c++ (使用yum源很方便
(2)利用winSCP工具或者VMware Tools将软件包复制到linux中
(3)在linux服务器中解压源码包(这一步很重要,如果先解压了再放进Linux,会导致很多文件无可执行权限)
(4)对每个需要的软件包使用以下步骤执行:(过程中缺少什么就安装什么)
./configure --prefix=/安装位置 --with-依赖包=/依赖包安装位置 #用于软件的配置和检查(设置安装位置,建议但是不强制
make #编译
make install #安装
注:上述过程make时候不成功的话,再次make前需要 make clean
ps: rpm包安装的服务可以使用系统服务管理命令(service)来管理:service httpd start
而源码包安装的apache包的启动方法必须是:/绝对路径 start
(因为没有安装到默认的路径中(/etc/rc.d/init.d/))
用户管理配置 /etc/passed、/etc/shadow、/etc/group、etc/gshadow、用户管理的相关文件
1、etc/passwd 用户信息文件(默认权限 644
vim之后如下:
共 7 个字段,分别代表:
用户名称:密码标志:UID(用户ID):GID(组ID):用户说明:家目录:shell
其中:
密码标志:x 表示该用户需要密码才能登陆,否则不需要。
不把密码写在这里,虽然密码进行了sha12 加密,但所有用户都看得到,且存在被暴力破解的可
能性。
UID:用数字标识用户。用户采用用户名记住用户,系统采用数字,所以root不一定是管理员,UID=0的才是
管理员。
( UID=0为超级用户,1-499是系统用户(最好不要修改,否则系统可能崩溃),
500-65535(普通用户),是否是从500开始可以在 /etc/login.defs 中修改)
GID:用户初始组ID。Linux还有附加组概念,用户可以加入多个附加组,但是只能有一个初始组,
用户必须依赖一个初始组才能存在。
家目录位置:对于普通用户来说,默认是**/home/用户名/**,对于超级用户来说,默认是 /root/,
可以修改,但不建议修改。
登录之后的Shell:用户登录的命令解析器,标准shell是**/bin/bash**,表示可以登录;
/sbin/nologin 表示 暂时禁用某个用户,但是千万不要改超级用户的。
2、/etc/shadow 影子文件(默认权限000,only 超级用户可查看
主要用于保存密码相关信息, 9 个字段:
用户名称:加密密码:密码最后一次修改时间:两次密码的修改时间最少间隔:密码的有效期:密码到期之前的警告时间:密码到期之后的宽限天数:账号失效时间:【保留,未使用】
加密密码(SHA512加密):如果是**!!或者*表示没有密码**,
想临时禁用某个用户的密码可以在密码前加 !
密码最后一次修改时间:用时间戳表示,从1970年1月1到现在的天数
ps:
时间戳换算成日期 : date -d “1970-01-01 17928 days”
把日期换算成时间戳: echo$(($(date --date=”2019/02/14” +%s)/86400+1))
两次密码的修改时间间隔:0表示上一次修改完密码后立马可以修改,10表示修改密码10天后才能再修改。
密码的有效期:99999表示该密码有效期为99999天,可以用于强制用户隔多少天修改一次密码。
密码到期之前的警告时间:7 表示 在密码到期前7天,用户每天登陆都会收到要求改密码的信息。
密码到期之后的宽限天数:0或空表示密码过期后立刻失效,-1表示一直提示要用户改密码,密码永远不会
失效。
账号失效时间:用时间戳表示,到这个时间,该账号就失效了,无论密码是否有效
3、组信息文件 /etc/group
四个字段:
组名:组的密码标志:组ID(GID):组中的附加用户(有些用户有附加组)
4、组密码文件 /etc/gshadow
四个字段:
组名:组密码:组管理员用户名:组中的附加用户
5、用户管理的相关文件
(1)用户的家目录:
普通用户:/home/用户名/, 权限为700
超级用户:/root/, 权限为550
ps:把普通用户变成超级用户 ,改/etc/passwd的用户ID,但是家目录不会改,只是改操作权限了
(2)用户的邮箱 /var/spool/mail/用户名/
(3)用户模板目录 /etc/skel/
ps:当useradd一个用户时,这些文件都会默认创建,所有要 userdel 时最好记住要加可选项 -rf ,否则清理不
干净,就要自己把这些一个个找出来删掉,才能再创同名的用户了。
这些文件都是由模板产生的,如果在/etc/skel/创建一些配置文件,在新建用户时候就会默认创建,如下:
Linux大坑专填
1、使用源码包安装时,放进Linux中再解压缩,否则文件的执行权限的会被改变,出现各种bug;
2、源码包安装httpd 时要先建好文件夹并把/apr/lib/aprlib-1.la 和/apr/lib/aprlib-1.so 先放进去;
版权声明:本文标题:Linux操作系统基础知识(一) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1728311807a1153175.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论