文章目录
1.终端命令格式
command [-options] [parameter]
说明:
command
: 命令名, 相应功能的英文单词或单词的缩写[-options]
: 选项, 可用来对命令进行控制, 也可以省略parameter
: 传给命令的参数, 可以是 零个、一个 或者 多个
2.关机和重启系统命令
关机和重启操作只有管理员可以执行!
-
关机命令
shutdown -h now
立刻马上关机
shutdown -h 60
60分钟(1个小时)后关闭
说明:如果要取消,在另一终端使用shutdown -c 或者直接Ctrl+c -
重启命令
reboot
重启系统
shutdown -r now
立刻马上重启
shutdown -r 30
30分钟后重启系统
3.文件常用命令1
3.1 常用Linux命令基本使用
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
1 | pwd | print working derectory | 查看当前所在文件夹 |
2 | cd [目录名] | change directory | 切换文件夹 |
3 | touch [文件名] | touch | 如果文件不存在, 新建文件 |
4 | clear | clear | 清屏 |
3.2 列出文件夹内容(ls)
常见选项
-a all,查看目录下的所有文件,包括隐藏文件(以.开头的文件为隐藏文件)
-l 长列表显示
-h human,以人性化方式显示出来
-t 按修改时间排序
-r 逆序排列
-S 按文件的大小排序
-R 递归列出目录中的内容
3.3 创建文件夹的命令(mkdir)
常见选项
-p 级联创建
[root@localhost ~] mkdir /test/ 在根下创建test目录
[root@localhost ~] mkdir ./test/ 在当前目录下创建test目录
[root@localhost ~] mkdir test1 test2 test3 在当前目录下创建test1,2,3文件
[root@localhost ~] mkdir test{1,2,3} 等同于上面
[root@localhost ~] mkdir -p /test/dsj/centos 创建多级目录
说明:
1.如果创建的目录的上一级目录不存在,就需要加-p参数;-p在前面和后面都可以
2.新建目录的名称,不能与当前目录中,已有的目录或文件同名
3.4 删除文件命令(rm)
常用选项
-r 递归地删除目录下的内容, 一般用于删除目录
-f 直接删除,不提示
[root@localhost tmp] rm file1 删除当前目录下的file1文件,有提示,
[root@localhost tmp] rm -r dir1 删除当前目录下的dir1目录,有提示
[root@localhost tmp] rm -rf /root/file1 强制删除/root/file1文件,不提示,直接删
[root@localhost tmp] rm -rf /root/file* 结合通配符 * ? [abc] [a-z]
3.5 移动或重命名文件(mv)
移动文件用法(不同路径下),注意点:文件的路径不一样
mv 需要移动的文件 移动到新的路径下
重命名用法(相同路径下),注意点:旧文件和新文件的路径一样
mv 原来文件的名字 新文件的名字
mv /root/file1 /tmp 路径不一样,移动/root/file1文件到/tmp目录下
mv /tmp/file1 /tmp/test1 路径一样,将/tmp目录下的file1文件重命名成test1
3.6 复制/拷贝文件(cp)
常用选项:
-a 递归拷贝文件,包括目录及文件属性信息
用法:
cp 选项 需要拷贝的文件 拷贝到哪里去
cp /root/file1 /home 拷贝/root/下的file1文件到/home目录下
cp -a /home/czxy /root 拷贝/home/czxy目录到/root目录下(包含属性信息)
cp /root/file1 /tmp/test1 拷贝文件并且重命名
3.7 软连接(ln)
常用选项:
-s 软链接(符号链接)
ln -s 目标文件绝对路径 快捷方式路径
ln -s /etc/sysconfig/network-scripts/ /network
注意:删除软连接不影响源文件
4.文件常用命令2
4.1 查看文件内容
-
head
命令:默认查看文件前10行,head -15
查看文件前15行内容 -
tail
命令:默认查看文件后10行,tail -15
查看文件后15行内容,tail -f
表示动态查看 -
more
和less
命令:一般看大文件,q退出查看,可以搜索 -
cat
命令:一般查看小文件,从第一行到最后一行列出来cat -n
显示行号 -
ldd
命令:一般用来查看二进制的命令文件
[root@localhost tmp] cat -n /etc/passwd 查看/etc/passwd文件内容,并打印行号
[root@localhost tmp] head -5 /etc/passwd 查看/etc/passwd文件的前5行内容
[root@localhost tmp] tail -5 /etc/passwd 查看/etc/passwd文件的后5行内容
[root@localhost tmp] more /var/log/messages 有 进度条,无法 上下移动
[root@localhost tmp] less /var/log/messages 无 进度条,可以 上下移动
[root@localhost tmp] ldd /bin/mkdir 查看mkdir命令文件(二进制)的内容
4.2 echo命令
常见选项:
-n:不输出最后的换行符“\n”
-e:解释转义字符(字符串中出现\n、\t等特殊字符,则特别加以处理,而不会将它当成一般文字输出)
[root@localhost ~] echo hello world 打印hello world
hello world
[root@localhost ~] echo hello > file1 将hello重定向到file1文件中
[root@localhost ~] cat file1 查看文件内容
hello
[root@localhost ~] echo helloworld > file1 将helloworld追加到file1文件中
[root@localhost ~] cat file1 查看文件内容
hello
helloworld
总结:
1. echo表示打印字符串,默认将字符串送往标准输出;默认会打印一个换行符
2. echo可以结合 > 或者 >> 符号来使用,进行文件的创建或内容追加。
常见控制字符:
\t 表示制表符
\n 表示换行符
[root@localhost ~] echo -e 'date\nuuu' > file2 //-e表示将\n解释为换行符
[root@localhost ~] cat file2
date
uuu
4.3 过滤查看(grep)
grep 关键字 文件名
常见选项:
-n 显示匹配行和行号
-i 搜索时候忽略大小写
-v 显示不包含关键字的所有行
^a 行首,搜索以a开头的行
k$ 行尾,搜索以k结束的行
4.4 文件查找(find)
find 查找路径 选项 关键字
常见选项 | 含义 | 备注 |
---|---|---|
-name | 按照文件名查找文件 | |
-iname | 按照文件名忽略大小写查找 | |
-size | 按照文件大小来查找 | +1M 大于1M -1M 小于1M 1M 等于1M |
-type | 按照文件类型来查找 | |
-mtime | 按文件修改时间来查找文件 | -n指n天以内,+n指n天以前 |
find /export/ -name 'abc.txt' #指定全目录
find -name 'abc.txt' #当前目录下搜索,可以省略不写查找路径
find /export/ -name "*.txt" #搜索指定目录下,所有以`.txt` 为扩展名的文件
4.5 帮助手册(help)
help命令:知道该命令的含义,相关参数不知道可以使用help
内部命令求帮助:help 命令
外部命令求帮助:命令 --help
cp --help
help cd
4.6 && 和 ||
命令1 && 命令2 #如果命令1执行成功了,才执行命令2
mkdir -p 正确目录 && echo "创建目录成功" #如果创建目录成功, 就执行echo输出
命令1 || 命令2 #如果命令1执行失败了,才执行命令2
mkdir 错误目录 || echo "创建目录失败" #如果创建目录失败, 就执行echo输出
4.7 文件打包/压缩
- 常见的压缩与解压缩工具
压缩工具 | 说明 | 解压缩工具 |
---|---|---|
zip | 兼容类unix与windows,可以压缩多个文件或目录 | unzip |
gzip | 压缩单个文件,压缩率相对低,cpu开销相对低 | gunzip |
bzip2 | 压缩单个文件,压缩率相对高,cpu开销相对高 | bunzip2 |
tar
命令:可以将多个文件打包成一个并且压缩,不会改变文件的属性
用法:tar
选项 打包后的文件 需要打包的文件
常用选项 | 含义 |
---|---|
-c | 创建tar包(打包) |
-z | 使用gzip压缩和解压缩 |
-j | 调用bzip2工具压缩 |
-v | 显示详细信息,像 ‘唐僧’ 一样报告进度 |
-f | 指定包名, f后面一定是 .tar 文件 |
-x | 解包 |
-C | 默认保存到当前目录, 通过-C 更改解压目录, 注意: 解压目录必须存在 |
-r | 往tar包里追加文件 |
注意事项:
注意说明:
1. 以上选项前面的横杠"-"可以省略
2. 如果已经将文件压缩打包,那么就不能追加;如果只是打包就可以追加。
3. 参数顺序需要注意,最好把-f参数放到所有参数后面。
4. 当出现以下提示时,加一个-P参数解决。
tar: Removing leading `/' from member names
tar
打包命令格式
# 将 一系列文件 打包成 一个大文件
tar -cvf 打包名.tar 被打包的目录
tar -cvf 打包名.tar 被打包的文件1 被打包的文件2 被打包的文件3
tar
解包命令格式
# 将一个打包后的 分解成 一系列小文件, 分解位置为 当前目录
tar -xvf 打包名.tar
# 将一个打包后的 分解成 一系列小文件, 分解位置为 指定目录
tar -xvf 打包名.tar -C 解包路径位置
gzip
格式压缩和解压缩
# 压缩文件
tar -zcvf 打包压缩文件名.tar.gz 被压缩的文件/目录
# 解压缩文件
tar -zxvf 打包文件.tar.gz
# 解压缩到指定路径
tar -zxvf 打包文件.tar.gz -C 目录路径
- 小结:关键命令
打包并压缩: tar -zcvf 打包之后的文件名.tar.gz 被打包压缩的目录或文件名
解包解压缩: tar -zxvf 打包之后的文件名.tar.gz [-C 指定解包位置]
5. 文件编辑工具(vi/vim)
- 编辑模式
命令 | 功能 |
---|---|
i | 在光标所在字符前开始插入 |
a | 在光标所在字符后开始插入 |
o | 在光标所在行的下面另起一行插入 |
O | 在光标所在行的上面另起一行插入 |
- 命令行模式
命令 | 含义 | 备注 |
---|---|---|
yy | 复制光标所在行 | 3yy表示复制3行 |
dd | 剪切光标所在行,可以理解为删除 | 3dd表示剪切3行(包括光标所在行) |
p(小写p) | 光标所在行后面粘贴 | 大写P光标所在行前面粘贴 |
gg | 光标快速跳到文件首行,并且定位到首字符 | 3gg表示快速跳到文件第3行行首字符 |
G | 光标快速跳到文件尾行,并且定位到首字符 | 3G表示快速跳到文件第3行行首字符 |
u | 撤销操作 | ctrl+r 取消撤销 |
^ | 跳转到行首 | 第一个不是空白字符的位置 |
$ | 跳转到行尾 | |
w | 向后移动一个单词 | |
b | 向前移动一个单词 | |
x(小写) | 删除光标所在字符后面一个字符 | 3x删除3个字符 |
v | 从光标位置开始按照正常模式选择文本 | |
V | 选中光标经过的完整行 | |
Ctrl + v | 垂直方向选中文本 | |
dG | 剪切光标所在行以及下面所有行 | |
dgg | 剪切光标所在行以及上面所有行 |
提示: 可视模式下,可以和移动命令连用,例如 ggVG 能够 选中所有的内容,按 ESC 可以放弃选中, 返回到命令模式
-
末行模式命令
命令 功能 备注 w
保存文件 q
退出不保存 q!
强行退出,不保存退出 wq
保存且退出(末行模式) x等同效果 ZZ
保存并退出(命令模式) -
末行模式查找与替换
搜索摸索 :/root n往下匹配;N往上匹配 替换模式 :%s/旧文本/新文本/g :%s/root/ROOT/g 全文搜索,替换每一行所有匹配的关键字 :%s/root/ROOT/gc 交互式替换 1.y - yes 替换 2.n - no 不替换 3.a - all 替换所有 4.q - quit 退出替换 注意:遇到/替换问题 :%s/\/sbin\/nologin/\/bin\/bash/ 方法一:可以使用\转义符 :%s#/sbin/nologin#/bin/bash#g 方法二:更换分隔符,比较清晰 :7s/shutdown/SHUTDOWN/g 只替换第7行的内容 取消高亮 :noh (no highlight)
6. 组管理
本质: 给 同一类型用户 分配权限
命令 | 作用 |
---|---|
groupadd 组名 | -g 指定组的GID(编号),默认唯一 |
groupdel 组名 | 删除组,不能删除属于其他用户的主组 |
gpasswd | 组成员管理 |
cat /etc/group | 组信息保存在 /etc/group 文件中 |
gpasswd [选项] 组名
常见选项:
-a 添加用户到组
-d 从组中删除成员
-A 指定管理员
-M 指定组成员,可以批量添加用户到组中
-r 删除密码
1. gpasswd 组名 #给组设置密码
2. 将user01添加到sysadmin组里
方法一:
gpasswd -a user01 sysadmin
方法二:-M选项:表示覆盖设置组成员(会覆盖原来的成员列表)
gpasswd -M user02,user03 sysadmin #设置sysadmin组成员为user02,user03
3. 将user03用户从组sysadmin里移除
gpasswd -d user03 sysadmin
- 在实际应用中, 可以预先针对 组 设置好权限, 然后 将不同的用户添加到对应的组中, 从而不用依次为每一个用户设置权限
7. 用户管理
命令 | 作用 | 说明 |
---|---|---|
useradd [选项] 组 新建用户名 | 添加新用户 | -g 指定用户所在的组, 否则会建立一个和同名的组 |
passwd 用户名 | 设置用户密码 | 给指定的用户(管理员可以给任何人设置任何密码) |
userdel [选项] 用户名 | 删除用户 | -r 选项会自动删除用户家目录,-f 强制删除正在登录的用户 |
cat /etc/passwd | grep 用户名 | 确认用户信息 | 用户信息保存在 /etc/passwd |
usermod -md 新家 用户名 | 修改用户信息 | |
id [用户名] | 查看用户信息 |
1. 用户信息保存文件/etc/passwd
了解相关配置文件内容,可以通过求man文档解决,即 man 5 passwd
zhangsan:x:500:500::/home/zhangsan:/bin/bash
以冒号:分割为7列,如下:
account --> stu1 用户名称
password --> x 密码,将密码单独存放在另外一个文件中
UID --> 501 用户ID
GID --> 501 组ID
GECOS --> 用户自定义,描述说明
directory --> /home/stu1 用户的家目录
shell --> /bin/bash用户的默认shell,其中/sbin/nologin表示非交互,不能登录系统
- 给指定用户授予管理员权限
vim /etc/sudoers #使用root修改
# 默认存在: root用户 具备所有的权限
root ALL=(ALL) ALL
# 授予 zhangsan 用户 所有的权限
zhangsan ALL=(ALL) ALL
# 使用临时管理员权限,创建用户
[zhangsan@node01 ~] sudo useradd lisi
8. 权限管理
命令 | 作用 | 说明 |
---|---|---|
chmod [选项] 模式 文件名 | 修改文件权限 | -R 递归更改目录和目录里文件的权限 |
chown 用户名:组名 文件名 | 修改用户属主/属组 | -R 递归更改目录和目录里文件的权限 |
chmod:字母和数字对应关系:
r——4 w——2 x——1 -——0
rw- r-- r-- 用数字表示就是644
rwx rwx rwx 用数字表示就是777
rwx r-x r-x 用数字表示就是755
chown:单个修改的简写
只修改文件的属主:chown 用户名: 文件名
只修改文件的属组:chown :组名 文件名
9. 系统日期/磁盘/进程命令
-
日期/日历
命令 作用 date
查看系统时间(默认) date +"%Y-%m-%d %H:%M:%S"
查看系统时间(指定格式), date +"%F %T"
简写date -s "2020-09-15 16:04:55"
设置系统时间 cal
查看当前月的日历 cal 年份
查看年份的日历 -
磁盘信息
命令 作用 df -h
disk free 显示磁盘剩余空间 du -h [目录名]
disk usage 显示目录下的目录大小 -
进程/CPU/内存
命令 作用 ps aux
process status 查看进程的详细情况 top
动态显示运行中进程并且排序,按1查看多个CPU free -h
查看内存使用率 kill [-9] 进程代号
终止指定代号的进程 -9 表示强行终止
10. 添加硬盘
命令 | 含义 |
---|---|
lsblk -f | 查看所有设备的挂载情况,老师不离开 的首字母 |
fdisk -l | 查看硬盘及分区信息 |
fdisk 硬盘路径 | 开始指定硬盘分区 |
mkfs -t ext4 分区之后的路径 | 格式化指定的硬盘 |
mount 设备名称 挂载目录 | 建立设备分区和系统目录的映射关系 |
umount 设备名称 或 umount 挂载目录 | 取消设备分区和系统目录的映射关系 |
-
增加硬盘,模拟将买的硬盘插入到服务器中
第一步:选中目标虚拟机右键点击设置
第二步:点击下方添加按钮,选择硬盘
第三步:一路下一步,唯一更改的就是选择好需要添加的硬盘大小我们这里选择10G
第四步:点击右下角确定,注意:添加硬盘需要重启系统reboot
-
硬盘分区,使用
lsbkl -f
命令查看到多了一个sdb硬盘,接下来我们开始进行硬盘分区- 输入
fdisk /dev/sdb
开始分区,输入m
, 进入帮助目录列表 - 输入
n
, 新增分区, 输入p
, 开始分区 - 我们目标是把10G硬盘分2个区,各一半的空间,输入1代表第一个分区,之后是需要分配磁盘大小的区间
- 输入
n
新增分区, 输入p
, 开始分区 - 此时输入2代表第二个分区,空间范围直接回车使用默认值,默认值就是全部分配,之后输入
w
写入并退出,如果分区手误,可以到目录按d
删除重新分区
lsblk -f
查看是否成功
- 输入
-
格式化分区,
mkfs -t ext4 /dev/sdb1
其中-t
代表指定文件类型,将sdb1和sdb2都格式化 -
临时挂载:重启linux系统后,不会挂载
mkdir -p /mnt/disk1 #创建目录 mount /dev/sdb1 /mnt/disk1 #建立设备sdb1和系统disk1的映射关系 mount /dev/sdb2 /mnt/disk2 #建立设备sdb2和系统disk2的映射关系 lsblk -f #查看是否挂载成功 注意: 重启后挂载失效
-
自动挂载:重启linux系统后,会自动挂载
修改vim /etc/fstab
,之后重启系统,最后lsdbk -f
或者df -h
查看是否成功
注意:如果删掉硬盘后,/etc/fstab
没有删除UUID重启会报错
输入密码进入系统发现无法修改/etc/fstab
使用mount -o remount rw /
重新挂载
就能编辑/etc/fstab
删掉对应报错的UUID重启即可
11. 挂载光驱ISO
创建目录放置文件 mkdir -p /mnt/cdrom
- 第一种方式挂载(仅限于VM,服务器有光驱):
挂载镜像文件mount /dev/sr0 /mnt/cdrom
- 第二种方式挂载(上传ISO文件)
mount -o loop /opt/CentOS-6.9-x86_64-bin-DVD1.iso /mnt/cdrom
- 如果需要自动挂载参照上面硬盘方式
/etc/fstab
写入即可
/opt/CentOS-6.9-x86_64-bin-DVD1.iso /mnt/cdrom iso9660 defaults,loop 1 2
12. rpm/yum软件包管理
12.1 rpm安装卸载查看
-
rpm包的安装
rpm -ivh rpm包的全路径
参数 英文 含义 -i
install 安装 -v
verbose 打印提示信息 -h
hase 显示安装进度 -
rpm包的卸载
命令 英文 含义 rpm -e 软件包名称
erase 清除 卸载rpm软件包 rpm -e --nodeps 软件包名称
Don’t check dependencies 卸载前 跳过 依赖检查 -
rpm包查询命令
rpm -qa | grep 软件包名字 #查看已经安装的所有rpm包,grep筛选 rpm -ql 软件包名 #查看已经安装的软件的文件列表 rpm -qi 软件包名 #查看已经安装软件的详细信息 rpm -qf 文件的全路径 #查看指定文件来自哪个rpm包
-
rpm包的升级rpm包
rpm -Uvh 软件包 或者 rpm -Fvh 软件包 选项说明: -v:输出详细信息 -h:打印散列标记,一般和-v一起使用 -U:升级软件包,如果该软件包没安装,会自动帮你安装 -F:升级软件包,如果该软件包没安装,不会自动帮你安装
12.2 yum安装卸载
注意: 必须联网
命令 | 含义 |
---|---|
yum list | grep 需要的软件名 | 查询服务器是否有需要安装的软件 |
yum -y install 需要的软件包 | 下载安装 |
yum -y remove 需要卸载的软件包 | 卸载 |
yum repolist | 列出设定yum源信息 |
yum clean all | 清除yum缓存信息 |
13. 本地资源库/局域网yum配置
前提:本地需要有一个系统的ISO镜像文件 或 光盘,并且挂载到系统的某一目录(/mnt/cdrom)参考之前光盘
13.1 本地yum配置
cd /etc/yum.repos.d/ 切换到保存yum信息的目录
mkdir old 创建备份文件夹
mv *.repo old/ 将目录中的所有.repo文件移动到old中
cp old/CentOS-Media.repo ./ 拷贝Media到当前本地修改这个文件即可
vi CentOS-Media.repo
修改后的内容为:
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom 这个是yum查找的地址 (关键)
gpgcheck=0 GPG验证是否开启
enabled=1 是否开启 (关键)
注意点:文件名可以自定义但是要以.repo
结尾,系统自动到/etc/yum.repos.d找以.repo结尾的文件
最后进行断网测试:
yum clean all 清空缓存时可以看看Cleaning repos: c6-media这行是否是你写的repos文件
yum -y remove tree 卸载 tree 软件
yum -y install tree 重新安装 tree 观察是否成功
13.2 局域网yum配置
- 安装httpd:
yum -y install httpd
- 启动 httpd 服务:
service httpd start
- 测试:
http://192.168.10.10:80
自己的地址 - 发现无法访问因为Linux的防火墙禁止他人访问自己的80端口,为了方便内网中集群间机器的相互操作, 通常会关闭防火墙:
service iptables stop
- 重启之后不要开防火墙:
chkconfig iptables off
- 之后有两种方式第一种直接拷贝,第二种创建软连接,访问地址看到内容为成功
第一种方式:cp -a /mnt/cdrom/* /var/www/html/cdrom
第二种方式:ln -s /mnt/cdrom/ /var/www/html/cdrom
- 开启第二台虚拟机,方式和本地一样,唯一区别就是修改baseurl地址为
http://192.168.10.11/cdrom/
第二台虚拟机.repo修改后的内容为:
[c6-media]
name=CentOS-$releasever - Media
baseurl=http://192.168.10.11/cdrom/ (关键)注意和配置本地是不一样的
gpgcheck=0
enabled=1
最后进行断网测试:
yum clean all 清空缓存时可以看看Cleaning repos: c6-media这行是否是你写的repos文件
yum -y remove tree 卸载 tree 软件
yum -y install tree 重新安装 tree 观察是否成功
- 验证是否从局域网下载:第一台
service httpd stop
关闭httpd,第二台yum clean all
清除缓存,之后yum -y install tree
安装 ,会发现报错可以查看到地址是局域网地址,至此完成