Linux之常用命令II
一、VI编辑器
1) 概述
◆ Visual Interface(可视化接口);
◆ 类似Windows中的记事本,比记事本强大;
◆ VIM相对于VI做了哪些提升
-VIM支持多级撤销
-VIM可以跨平台运行
-VIM支持语法高亮
-VIM支持图形界面
2)操作模式(三种)
◆ Command Mode –命令模式
◆ Insert Mode –输入模式
◆ Last Line Mode –底行模式(尾行,末行)
vim命令如果文件存在直接进入编辑模式,如不存在则创建后再进行编辑。
◆ vim命令模式
vim + abc(打开abc文档并将光标定位在最后一行)
vim +5 abc(打开abc文档并将光标定位在第五行)
vim +/kmm abc(打开abc文档并将光标定位在第一次出现kmm的地方,若存在多个kmm,可通过按字母n,进行光标跳转)
vim aa bb cc(同时创建或打开aa bb cc文件)
默认处于aa,输入n,转到bb,输入n,再转到cc
输入N,回到上一个bb文件,再输入N,回到aa,多个文档来回切换
3)底行模式和命令模式常用指令
1、底行模式常用指令
:w(表示文件的修改从内存写入硬盘中即保存修改)
:q(退出当前vim编辑器打开的文件)
:!(强制执行的意思)
:ls(列出当前编辑器中打开的所有文件)
:n(切换到后一个文件)
:N(切换到前一个文件)
:15(光标快速定位到15行)
:/xxx(从光标位置开始向后搜索xxx字符串第一次出现的位置)
:?xxx(从光标位置开始向前搜索xxx字符串第一次出现的位置)
2、命令模式常用指令
h 光标左移
j 光标下移
k 光标上移
l 光标右移
ctrl+f 向下翻页(front)
ctrl+b向上翻页(back)
ctrl+d 向下翻半页(down)
ctrl+u 向上翻半页(up)
dd(删除光标所在行)
o(在光标所在行的下方插入一行并切换到输入模式)
yy(复制光标所在的行)
p(在光标所在行的下方粘贴)
P(在光标所在行的上方粘贴)
二、磁盘管理
1)df查看磁盘分区使用状况
-l仅显示本地磁盘(默认)
-a显示所有文件系统的磁盘使用情况,包含比如/proc/(0字节的分区)
-h以1024进制计算最合适的单位显示磁盘容量
-H以1000进制计算最合适的单位显示磁盘容量
-T显示磁盘分区类型
-t显示指定类型文件系统的磁盘分区
[root@bogon ~]# df -lhT -t ext4(分区类型为ext4)
-x不显示指定类型文件系统的磁盘分区
2)du统计磁盘上的文件大小
-b以byte为单位统计文件
-k以KB为单位统计文件
-m以MB为单位统计文件
-h按照1024进制以最适合的单位统计文件
-H按照1000进制以最合适的单位统计文件
-s指定统计目标
[root@bogon ~]# du –s logs/(指定统计logs文件的大小)
3)硬盘分区和格式化
1、主分区和扩展分区总数不能超过4个
2、扩展分区最多只能有一个
3、 扩展分区不能直接存取数据(需在建立逻辑分区才能存储)
当硬盘空间快用完了,如何更换一块更大的硬盘呢?
这个时候就需要在保留原硬盘的基础上,给服务器添加新的硬盘,在命令行的模式下给硬盘分区、格式化以及挂载。
4)Linux中MBR分区
当添加新硬盘的时候,硬件设备Linux能自动识别但是不能立即使用,必须对硬盘进行分区、格式化、挂载后才能使用,把这个分区挂载到指定的挂载点上。
1、 分区
[root@bogon ~]# fdisk -l(提示新加的硬盘有不可用的分区表)
[root@bogon ~]# fdisk /dev/sdb(通过这个命令可进入分区模式)
Command (m for help):m(一些命令的帮助信息)
Command (m for help):n(添加一个新的分区)
Partition type:
P primary(主分区)
e extended(扩展分区)
Select (default p):p
Partition number (1-4): 1(第一分区)
First cylinder (1-2062, default 1):
using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2062, default 2062):+3000M(为了更加明显加了多大空间,可采用此方法输入方式。输入完之后按回车即添加完毕)
Command (m for help):p(可查看已添加的分区)
Command (m for help):d(删除分区的命令)
Partition number (1-4):2(输入要删除分区的编号,如是扩展分区,那里面的逻辑分区也同样会被删除)
Command (m for help):w(将创建好的分区写入磁盘的分区表中)
5) Linux中GPT分区
分区模式之MBR
-主分区不超过4个
-当个分区容量最大2TB
分区模式之GPT(不适合安装32位系统)
-主分区个数“几乎”没有限制(在GTP的分区表中最多可以支持128个主分区)
-单个分区容量“几乎”没有限制(在GPT的分区模式中,每个分区大小都突破了MBR分区的2TB限制)
[root@bogon ~]# parted(此命令既可以为MBR分区,也可以为GPT分区)
GUN Parted 2.3
using /dev/sda(默认目标分区硬盘是系统第一块硬盘)
(parted)select /dev/sdc(切换到新添加的硬盘符目录下)
using /dev/sdc(此时已经切换成功)
(parted)mklabel gpt/msdocs(目标硬盘指定分区表的类型,然后才能添加分区)
(parted)print //查看分区表信息
(parted)print all //查看所有磁盘分区表信息
◆ 交互模式
(parted)mkpart //交互模式进去分区
Partition name? [ ]? text(指定名称)
File system type? [ext2]? ext4(指定文件系统类型,回车就是默认为ext2)
Start? 1(从第几M开始(从1M开始,达到4K对齐,最佳使用磁盘))
End? 2000M(从第几M结束)
cancel //取消
◆ 命令模式
mkpart [名称] [开始M] [结束M] //命令模式添加分区,名称是不可省略。
例如:mkpart test 2000 3000
rm [分区编号number] //删除分区
unit GB //使用GB为单位分区
quit //退出分区结束
6)Linux中分区的格式化
ls -l /dev/sdb* //查看所以磁盘
两种格式方法:
mkfd.ext3 /dev/sdb1 //对sdb1进行格式化,文件系统为ext3
mkfd -t ext4 /dev/sdb2 //对sdb2进行格式化,文件系统为ext4
**MBR扩展分区不能格式化,只能格式主分区和逻辑分区
**GPT格式后,fdisk命令无法看到文件类型,使用parted工具才能查看
7)Linux中挂载分区
系统默认挂载目录为 /mnt
mkdir -p /mnt/imooc //建立imooc挂载点
挂载:
mount /dev/sdb1 /mnt/imooc //将sdb1分区挂载到imooc目录(临时挂载)
卸载:
umount /mnt/imooc //卸载imooc挂载点分区
永久挂载,需添加以下一步:
vim + /etc/fstab //编辑磁盘配置文件进行永久挂载
/dev/sdb1 /mnt/imooc ext3 defaults //这算加入的内容
[设备名称] [挂载点] [文件系统] defaults 0 0
8)Linux中swap分区
如何为硬盘添加swap交换分区
1、 建立一个普通的Linux分区(主分区或逻辑分区都可以)
2、 修改分区类型的16进制编码
fdisk /dev/sdb(fdisk工具进入 /dev/sdb 磁盘)
Command (m for help):p (查看分区信息)
Command (m for help):t (修改分区编号)
Partition number (1-6):6 (输入分区编号,比如:6)
Hex code(type L to list codes):L (系统提示输入16进制的编号,可通过
L进行查看)
Hex code(type L to list codes):[82] (swap 分区ID为82)
Command (m for help):w //保存退出
3、 格式化交换分区
[root@bogon ~]# mkswap /dev/sdb6 (格式化对应 swap 分区)
4、 启用交换分区
[root@bogon ~]# swapon /dev/sdb6 //启用对应 swap 分区
[root@bogon ~]# free //查看 swap 加载状况
[root@bogon ~]# swapoff /dev/sdb6 //停止对应 swap 分区
三、用户管理
1) 用户和用户组的概念
用户:使用操作系统的人(允许多个用户在同一时间登录同一个操作系统)
用户类别:
a、管理员:0
b、普通用户:1-65535
系统用户:1-499(任何进程都应该以某个用户的身份来运行。例如不管是linux和widows系统启动后,后台都有很多服务在运行,这些服务显然不能以管理员身份运行,权限太大了,到处乱跑,访问任何文件。这类用户限定不能登录系统)
一般用户:500-60000(这类用户可以登录系统获取系统资源)
用户组:具有相同权限的一组用户
◆ /etc/group存储当前操作系统中所有用户组信息
Group: x : 123 :abc,def,xyz
组名称:组密码占位符:组编号:组中用户名列表
1、组内用户列表为空时不代表组内没有用户,当组内用户名只有一个,并且跟组名相同时,可以省略这个用户名,不显示。
2、在Linux系统中,root用户组组号一定为0。
3、组号1到499是系统预留的组编号,一般来说预留给安装在操作系统中的软件或者服务(比如mysql数据库)。
4、用户手动创建的组编号从500开始,
◆ /etc/gshadow 存储当前系统中用户组的密码信息
Group: * : :abc,def,xyz
组名称:组密码:组管理者:组中用户名列表
1、 此文件里的每一行都跟group文件中的信息一一对应
2、 组密码为空、星号(*)或者感叹号的时候,认为组密码为空
3、一般组管理者为空表示组内所有用户都可以管理这个组
◆ /etc/passwd 存储当前系统中所有用户的信息(whatis passwd命令可以查看man passwd有哪些章节,分别是介绍了什么内容)
user:x:123:456:xxxxxxxx:/home/user:/bin/bash
用户名:密码占位符:用户编号(UID):用户组编号(GID):用户注释信息:用户主目录:shell类型
类似图中的shell类型是nologin就是系统用户,不让登录
注:如果用户密码保存在此文件中,大家都可以访问,则密码不安全,因此此处的密码用一个密码占位符X表示,其实密码保存在/etc/shadow(俗称影子口令)中
◆ /etc/shadow 存储当前系统中所有用户的密码信息
user:vf;/Zu8sdf...:::::
用户名: 密码 :::::
1、 此文件里的每一行都跟passwd文件中的信息一一对应
2、图中$是分隔符,1代表加密方法(md5加密),第二个$后面代表的是加密杂质(8位),第三个$后面代表的才是加密的密码
3、像bin、daemon后面显示为*或者两个!!代表此用户是锁定的(不允许登录)。因此要锁定某个用户只需在密码前加两个!!即可
2) 用户和用户组的基本命令
groupadd [组名] //建立用户组
groupmod -n [新组名] [旧组名] //用户组改名
groupmod -g [编号] [组名] //为用户组编号
groupadd -g [编号] [组名] //添加用户组并编号
groupdel [组名] //删除用户组(先删除用户组内的用户)
useradd -g [用户组] [用户名] //创建用户并指定用户组
useradd -d /home/xxx imooc //创建用户并指定个人文件夹
usermod -c [备注信息] [用户名] //为用户名添加备注信息
usermod -l [新用户名] [旧用户名] //用户改名
usermod -d /home/cls cls //为用户更改个人文件夹
usermod -g [新用户组] [当前用户组] //修改用户的用户组
userdel [用户名] //删除用户
userdel -r [用户名] //删除用户及用户个人文件夹
touch /etc/nologin //除root用户,其它用户禁止登录
3) 用户和用户组进阶命令
锁定某个账户:passwd -l 用户名
解锁某个账户:passwd -u 用户名
清除某个账户的密码,实现无密码登录:passwd -d 用户名
◆ 主要组与附属组
用户可以同时属于多个用户组(其中有一个是主要用户组,其余的是附属组)。
◆ 将用户添加到附属组:gpasswd -a 用户名附属组名称
(添加到多个附属组用逗号隔开即可,如果附属组有密码,就要输入组密码)
◆ 将自己切换到附属组:newgrp 附属组名称(注意:这条命令必须是普通用户自己执行,root执行是无效的。组密码在这个时候起作用)
◆ 从附属组中去掉用户:gpasswd -d 用户名附属组名称
创建用户时同时添加主要组和附属组:useradd -g 主要组名称 -G 附属组名称1,附属组名称2,(多个用逗号隔开)
◆ 为用户组添加组密码:gpasswd 组名称
4)用户管理其他命令
id 用户名(显示指定用户信息,包括用户编号、用户名、主要组编号及名称、附属组列表)
su 用户名(切换到其他用户下)
su 后面什么也不接(表示切换到root用户下)
whoami(显示当前登录用户名)
groups 用户名(显示用户所在的所有组,包括主要组和附属组)
chfn 用户名(设置用户资料,依次输入用户资料)
finger 用户名(显示用户详细资料)
Linux之常用命令II的更多相关文章
- Linux GDB常用命令一栏
Linux GDB 常用命令如下: 1.启动和退出gdb (1)启动:gdb ***:显示一段版权说明: (*** 表示可执行程序名) (2)退出:quit.有的时候输入quit后会出现相关提示:类似 ...
- Linux 下常用命令
linux 下常用命令: 1.删除文件命令为 rm 2.创建目录的命令是:mkdir 3.删除目录的命令是rmdir(空目录) 4.切换到root帐号:su 5.查看所有进程:ps -aux 6.杀死 ...
- linux 服务器常用命令整理
linux 服务器常用命令整理 目录 网络分析 - tcpdump \ telnet \ (netstat \ ss \ lsof) \ nload 网络传输 - scp \ rsync \ (rz ...
- 计算机硬件基本知识及Linux的常用命令
------------------1. 计算机硬件基本知识------------------ CPU - 寄存器 - L1/L2/L3 - 内存 - 硬盘 - 互联网下载/其他存储介质传输 寄存器 ...
- 一、Linux概述 二、Linux的安装 三、Linux的常用命令(重点)
一.Linux概述###<1>操作系统 OS,管理和控制 计算机的 硬件和软件资源的 计算机程序. 最基本的系统软件. 是用户和计算机交互的桥梁,是硬件和软件交互的桥梁. 操作系统:she ...
- Linux帮助——常用命令
Linux帮助——常用命令 摘要:本文主要学习了Linux系统中常用的一些命令. uname命令 uname命令可以显示电脑以及操作系统的相关信息. 基本语法 uname [选项] 选项说明 -a:显 ...
- Linux虚拟机常用命令
参考原文链接:(https://blog.csdn.net/fanyun_01/article/details/51083585) 一.Linux虚拟机常用命令 # virsh list //查看已打 ...
- [转帖]Linux systemd 常用命令
Linux systemd 常用命令 https://www.cnblogs.com/tsdxdx/p/7288490.html systemctl hostnamectl timedatectl l ...
- Linux系统管理常用命令
Linux系统管理常用命令 分类: Linux2011-01-10 18:26 1538人阅读 评论(0) 收藏 举报 linuxcommandservicenginxuserunix 目录(?)[+ ...
随机推荐
- Apache JMeter (一)环境的配置和操作
JMeter是Apache组织的开放源代码项目,是一款优秀的开源测试工具,可以做功能测试和性能测试.是每个资深的测试工程师必须掌握的测试工具,熟悉JMeter可以大大提高工作效率. 1.下载Jmete ...
- Day 9 用户管理
1.什么是用户? 能正常登陆系统的都算用户 windows系统和linux系统的用户有什么区别? 本质上没有区别, linux支持多个用户同一时刻登陆系统, 互相之间不影 响 而windows只允许同 ...
- [C++] 重载运算符与类型转换(2)——函数调用运算符和类型转换运算符
1.这两个应该是C++中比较高级的用法了. 一.函数调用运算符 1.重载函数调用运算符(),必须是成员函数,一个类可以定义多个不同版本的调用运算符,相互之间应该在参数数量或者类型上有所区别. ...
- 接口测试返回数据为JSONP格式时如何处理
#需要被处理的jsonp数据 JSONP = "jsonpreturn({'c': 1, 'd': 2});" #处理方法 def jsonp_to_json(JSONP): JS ...
- Hadoop-1,web页面调用报无hbase.jar包【以解决】 2,报java.lang.NoSuchMethodError: org.eclipse.jdt.internal.compiler.CompilationResult.getProblems()[Lorg/eclipse/jdt/core/compiler/IProblem;【以解决】
1:web页面调用报无hbase.jar包 本来java文件就没有问题,但是jsp一调用那个java文件里的方法就报错,报的无hadoop/hbase相关报的问题. 主要解决方法是: 复制hbase/ ...
- 从壹开始学习 NetCore 新篇章 ║ Blog.Core 开发社之招募计划书
宫 哈喽大家好,国庆马上就要来了,在新的第四季度来临之际,祝大家年末能顺顺利利,解决所有的难题.大家可能从我的标题里也能看的出来,老张又要耍花样,搞事情了,近来随着 netcore 3.0 的正式推出 ...
- Jquery Ztree异步加载树
1. 下载jquery的JS文件/ztree的CSS文件和JS文件 https://jquery.com/download/ https://gitee.com/zTree/zTree_v3/tree ...
- IntelliJ IDEA 如何在同一个窗口创建多个项目--超详细教程
一.IntelliJ IDEA与Eclipse的区别 二.在同一个窗口创建多个项目 1.打开IntelliJ IDEA,点击Create New Project 2.Java Enterprise-- ...
- OKR群:为什么说每个程序员都应该有自己的个人OKR
个人OKR OKR,即Object and Key Result,是IT大厂最近争相推广的目标管理工具,例如腾讯.百度和头条(字节跳动). 其实,OKR并不是仅仅只适用于公司和部门内部,我们个人也可以 ...
- PHP将base64数据流转换成图片并保存
Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法.可查看RFC2045-RFC2049,上面有MIME的详细规范. Ba ...