目录
1.shell
linux常用目录:
2.命令格式
3.man 帮助
4.提示符
5.echo输出字符串或变量值
6.date显示及设置系统的时间或日期
7.重启系统
8.关闭系统
9.登录注销
10.wget 下载文件
11.ps 查看系统的进程
12.top动态监视进程信息和系统负载等信息
13.lsof查询指定服务进程的 PID 值
14.kill终止某个指定 PID 的服务进程
15.系统状态检测
1 、 ifconfig用于获取网卡配置与网络状态
2 、uname查看系统内核与系统版本等信息
3、free显示当前系统中内存的使用量信息
4、who查看当前登入主机的用户终端信息
5、 history用于显示历史执行过的命令
16.工作目录切换
1、 pwd显示用户当前所处的工作目录例: pwd
2、cd切换工作路径
3、 ls显示目录中的文件信息
17.文本文件编辑
1 、cat查看纯文本文件内容
2 、more查看纯文本文件内容(逐屏)
3 、head查看纯文本文档的前 N 行
4 、tail查看纯文本文档的后 N 行或持续刷新内容
5 、wc用于统计指定文本的行数、字数、字节数
18.文件目录管理
1 、touch用于创建空白文件或设置文件的时间
2 、mkdir用于创建空白的目录
3 、cp用于复制文件或目录
4 、mv用于剪切文件或将文件重命名
5 、rm删除文件或目录(空目录或非空目录)
6 、dd按照指定大小和个数的数据块来复制文件或转换文件
7.linux 的文件类型
19.打包压缩与搜索
1、tar于对文件进行打包压缩或解压
2 、find按照指定条件来查找文件
20.配置网卡信息
21.配置 Yum 软件仓库
22.周期性的计划任务
23.用户身份及目录
练习 1 :swap 分区扩展练习
练习 2 :本地 yum 的配置
练习 3 :虚拟内存修改
1.shell
实际上 Shell 是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此, Shell 有自己的编程语言用于对命令的编辑,它允许用户编写由 shell 命令组成的程序。 Shell 编程语言具有普 通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的 Shell 程序与其他应用程序具有同样的效果。
linux常用目录:
[root@oel7 ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/tcsh
/bin/csh
[root@oel7 ~]# echo $SHELL
/bin/bash
2.命令格式
命令名称 [参数] [对象]
注意:命令区分大小写
[root@oel7 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.9 (Maipo)
[root@oel7 ~]# ls -l /boot
3.man 帮助
[root@oel7 ~]# man tail
其中空格为向下,/为下查找, n 为继续查找,?向上查找
4.提示符
[root@oel7 ~]# echo $PS1
[\u@\h \W]\$
登录的用户名 +短主机名+当前打开的目录(此目录会改变),$表示登录用户是普通用户
假设我们需要设置的主机名为 server.jeames.wang, 那么段主机名为 server, 长主机名为 server.jeames.wang
vi /etc/hosts 中编辑
88.88.88.88 server.jeames.wang server
/etc/hostname 中编辑
server
hostnamectl set-hostname <newhostname>
注: hostname 为短主机名, hostname -f 为长主机名
5.echo输出字符串或变量值
在终端输出字符串或变量值
例:
echo how are you
echo $PATH
echo $SHELL
6.date显示及设置系统的时间或日期
[root@oel7 ~]# date -R
Wed, 15 Feb 2023 07:16:47 +0800
[root@oel7 ~]# date
Wed Feb 15 07:16:55 CST 2023
[root@oel7 ~]# date -s "14:32"
Wed Feb 15 14:32:00 CST 2023
[root@oel7 ~]# timedatectl
Local time: Wed 2023 -02-15 07:18:03 CST
Universal time: Tue 2023-02-14 23:18:03 UTC
RTC time: Tue 2023-02-14 23:18:01
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
设置时区:timedatectl set -timezone UTC
了解 GMT,CST,UTC 是什么鬼?
1. UTC(世界标准时间)
协调世界时,又称世界标准时间或世界协调时间,简称 UTC(从英文“Coordinated Universal Time”
/法文“Temps
Universel Coordonné” 而来),是最主要的世界时间标准,其以原子时秒长为基础,在时刻上尽 量接近于格林尼治标准时间。
2.GMT(格林尼治平时)
格林尼治 平时(又称格 林 尼治平均 时间或 格林尼 治 标准时间 ,旧译 格林威 治 标准时间 ;英语 : Greenwich MeanTime ,GMT )是指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本 初子午线被定义在通过那里的经线。由于地球每天的自转是有些不规则的,而且正在缓慢减速,因此 格林尼治时间已经不再被作为标准时间使用。现在的标准时间,是由原子钟报时的协调世界时( UTC )。
3.CST(北京时间)
北京时间,China Standard Time ,中国标准时间。在时区划分上,属东八区,比协调世界时早 8 小 时,记为 UTC+8。
7.重启系统
立即重启:reboot 、init 6 、shutdown -r now
14 :30 重启系统 shutdown -r 14:30
取消重启 shutdown -c
8.关闭系统
shutdown -h now
init 0
poweroff
halt
14 :30 关闭系统:shutdown -h 14:30
取消关闭:shutdown -c
9.登录注销
ctrl+alt+F2 可进入控制台,多用户多任务的系统
[u1@oel7 ~]$ whoami
u1
exit
logout
10.wget 下载文件
在终端中下载文件
例: wget 下载链接
11.ps 查看系统的进程
查看系统的进程:例: ps -aux、 ps -ef
12.top动态监视进程信息和系统负载等信息
q 退出 top
13.lsof查询指定服务进程的 PID 值
例: lsof -p pid值
14.kill终止某个指定 PID 的服务进程
终止某个指定 PID 的服务进程
kill [参数] [进程 PID]
例: kill -9 12363
killall [参数] [进程名称]
终止某个指定名称的服务所全部进程
例: killall httpd
15.系统状态检测
1 、 ifconfig用于获取网卡配置与网络状态
例: ifconfig
2 、uname查看系统内核与系统版本等信息
例: uname
查询内核版本号
uname -r
查看发行版的版本号
cat /etc/redhat-release
3、free显示当前系统中内存的使用量信息
例: free 、free -h
4、who查看当前登入主机的用户终端信息
例: who、w
last:查看所有系统的登录记录
5、 history用于显示历史执行过的命令
例: history
!20:重复使用命令,历史命令会被保存到用户家目录中的.bash_history 文件中, Linux 系统中以点 . 开头的文件均代表隐藏文件。
清空历史命令: history -c
16.工作目录切换
1、 pwd显示用户当前所处的工作目录
例: pwd
2、cd切换工作路径
例:
切换当前登录用户的家目录
cd
切换到 etc 目录
cd /etc/
切换到当前目录的父目录
cd ..
从当前目录切换到上二层目录下的 etc 目录
cd ../../etc
补充:
绝对路径:以根(/)目录开始的路径
例: cd /etc
cd /var/db/sudo/lectured
相对路径:不以根(/)目录开始的路径
例: cd ../../etc
特殊目录
切换到根目录
cd /
切换当前目录
cd .
切换到父目录
cd ..
切换到上一次操作过的目录
cd -
切换到登录用户的根目录
cd
切换到登录用户的根目录
cd ~
3、 ls显示目录中的文件信息
例:
显示当前目录中的文件信息
ls
显示/boot 目录中的文件信息
ls /boot
显示 tmp 目录中的文件信息
ls ../tmp
以长格式显示当前目录中的文件,包含隐藏文件
ls -al
显示当前目录中的文件,包含隐藏文件、当前目录及父目录
ls -a
显示当前目录中的文件,包含隐藏文件,不包含当前目录及父目录
ls -A
查看目录属性信息
ls -ld
显示当前目录中的文件,按时间升序排序
ls -ltr
显示当前目录中的文件,按文件大小升序排序
ls -lSr
显示当前目录中的文件,如果是目录后面加/
ls -F
17.文本文件编辑
1 、cat查看纯文本文件内容
例:
cat filename
cat initial -setup-ks.cfg
cat -ninitial-setup-ks.cfg
2 、more查看纯文本文件内容(逐屏)
例:
more filename
more initial -setup -ks.cfg
按空格显示下一屏信息
按回车一行一行信息向下显示
使用 q 退出 more
3 、head查看纯文本文档的前 N 行
例:
head initial -setup -ks.cfg
head -n 6initial-setup-ks.cfg
4 、tail查看纯文本文档的后 N 行或持续刷新内容
例:
tail initial -setup -ks.cfg
tail -n 5initial-setup-ks.cfg
举例:
第一个窗口
tail -f /root/initial -setup-ks.cfg
第二个窗口
echo how are you >>/root/initial -setup -ks.cfg
5 、wc用于统计指定文本的行数、字数、字节数
例:
wc initial -setup -ks.cfg
wc -l initial -setup -ks.cfg
wc -w initial -setup -ks.cfg
wc -cinitial-setup-ks.cfg
18.文件目录管理
1 、touch用于创建空白文件或设置文件的时间
例:
创建空文件
touch aa.txt
查看文件时间及设置文件时间
stat aa.txt
touch -d "2019-12-08 12:20:20"aa.txt
2 、mkdir用于创建空白的目录
例:
在当前目录创建 a1 目录
mkdir a1
在根目录创建 a1 目录
mkdir /a1
在/tmp 目录创建 a1 目录
mkdir /tmp/a1
创建多层目录
mkdir -p a/b/c/d
3 、cp用于复制文件或目录
例:
将当前目录下的 aa.txt 文件复制到/tmp 目录下
cp aa.txt /tmp
将当前目录下的 a 目录复制到/tmp 目录下
cp -r a /tmp
将当前目录下的 aa.txt 文件复制到/tmp 目录下, 并保留 aa.txt 文件的属性 cp -p aa.txt /tmp
4 、mv用于剪切文件或将文件重命名
例:
移动(剪切)
mv aa.txt /tmp
mv a /tmp
重命名
mv a.txtabc.txt
5 、rm删除文件或目录(空目录或非空目录)
例:
rm -rf abc
rm -f abc.txt
rmc.txt
6 、dd按照指定大小和个数的数据块来复制文件或转换文件
例:
利用 dd 创建一个 10M 文件
dd if=/dev/zero of=/root/size bs=1M count=10
du -h size
dd 命令来压制出光盘镜像文件
dd if=/dev/cdrom of=RHEL -server-7.0-x86_64-LinuxProbe.Com.iso
7.linux 的文件类型
1、普通文件 文本文件 二进制文件
ls -l
文件属性的第一个字符是 “ - ”
2、目录文件
ls -l
文件属性的第一个字符是 “ d ”
3、设备文件
字符设备文件
ls -l
文件属性的第一个字符是 “ c ”
例:
ls -l /dev/zero
块设备文件
ls -l
文件属性的第一个字符是 “ b ”
例:
ls -l /dev/sba
4、链接文件
ls -l
文件属性的第一个字符是 “ l ”
例:
ls -l /dev/rtc
19.打包压缩与搜索
1、tar于对文件进行打包压缩或解压
例:
anaconda -ks.cfg 和 initial-setup -ks.cfg 文件打包,包的名称为 a.tar
tar -cvf a.tar anaconda -ks.cfg initial -setup -ks.cfg
查看 a.tar 包中的文件
tar -tvf a.tar
解包
tar -xvf a.tar
打包并压缩
tar -zcvf b.tar.gz anaconda -ks.cfg initial -setup -ks.cfg
查看 b.tar.gz 包中的文件
tar -ztvf b.tar.gz
解包
tar -zxvf b.tar.gz
解包至指定位置
tar -zxvf b.tar.gz -C /tmp
tar -jcvf c.tar.bz2 initial -setup -ks.cfg anaconda -ks.cfg
tar -jtvf c.tar.bz2
tar -jxvf c.tar.bz2 -C /tmp/
2 、find按照指定条件来查找文件
例:
在/etc 目录下查找 passwd 文件
find /etc -name passwd
在/etc 目录下查找权限为 777 的文件
find /etc -perm 777
算数字表示法 764 、642 、153 、731 所对 应的字符表示法
764 rwxrw-r--
642 rw-r---w- 153 --xr-x -wx
731 rwx -wx --x
666 rw-rw-rw-
20.配置网卡信息
配置网络服务的工作其实就是在编辑网卡配置文件
vim /etc/sysconfig/network-scripts/ifcfg-ens33
➢ 设备类型: TYPE=Ethernet
➢ 地址分配模式: BOOTPROTO=static
➢ 网卡名称: NAME=eno16777736
➢ 是否启动: ONBOOT=yes
➢ IP 地址: IPADDR=192.168.10.10
➢ 子网掩码: NETMASK=255.255.255.0
➢ 网关地址: GATEWAY=192.168.10.1
➢ DNS 地址: DNS1=192.168.10.1
21.配置 Yum 软件仓库
cd /etc/yum.repos.d/
rm redhat.repo
vim /etc/yum.repos.d/server.repo
内容如下:
[server]
name=linux
baseurl=file:///run/media/root/RHEL -7.6%20Server.x86_64
enabled=1
gpgcheck=0
测试:
yum repolist
如果显示以下信息,表示 yum 搭建成功
repolist: 5,152
22.周期性的计划任务
我们希望 Linux 系统能够周期性地、有规律地执行某些具体的任务,那么 Linux 系统
中默认启用的 crond 服务简直再适合不过了创建、编辑计划任务的命令为 “crontab -e” ,查看当前计
划任务的命令为 “crontab -l”
例:
每周一、三、五的凌晨 3 点 25 分
25 3 * * 1,3,5
每周一至五的 1 点
0 1 * * 1-5
*/2 表示每隔 2 分钟
5 * * * * Command 每小时的第 5 分钟执行一次命令
30 18 * * * Command 指定每天下午的 6:30 执行一次命令
30 7 8 * * Command 指定每月 8 号的 7 :30 分执行一次命令
30 5 8 6 * Command 指定每年的 6 月 8 日 5 :30 执行一次命令
30 6 * * 0 Command 指定每星期日的 6:30 执行一次命令
每天的下午 4 点、 5 点、 6 点的 5 min、 15 min、25 min、 35 min、45 min、 55 min 时执行命 令。
5 ,15 ,25 ,35 ,45 ,55 16 ,17 ,18 * * * Command
23.用户身份及目录
useradd 命令用于创建新的用户, 格式为 “useradd [选项] 用户名” 。
userdel 命令用于删除用户,格式为 “userdel [选项] 用户名” 。
可以使用 useradd 命令创建用户账户。使用该命令创建用户账户时,默认的用户家目录会
被存放在/home 目录中,默认的 Shell 解释器为/bin/bash,而且默认会创建一个与该用户 同名的基本用户组。
例:
useradd -d /home/user05 -s /bin/bash -u 9999 -N user05
groupadd 命令用于创建用户组, 格式为 “groupadd [选项] 群组名” 。
为了能够更加高效地指派系统中各个用户的权限,在工作中常常会把几个用户加入到同 一个组里面,这样便可以针对一类用户统一安排权限
例: groupadd g1
练习 1 :swap 分区扩展练习
swap 分区间没有分配, 内存大于 32G ,swap 分区至少要有 16,此处我们分配 18G,方法如 下:
a.创建大小为 18G 的交换文件:
[root@test /]# dd if=/dev/zero of=/swapfile bs=1024 count=18874368
b.格式化 swaps 分区
[root@test /]# mkswap /swapfile
c.开启 swap 分区
[root@test /]# swapon /swapfile
d.再次查看 swap 空间
[root@test /]# free -m
[root@test /]# cat /proc/swaps
注意:要想开机也是增加后的大小, 编辑/etc/fstab 在末端添加如下行,这个一定要做
cat /etc/fstab
/swapfile swap swap defaults 0 0
练习 2 :本地 yum 的配置
[root@test ~]# mkdir /cdrom
[root@test ~]# mount -o loop /rhel -server-5.4-x86_64-dvd.iso /cdrom
vi /etc/yum.repos.d/dvd.repo
添加:
[RHEL]
name=RedHat
baseurl=file:///cdrom/Server
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM -GPG-KEY-redhat-release
enabled=1
## 清空并重载yum
yum clean all
yum makecache
练习 3 :虚拟内存修改
/dev/shm 这个目录是 linux 下一个利用内存虚拟出来的一个目录,这个目录中的文件都是保存在 内存中,而不是磁盘上。其大小是非固定的,即不是预先分配好的内存来存储的。 /dev/shm 的容量默
认最大为内存的一半大小,使用 df -h 命令可以看到。但它并不会真正的占用这块内存,如果 /dev/shm/下没有任何文件,它占用的内存实际上就是 0 字节。
[root@localhost ~]# df -h /dev/shm/
文件系统 容量 已用 可用 已用% 挂载点
tmpfs 63G 0 63G 0% /dev/shm
此处修改共享内存大小
vi /etc/fstab 修改对应/dev/shm 项 defaults,size=86016M
tmpfs /dev/shm/ tmpfs defaults,size=86016M 0 0
##重新挂载
[root@localhost ~]# mount -o remount /dev/shm
[root@localhost ~]# cat /etc/fstab | grep shm
tmpfs /dev/shm/ tmpfs defaults,size=49152M 0 0
[root@localhost ~]# df -h /dev/shm/
文件系统 容量 已用 可用 已用% 挂载点
tmpfs 84G 0 84G 0% /dev/shm