Linux常用命令
1.Rocky Linux 9安装
rockylinux.org → Rocky Linux 9 → Minimal ISO
2 配置主机名
2.1 修改主机名称
# 查看主机名
hostname
vim /ect/hostname
修改里面的值
# 需要重启服务器
# 查看主机相关信息
hostnamectl
# 修改主机名为111
hostnamectl set-hostname111
# 不需要重启服务器
2.2 修改hosts映射文件
1)修改linux的主机映射文件(hosts文件)
vim /etc/hosts
根据localhost的例子进行配置,左边是ip地址,右边是主机名称
客户端Windows修改hosts文件
C:\Windows\System32\drivers\etc\hosts
3 Linux中的进程和服务
计算机中,一个正在执行的程序或命令,被叫做"进程"(process)
启动之后一直存在、常驻内存的进程,一般被称做“服务”(service)
6.1 service 服务管理 (CentOS 6 版本,了解就行不用记)
ls /usr/sbin/ | grep service
1) 基本语法
service 服务名(network) start | stop | restart | status
2)经验技巧
查看服务的方法:ls /etc/init.d/
7 systemctl CentOS 7 版本-重点掌握)
1) 基本语法
systemctl start | stop | restart | status 服务名(firewalld)
2) 经验技巧
查看服务的方法:ls - /usr/lib/systemd/system
例子(关闭网络)
1. systemctl stop NetworkManager(区分大小写)
- ip addr flush dev eth0 # 清除IP(把eth0换成你的网卡名)
(ip addr show, 网卡名通常是:ens33、ens160、eth0、enp0s3 等
打开网络
查看所有已加载的服务
systemctl list-units --type=service
systemctl stop 服务名只是临时关闭,重启后会恢复原样;而 systemctl disable 服务名才是永久禁用。
查看当前运行级别:
systemctl get-default
修改当前运行级别:
system set-default TARGET.target (这里的TARGET取 multi-user 或者graphical)
另一种方式: init3 , init5
这部分了解即可,在企业级服务器环境中,"运行级别"(或 systemd 下的 "target")一旦设定,几乎永远不会被手动更改
服务管理:启动/停止/重启服务,systemctl start/stop/restart <服务名>
shutdown(多种参数)
shutdown(默认1分钟后关机)
shutdown -c
shutdown now
关机前要做sync操作,把缓冲区里的数据立刻写入硬盘
8.Shell常用命令
Pwd(print working directory 打印工作目录): 显示当前绝对路径
ls: list 列出目录内容
ls - a(全部的文件,连同隐藏文档(开头为.的文件) 一起)
ls - l(长数据串列出,包含文件的属性与权限等等数据(常用)等价于“ll”)
cd 切换目录(Change Directory)
cd ~ 或 cd 回到自己的家目录
cd - 回到上一次所在目录(应用场景:如果两个文件夹路径差很远,可以反复横跳)
cd.. 回到当前目录的上一级目录
创建删除目录
mkdir创建一个新的目录
mkdir a
# 一次创建多级
mkdir -p a/b/c
# 删除目录
rmdir a
# 删除多级目录
rmdir a/b/c (只删除c目录)
rm -rf a/b/c (递归目录全删,命令是rm,不是rmdir)
创建文件
touch 文件名称 (创建空文件)
复制
cp复制文件或目录
cp [选项] source dest
例子: cp file1 /home/haojie/
cp testfile01 ../file1
(cp后面参数1是源文件,参数2是路径,如果参数2最后的文件名和参数1最后的文件名一样,就是覆盖操作)
# 递归复制整个文件夹
cp -r c /home/haojie/桌面
# 强制删除当前目录下所有的文件夹和文件
rm -rf ./*
# mv 剪切
#建立一个多级目录
[haojie@server01 ~]$ mkdir project project/src project/src/lib
#将这个多级目录移动到/tmp目录下
[haojie@server01 ~]$ sudo mv project /tmp/
cat 查看文件内容
cat [选项] 要查看的文件
cat -n 文件名 显示所有行的行号,包括空行
more 文件内容分屏查看器
more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容,more指令中内置若干快捷键
操作 功能说
空白键(space) 代表向下翻一页
Enter 代表向下翻一行
q 立刻离开 more
ctrl + F 向下滚动一屏
ctrl + B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行行号
less 分屏显示文件内容 (查看大文件)
分屏查看文件内容,功能与more指令类似,但是比more指令更强大,支持各种显示终端。less指令在显示文件内容时,不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
less 文件名
操作 功能说明
g 跳到开头
G 跳到结尾
空白键 向下翻动一页
pagedown 向下翻动一页
pageup 向上翻动一页
Enter 向下翻动一行
/字符串 向下搜寻【字符串】的功能:n:向下查找 N:向上查找
?字符串 向上搜寻【字符串】的功能:n 向上查找 N 向下查找
q 离开less这个程序
Echo: 类似C#的Console.WriteLine();
echo "wlm sldg"
echo -e "wlm\n sldg" (-e表示支持后面参数里面的内容转义)
>>(追加)和>(覆盖)
echo "333333我会好好过" >>15页的小说.txt
日常工作典型频率排序
操作 频率 典型场景
>> 追加 ★★★★★ 持续记录日志、收集结果、合并文件
| 管道 ★★★★★ 组合命令,不直接写文件
> 覆盖 ★★★☆☆ 生成报告、初始化配置文件、清空文件
2> 重定向错误 ★★★☆☆ 只收集错误信息,忽略正常输出
&> 全重定向 ★★☆☆☆ 把正常和错误都扔进文件(或 /dev/null)
tail和head
head用于显示文件的开头部门内容,默认情况下 head指令显示文件的前10行内容。
1)基本语法
head 文件名 查看文件头10行内容
head -n 5 文件 查看文件头5行内容
[haojie@server01 ~]$ head -n 2 data.txt
8.2.15 tail 输出文件尾部
tail -n 5 文件名
tail -f 文件
按Ctrl + S 可以暂停监听
按Ctrl + Q 可以继续监听
使用频率对比
命令 频率 典型场景
tail -f ★★★★★ 实时追踪日志(最常用)
tail -n ★★★★★ 看最新几条日志、检查命令输出末尾
head -n ★★★★☆ 看文件格式、表头、前几行样本
tail -f | grep ★★★★☆ 实时过滤关键日志
结论:tail 比 head 更常用,因为排查问题总是关心"最新发生了什么"。
ln 软连接
软连接(link)也称为符号链接,类似于windows里的快捷方式,主要存放了目标文件的路径字符串
创建软连接
[root@lys logs]# ln -s [源路径] “Name”
[root@lys logs]# ln -s web.log web
[root@lys logs]# ll
-rw-r--r-- 1 root root 115498 May 13 11:04 gateway.log
lrwxrwxrwx 1 root root 7 May 16 00:36 web -> web.log # 软连接的前缀为l
-rw-r--r-- 1 root root 8048944 May 16 00:36 web.log
直接进入软连接对应的地址
cd -P 软连接
删除软连接: rm -rf 软连接名,而不是rm -rf 软连接名/,否则会把软链接对应的真实目录下的内容删除
它是一个存放着地址的文件
history 查看已经执行过历史命令
# 查看历史命令
history
# 情况历史命令
history -c
Date 日期
date +%Y%m%d%H%M%S (date后面需要+)
用户管理
(1) 查看当前有哪些用户
root账号的目录就是 /root
普通用户的目录是 /home/XXX, 所以看有哪些普通用户,可以用下面的方式
[root@server01 /]# cd /home
[root@server01 home]# ls
标准查询方法
[root@server01 ~]# cat /etc/passwd
(2)创建新用户
[root@server01 /]# useradd xiaojia
(3)用户设置密码
[root@server01 home]# passwd xiaojia
(4)查看当前用户是否存在
[root@server01 ~]# id xiaojia
(5)切换用户
[root@server01 ~]# su haojie
(6) sudo给普通用户root权限
ls /etc/ | grep sudo
cd /etc/
vim sudoers
添加一行:haojie ALL=(ALL) ALL
用户组管理
每创建一个新用户,系统都会自动创建一个与其同名的组
Wheel: 类似管理员组
groupmod -n mengbao xiaojia (将组名xiaojia改成mengbao)
find 查找文件或目录
find 指令将从指定目录向下递归地遍历其各个子目录
find [搜索范围] [选项]
选项 功能
-name 查询方式 按照指定文件名查找模式查找文件
-user 用户名 查找属于指定用户名所有文件
-size 文件大小 按照指定文件大小查找文件,单位为 b-块 (512字节) c- 字节 w-字 2字节 k - 千字节 M -兆字节 G-吉字节
# 按名称查找
find -name nginx.conf
# 按路径加名称查找
find /root -name nginx.conf
# 按照后缀查找
# "*"匹配多个字段,"?"匹配单个字符
find -name "*.txt"
# 按用户查找
find -user lys
# 按大小查找 +大于 -小于
find -size +1M
find -size - 1M
locate 快速定位文件路径
local指令利用事先建立的系统中所有文件名称及路径的locate数据库事先快速定位给定的文件,无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate数据库。
locate 搜索文件
由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库
updatedb
locate nginx.conf
# 查看Linux里的命令所在位置
which ls locate
whereis locate
grep过滤查找及"|"管道符
管道符,|,表示将前一个命令的处理结果输出传递给后面的命令处理
grep 选项 查找内容 源文件
-n 显示匹配行及行号
# 显示location在nginx.conf的哪几行
grep -n location nginx.conf
# 查找某文件在该目录的第一个
ls | grep -n test
# 这种写法会启动两个进程
[haojie@server01 ~]$ cat data.txt | grep -i apple
# 这种写法只启动一个进程
[haojie@server01 ~]$ grep -i apple data.txt
wc nginx.conf
136 302 3022 nginx.conf
行数 单词数量 字节数# 查看Linux里的命令所在位置
9.进程与后台任务
1.运行一个会持续输出的命令(例如 ping baidu.com),使用 Ctrl+Z 暂停它。
2.使用 jobs 查看后台任务。
可以看到任务编号 [1],状态为 Stopped
- 使用 bg 命令让它在后台继续运行。
[haojie@server01 ~]$ bg %1
4.使用 kill 命令(配合作业号或PID)结束它。
直接后台 command & 1步 日常使用首选
前台转后台 运行 → Ctrl+Z → bg 3步 已经忘记加 & 了,补救用
后台转前台暂停 fg %作业号 → Ctrl+Z 2 步
日常使用中,杀死进程, 90% 的情况用 Ctrl+C 就够了
浙公网安备 33010602011771号