努力就好,不问结果,无问西东。
bin 普通用户使用的命令 /bin/ls, /bin/date
sbin 管理员使用的命令 /sbin/service
案例:
[root@server~]# which ls
[root@server~]# which useradd
/usr/sbin/useradd
dev 设备文件 /dev/sda,/dev/sda1
[root@server~]# ll /dev/sd*
brw-rw----. 1 root disk 8, 0 Oct 31 14:16 /dev/sda
brw-rw----. 1 root disk 8, 1 Oct 31 14:16 /dev/sda1
brw-rw----. 1 root disk 8, 2 Oct 31 14:16 /dev/sda2
/root #root用户的家目录
/home #存储普通用户家目录
lost+found 这个目录平时是空的,存储系统非正常关机而留下“无家可归”的文件
/usr #系统文件,相当于C:\Windows
/usr/local #软件安装的目录,相当于C:\Program
/usr/bin #普通用户使用的应用程序
/usr/sbin #管理员使用的应用程序
/usr/lib #库文件Glibc 32bit
/usr/lib64 #库文件Glibc 64bit
/boot #存放的系统启动相关的文件,例如kernel
/etc #配置文件(系统相关如网络/etc/sysconfig/network)
/tmp #临时文件(系统:程序产生的临时文件)
/opt #空目录
/media #用于挂载u盘,光驱等自动识别的设备
/srv #存放服务启动后产生的数据目录
/var #存放的是一些变化文件,比如数据库,日志,邮件....
/proc #虚拟文件系统,系统程序文件所处目录 。虚拟文件系统:只要关机就会没有。
/mnt #系统提供这个目录是让用户临时挂载其他的文件系统
绝对路径是从文件系统的根目录开始指定的完整路径。例如,在Unix/Linux系统中,如果要指定一个文件的绝对路径,需要使用“/”作为根目录的前缀。
示例:
/home/haoze/test.txt
相对路径是相对于当前工作目录而言的路径。在Linux/Unix系统中,使用绝对路径和相对路径来指定文件或目录的位置。相对路径是通过文件或目录在当前工作目录中的位置来确定的。
示例: 当前工作目录为/home/haoze,相对路径可以使用./表示当前目录下的文件,或者使用…/表示当前目录的父目录中的文件。例如,如果要在./test.txt中编辑文件,可以使用./test.txt命令。如果要在…/test.txt中编辑文件,可以使用…/test.txt命令。
另外,相对路径也可以使用相对路径来确定文件或目录的位置。例如,如果要指定一个文件在当前工作目录中的子目录中的路径,可以使用./test.txt来指定,也可以使用…/subdir/test.txt来指定。
示例: 在当前工作目录下,使用./subdir/test.txt来指定test.txt文件的位置。 或者在当前工作目录下,使用…/subdir/test.txt来指定test.txt文件的位置。
语法:mkdir -v 详细 -p 递归 目录
# mkdir dir1
创建两个目录:
# mkdir /home/dir2 /home/dir3
# mkdir /home/{dir4,dir5}
# mkdir -v /home/{dir6,dir7} #-v :verbose 冗长的。显示创建时的详细信息
# mkdir -p /home/dir8/111/222 #-p 创建连级目录,一级一级的创建
mkdir -p --- 创建多级目录
mkdir {..}/{,} --- 批量创建多个
rmdir 目录名
[root@server ~]# rmdir 2023-07-21 #删除目录2023-07-21
cd /xxx ---绝对路径方式切换目录 推荐
cd xxx ---相对路径方式切换目录
cd ../ ---返回上一级目录
cd - ---返回上一次所在目录
cd ~ /cd ---返回家目录
[root@server ~]# pwd
/root
ls -l ---长格式显示(显示文件的详细信息)
ls -ld ---查看目录详细属性信息
ls -lrt ---按照时间排序显示数据信息
ls -lrS ---按照大小排序显示数据信息
ls -lh ---以人类可读方式显示文件大小信息(eg: 1k 20M 5G)
ls -a ---查看隐藏文件信息
ls -i ---显示文件数据inode信息
ls ---查看当前目录下的文件
ls /root/a.txt ---单独列出文件
ls /home ---查看指定目录下的文件
#文件类型\权限 硬链接个数 所有者 所属组 大小 修改时间 名字
[[email protected] ~]# ll -d /home/ #显示目录的详细信息
# ls -lh #-h 人性化显示 (显示文件大小)
# ls -a #all 显示所有文件 (包括隐藏文件)
案例:ls a.txt b.txt c.txt
# ls file* #以file开头的所有文件 *通配符。表示所有字符(隐藏文件除外)
# ls *.txt #以任意开头以.txt结尾的所有文件
[root@server ~]# ll -d /home/ #查看目录详细信息
[root@server ~]# ll /home/ #查看目录下面文件的详细信息
[root@server ~]# ll -t #按最新的修改时间排序
[root@server ~]# clear #清屏,快捷键----ctrl+l
=================================
#隐藏文件:文件名称前面加“.”
问题:想一想ll 与 ls -l 是什么关系?
-L ---显示指定层级的目录结构信息
-d ---只显示目录结构信息(不显示文件信息)
案例:
[root@server /]# tree -L 1
.
├── bin -> usr/bin
├── boot
├── data
├── dev
├── etc
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── media
├── mnt
├── opt
├── proc
├── prow
├── root
├── run
├── sbin -> usr/sbin
├── srv
├── sys
├── tmp
├── usr
└── var
20 directories, 1 file
[root@server /]#
touch命令是Linux中常用的文件创建命令之一,它用于创建空文件或修改文件的访问时间和修改时间。使用touch命令时,只需要在终端中输入touch [文件名],然后按回车键即可创建空文件或修改文件的访问时间和修改时间。
以下是touch命令的常用语法:
touch [选项] [文件名]
其中,选项是可选的,文件名是要创建或修改的文件名。常用的选项有:
t:创建空文件。
r:只修改文件的访问时间。
w:创建文件并修改其访问时间和修改时间。
A:创建文件并修改其访问时间。
c:修改文件的修改时间。
例如,要创建一个名为zhanghaoze.txt的文件,可以在终端中输入以下命令:
[root@server ~]# touch zhanghaoze.txt
如果要修改example.txt文件的访问时间,可以输入以下命令:
touch -r example.txt
如果要修改example.txt文件的修改时间,可以输入以下命令:
touch -c example.txt
需要注意的是,touch命令创建或修改文件时,会在文件名前加上文件创建或修改的时间戳,这些时间戳通常由当前系统时间时决定。如果不想显示文件创建或修改时间戳,可以在命令后面加上参数–no-pager,例如:
touch --no-pager [文件名]
echo xxx > 文件 --- 重定向覆盖文件内容
echo xxx >> 文件 --- 追加重定向追加文件内容
cat 文件信息 --- 将文件所有内容显示在屏幕上
cat -n ---显示文件内容行号
cat -A ---可以显示文件每行结尾空格信息
cat >> 文件信息 << EOF --- 编辑文件多行信息
XXX
XXX
XXX
EOF
案例:
[root@server ~]# cat >> test.txt < hello world!!!
> by zhanghaoze
> EOF
[root@server ~]# cat test.txt
hello world!!!
by zhanghaoze
less ---分页显示文件内容
#1.空格键是翻页 回车键是翻行
#2.上下箭头可以来回翻
#3. /关键字 #搜索 (n按关键字往下翻 N按关键字往上翻)
#4.快捷键:q -quit 退出
more ---分页显示文件内容
#空格键是向下翻页 回车键是翻行
#Ctrl+B 向上翻页
head ---查看文件前几行内容,默认查看前10行
[root@server~]# head /etc/passwd #默查看前十行
[root@server~]# head -2 /etc/passwd #默认查看前两行
tail ---查看文件后几行内容
[root@server~]# tail /etc/passwd #默认查看文件的后十行
[root@server~]# tail -1 /etc/passwd #查看文件最后一行
[root@server~]# tail /var/log/messages
[root@server~]# tail -f /var/log/secure #-f 实时追踪动态查看文件的尾部
[root@server~]# tailf /var/log/secure #功能同上
语法: cp -r 源文件1 源文件2 源文件N 目标目录 #将多个文件拷贝到同一个目录
# mkdir /home/dir{1,2} #创建目录
# cp -v anaconda-ks.cfg /home/dir1/ #-v 显示详细信息
# cp anaconda-ks.cfg /home/dir1/test.txt #复制并改文件名
# cp -r /etc /home/dir1 #-r 拷贝目录使用,连同目录里面的文件一块拷贝
# cp -r /etc /tmp
1\.创建一个新文件file1
[root@server~]# touch /root/file1
2\.把file1文件移动到/tmp目录中。
[root@server~]# mv /root/file1 /tmp/
[root@server~]# ls /tmp/file1
3\.把file1文件更名为file2
[root@server~]# mv /tmp/file1 /tmp/file2
4\.观察file1文件已经更名为file2
[root@server~]# cd /tmp/
[root@servertmp]# ls
file2
rm — 删除文件或目录数据信息
语法:rm -r 递归删除目录 -f force强制 -v 详细过程 \*通配符
rm -f ---强制删除文件数据信息
rm -rf ---强制删除目录数据信息
rm -r ---递归,删除目录时
rm -f ---force强制
rm -v ---详细过程
rm --no-preserve-root --- 删除根目录信息
语法:du -sh —汇总查看目录大小(以人类可读方式)
[root@server ~]# du -sh /home/
8.1M /home/
在Linux系统中,"type"命令可以用来查看文件的类型。该命令将文件的类型作为结果返回,可以使用以下语法:
type [<文件名>]
其中,"<文件名>"是要检查类型的文件名。
如果想要检查文件是普通文件还是目录,可以使用以下语法:
type [<文件名>] | grep -i "文件类型"
其中,"grep"命令用来过滤掉目录的结果。
[root@server ~]# type ls
ls is aliased to `ls --color=auto'
Vim是一款非常流行的文本编辑器,它具有高效的文本编辑功能和强大的扩展性,可以在Linux、macOS和Windows等操作系统上运行。以下是一些关于Vim的详解:
Vim具有许多基本命令,可以通过按下快捷键来完成常见的文本编辑任务。以下是一些基本命令:
i #在光标所在处进入插入模式
a #在当前光标后面进入编辑模式
o #在光标的下一行进入编辑模式
I #在光标所在处行首进入编辑模式
A #在光标所在处行尾进入编辑模式
O #在光标的上一行进入编辑模式
o! #在当前行下面不重新编辑行
og #在当前行下面创建一个新的代码块
o #回到插入模式
x #删除当前光标位置的字符
dd #删除当前行
Yy #复制当前行
p #粘贴当前行
gq #将光标移动到第一个不匹配的单词的结尾处
q #退出编辑器
文本编辑常用
yy #复制
3yy #从光标开始复制3行。在最后粘贴
ygg #从当前光标复制到页首
yG #从光标开始复制到页尾
dd #删除一行
3dd #从光标开始删除3行
dgg #从光标开始删除到页首
dG #从光标开始删除到页尾
d^ #删除当前光标之前的内容
p #粘贴到本行的下一行
P #粘贴到本行的上一行
x #删除光标所在的字符
D #从光标处删除到行尾
u #undo撤销
r #可以用来修改一个字符
扩展命令(尾行)模式:
:::
shift+: #进入尾行模式(扩展命令模式)
:10 #进入第10行
:w #保存
:q #退出
:wq #保存并退出
:q! #不保存并退出
:wq! #强制保存退出
:::
进入其他模式
ctrl+v #进入可视块模式
shift+v #进入可视行模式
查找替换
语法----> :范围 s/old/new/选项
:s/world/nice/ #替换当前光标所在行
:3s/sbin/nice/ #替换指定行
:1,5 s/nologin/soso/ #从1-5行的nologin 替换为soso
:%s/bin/soso/ #替换所有行
:%s/sbin/nice/g #替换行内所有关键字
注释:%表示替换所有行 g表示行内所有关键字
将文件另存(另存为)
:::
语法----> :w 存储到当前文件
:w /tmp/aaa.txt #另存为/tmp/aaa.txt
:1,3 w /tmp/2.txt #从1-3行的内容另存为/tmp/2.txt
:::
设置环境 :
:set nu #设置行号
:set list #显示控制字符
:set nonu #取消设置行号
文件基本信息
时间类型
访问时间:atime,查看内容
修改时间:mtime,修改内容
改变时间:ctime,文件属性,比如权限,mv改名
:::
- 普通文件(文本文件,二进制文件,压缩文件,图片…)
d 目录文件(蓝色)
b 设备文件 block device 设备文件,如硬盘,U盘;
c 设备文件 字符设备文件,比如我们的终端tty1,打印机。
l symbolic link 即符号链接文件,又称软链接文件 (浅蓝色)
s socket 即套接字文件,用于实现两个进程进行通信
p 管道文件
:::
使用useradd命令可以创建新的用户。useradd命令有很多参数可以用来创建不同类型的用户,下面是一些常用的参数:
-m:在创建用户时自动创建一个家目录。
-s:指定用户的shell,例如/bin/bash、/bin/sh等。
-c:指定用户的描述信息。
-u:指定用户的UID(用户ID),可以是一个范围内的数字或一个数字加一个字母的组合,例如1001、u1001、1000u等。
-g:指定用户的组ID,可以是一个或多个组ID的组合,用空格分隔。
-G:指定用户所属的组ID,可以是一个或多个组ID的组合,用空格分隔。
-o:指定用户所属的特殊用户组ID,例如operator、writer等。
-D:在创建用户时不自动创建一个家目录。
-R:递归创建子目录。
-s:同-s参数。
-p:指定用户的密码,如果没有密码则不会显示输入密码的提示。
-r:递归创建用户的主目录。
-T:同-D参数,创建一个只读的家目录。
除了上述参数,还有一些常用的选项可以用来创建用户,例如:
-d:创建用户时自动创建一个默认的家目录。
-m:同-m参数,但是在创建用户时会自动创建一个家目录。
-s:同-s参数。
-o:同-o参数。
-u:同-u参数。
-g:同-g参数。
-G:同-G参数。
#需要注意的是,在使用useradd命令创建用户时,必须要具有超级用户权限,否则将会失败。
以下是关于用户信息修改、用户组创建和删除、密码设置、用户身份验证的常用命令。
修改用户信息:usermod
删除用户信息:userdel -r
彻底删除用户信息:userdel -r
创建用户组信息:groupadd
删除用户组信息:groupdel
设置用户密码:passwd
设置免交互的用户密码:passwd --stdin
查看用户uid、gid和所属组信息:id
查看当前登录系统用户信息:w
进行用户之间的切换:su
help ---获取内置命令帮助信息
chmod u/g/o/a +/-/=
chmod xxx
chmod -R ---对目录本身以及目录下面的数据进行递归修改
chown xxx --- 单独修改属主
chown .xxx --- 单独修改属组
chown xxx.xxx --- 同时修改属主和属组
chown -R oldboy.oldboy /oldboy --- root
Linux的一大特性:
> 多用户、多任务。
> 所谓多用户多任务就是指可以在同一时间,有多个用户登录同一个系统执行不同的任务而互不影响。
> 假设现在有三个用户:root、lbb、mvv,三个用户同一时间登录了同一个系统,root去修改配置文件了,lbb去创建目录了,mvv去访问数据库了,每个用户互不干扰的独立执行自己的任务,并且每个用户不能够越线去访问其他用户正在操作的目录或执行其他用户下的任务,由此可见,不同的用户是拥有各自不同的权限的,Linux通过权限的划分和管理来实现多用户、多任务的运行机制。
Linux中的用户及其角色划分
账户为分三类:
超级用户(管理员):享有最高权限,具备系统中的所有权限(一般为root),UID为0
系统用户 :别称“伪用户”,无法登录系统,其主要作用是支撑系统运行,方便系统管理。uid号码小于1000.
普通用户:有权限限制,只能对自己目录下的文件进行操作,可以登录系统。uid 大于1000,登陆shell是bin/bash。
任何一个账户在创建的同时都会在系统里面创建一个同名的组。
[root@server~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
分隔符::
第一列:用户名
第二列:密码
第三列:用户标识号--->(uid)是一个整数,系统内部用它来标识用户。通常用户标识号的取值范围是0~65535。0是超级用户root的标识号
第四列:gid
第五列:描述信息。
第六列:家目录
第七列:是用户登陆到界面的第一个命令,开启一个shell。登陆shell
用户操作
Linux是一个开源的操作系统,组成员管理是Linux管理中的重要部分。下面是Linux组成员管理命令的详解:
使用以下命令可以列出所有用户:
compgen -u
使用以下命令可以列出当前登录用户:
whoami
[root@server ~]# whoami
root
使用以下命令可以创建新用户:
adduser <用户名>
使用以下命令可以为新用户添加密码:
passwd <用户名>
使用以下命令可以编辑用户密码:
passwd <用户名>
使用以下命令可以更改用户密码的到期时间:
passwd -e <用户名>
使用以下命令可以删除用户:
userdel <用户名>
使用以下命令可以检查用户是否存在:
id -u <用户名>
[root@server ~]# id root
uid=0(root) gid=0(root) groups=0(root)
[root@server ~]#
使用以下命令可以列出当前用户所属的用户组:
groups
使用以下命令可以将当前用户加入指定用户组:
adduser <用户名> <用户组>
使用以下命令可以从指定用户组中删除当前用户:
deluser <用户名> <用户组>
[root@server ~]# useradd zhz
[root@server ~]# id zhz
uid=1001(zhz) gid=1001(zhz) groups=1001(zhz)
[root@server ~]# usermod -u 1008 zhz
[root@server ~]# id zhz
uid=1008(zhz) gid=1001(zhz) groups=1001(zhz)
[root@server ~]# usermod -s /sbin/nologin zhz
[root@server ~]# tail -1 /etc/passwd
zhz:x:1008:1001::/home/zhz:/sbin/nologin
[root@server ~]#
[root@server ~]# usermod -aG haoze zhz
[root@server ~]# id zhz
uid=1008(zhz) gid=1001(zhz) groups=1001(zhz),1000(haoze)
[root@server ~]#
Linux组成员管理命令是用于管理Linux系统中用户组的命令。在Linux中,用户组是一组用户的集合,它们共享相同的权限和特性。
Linux组成员管理命令的详细说明:
g:指定要添加用户到的组。
u:指定要将用户添加到的用户ID。
a:指定要添加的所有用户。
d:指定要将用户从的组。
u:指定要将用户从的用户ID。
r:指定要将用户从的组的删除。
groupadd:用于添加新用户组。
groupmod:用于修改用户组信息。
groupdel:用于删除用户组。
userinfo:用于显示指定用户的详细信息,包括用户组。
id:用于显示当前用户的用户组信息。
练习:
1、创建用户的同时设置家目录
[root@web02 ~]# useradd user11 -d /opt/user11
2、创建用户时,不创建家目录
[root@web02 ~]# useradd -M user112
3、锁定用户
[root@web02 ~]# usermod -L user113
4、解锁用户
[root@web02 ~]# usermod -U user113
5、用户附加组中
usermod -aG 组名 用户名
[root@web02 ~]# usermod -aG yunze user1113
6、用户添加多个附加组
[root@web02 ~]# usermod -aG yunze,usera01,user112 user1113
7、给用户添加密码
[root@web02 ~]# echo "123456" |passwd --stdin user01
chattr #设置隐藏权限
lsattr #查看隐藏权限
[root@web02 ~]# touch file.txt
[root@web02 ~]# chattr +a file.txt
[root@web02 ~]# lsattr file.txt
-----a---------- file.txt
#a 权限:无法删除、移动、修改、只能追加内容,不能修改内容
#i 权限:无法删除、移动、修改内容
sudo 用户
sudo是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令。
远程拷贝文件
从本地拷贝文件到远程服务器
将当前目录下file1文件拷贝到服务器ip为'192.168.31.99'的root目录下
[root@server-1 ~]# scp file1 192.168.31.99:/root/
从远程服务器'192.168.31.99'拷贝/etc/passwd文件到当前目录
[root@server-1 ~]# scp 192.168.31.99:/etc/passwd ./
将/opt/dir1目录拷贝到服务器ip为'192.168.31.99'的/opt/目录下
[root@server-1 ~]# scp -r /opt/dir1 192.168.31.99:/opt/
将远程服务器'192.168.31.99'内的/opt/dir1目录拷贝到本服务器的/opt/目录下
[root@server-1 ~]# scp -r 192.168.31.99:/opt/dir1 /opt
*sz -y --- 从Linux下载指定数据
rz -y ---从windows上传指定数据
[root@server ~]# hostname
server
hostnamectl set-hostname 主机名称
案例:
[root@server ~]# hostnamectl
Static hostname: server
Icon name: computer-vm
Chassis: vm
Machine ID: c2fb611d5db644399a3c775ab1c26abb
Boot ID: 4d86403f3993431d82236d8248798c4b
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-1160.92.1.el7.x86_64
Architecture: x86-64
root@linux-server ~]# top
h|? 帮助
> 往下翻页
< 往上翻页
M 按内存排序
P 按cpu排序
q 退出
z 彩色显示
W 保存
=====================================================================================
PR 优先级
VIRT 进程使用的虚拟内存总量,单位kb。
RES 进程使用的、未被换出的物理内存大小,单位kb。
SHR 共享内存大小,单位kb
=====================================================================================
[root@server ~]# top
top - 15:26:17 up 49 min, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 249 total, 1 running, 248 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 2027680 total, 1551848 free, 275104 used, 200728 buff/cache
KiB Swap: 2097148 total, 1883356 free, 213792 used. 1575484 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
767 root 20 0 221648 1468 1092 S 0.3 0.1 0:04.49 vmtoolsd
=====================================================================================
ni: nice值
id: cpu空闲率
wa: cpu等待,等待输入/输出的进程占用的 CPU 百分比。如果使用率过高,表示硬盘该换了
nice 值越高:表示优先级越低,例如+19,该进程容易将CPU 使用量让给其他进程。
nice 值越低:表示优先级越高,例如-20,该进程更不倾向于让出CPU。
在Linux中,可以通过终端命令行使用htop,但是在使用前需要先安装htop。通常可以使用包管理器(如apt-get或yum)来安装htop,具体命令可以根据您使用的Linux发行版而有所不同。
在Linux终端中输入htop命令,然后按下Enter键即可启动htop。
htop是一个交互式的终端监视器,可以显示当前正在运行的进程和系统资源使用情况。以下是一些htop的常用功能:
按F1键可以查看htop的帮助文档,其中包括一些常用的快捷键。
按F6键可以在列表中切换到CPU占用情况列,其他列则包括内存、磁盘、网络等使用情况。
按下Shift+F6键可以在列表中切换到详细模式,可以查看每个进程的详细信息,包括CPU使用情况、内存使用情况、进程ID等。
可以使用快捷键(例如Ctrl+P和Ctrl+N)来逐行滚动查看当前正在运行的进程。
可以使用“!”命令来执行其他操作,例如“!top”可以切换到另一个监视器(top),或者“!pkill”可以强制终止指定进程。
在Linux系统中,可以使用uptime命令来查看系统的运行时间、已经经过的时间和系统启动的时间等信息。该命令可以输出以下内容:
[root@server ~]# uptime
19:23:20 up 14:39, 4 users, load average: 0.00, 0.01, 0.05
[root@server ~]#
这里的输出信息包括:
Current uptime:当前系统运行时间。
up:系统运行时间中已经经过的时间。
days:系统运行时间中已经经过的天数。
seconds:系统运行时间中已经经过的秒数。
user:使用系统的用户数量。
load average:系统平均负载。
可以通过在终端窗口中输入uptime
命令来查看这些信息。
[root@server ~]# free -m
total used free shared buff/cache available
Mem: 1980 499 111 12 1369 1284
Swap: 2047 0 2047
[root@server ~]# swapon -s #查看交换分区信息
Filename Type Size Used Priority
/dev/dm-1 partition 2097148 0 -2
在Linux下,ps命令用于显示进程列表。该命令的基本语法如下:
ps [options]
-aux
其中,options是可选的参数,用于指定ps命令的行为。常用的选项包括:
\-ef
:显示所有进程,包括非管理员进程。
\-u username
:以指定用户身份显示进程。
\-n
:仅显示指定数量的进程。
\-o
:以特定的选项显示进程信息。常用的选项包括:pid
(进程ID)、%CPU
(CPU使用率)、%MEM
(内存使用率)、VSZ
(虚拟内存大小)、RSS
(实际占用的内存大小)、TTY
(终端名称)、STAT
(进程状态)、STIME
(启动时间)、TTY
(终端名称)、TIME
(启动时间)等。
以下是一些常用的ps命令选项示例:
[root@server ~]# ps -ef | grep nginx
root 108988 99180 0 11:44 pts/0 00:00:00 grep --color=auto nginx
这将显示所有包含nginx关键字的进程列表,包括管理员进程。
[root@server ~]# ps -u root | head
PID TTY TIME CMD
1 ? 00:00:22 systemd
2 ? 00:00:00 kthreadd
4 ? 00:00:00 kworker/0:0H
6 ? 00:00:00 ksoftirqd/0
7 ? 00:00:00 migration/0
8 ? 00:00:00 rcu_bh
9 ? 00:00:12 rcu_sched
10 ? 00:00:00 lru-add-drain
11 ? 00:00:00 watchdog/0
Linuxkill命令是一种强制结束正在运行的进程的命令,通常用于结束无响应的进程或阻止不可用的进程。该命令需要root权限才能使用。
使用Linuxkill命令时,需要提供要终止的进程的ID(PID)。以下是使用Linuxkill命令的基本语法:
kill [选项] [PID] [进程编号]
选项包括:
-1:终止最后一个进程。
-u:指定要终止的进程所属的用户。
-s:指定终止进程的方式,可以是signal或term。signal指定终止进程时要发送的信号,term指定终止进程时使用的信号,比如SIGKILL(通常使用-9)或SIGTERM。
-9:强制杀死某个进程(尽量不要用 慎用)
下面是一个示例,展示如何使用Linuxkill命令来终止一个进程:
# 查看所有正在运行的进程
ps aux
# 终止进程ID为123的进程
kill -9 123
# 终止所有非root用户的进程
kill -9
# 终止所有非root用户的进程并指定用户
kill -9 -u "user1 user2"
需要注意的是,Linuxkill命令是一种强制结束进程的方式,一旦终止进程,进程的数据将会被清除。如果您不确定要终止的进程是否需要终止,请先确认一下。
拓展: pkill
在Linux系统中,pkill是一个命令行工具,用于终止进程。它的作用类似于Windows系统中的taskkill,但有一些重要的区别。
pkill命令使用类似于taskkill的语法,但是有几个不同之处:
不需要进程名:与taskkill不同,pkill可以使用进程ID(PID)而不是进程名称来终止进程。
可以终止整个进程组:pkill可以同时终止指定的多个进程,而taskkill只能一次终止一个进程。
支持通配符:pkill支持通配符,可以匹配多个进程。
可以使用别名:可以使用别名来快速执行pkill命令,如使用ps命令的别名p。
下面是使用pkill命令的示例:
查找进程ID:使用ps命令查找要终止的进程的ID。
ps aux | grep <进程名称>
终止进程:使用pkill命令终止指定的进程。
pkill <进程名称>
终止进程组:使用pkill命令终止指定的进程组。
pkill -p <进程组ID>
请注意,在使用pkill命令终止进程时,请确保你有足够的权限。否则,可能会导致系统崩溃或数据丢失。
0,标准输入(键盘)
1,标准输出
2,标准错误,
3+,进程在执行过程中打开的其他文件。
&:表示正确错误混合输出
> ----覆盖
>> ----追加
正确输出: 1> 1>> 等价于 > >>
错误输出: 2> 2>>
管道是Linux系统中的一种命令行工具,它将一个命令的输出作为另一个命令的输入,从而实现命令之间的信息传递。使用管道符号(|)可以将一个命令的输出传递给另一个命令。例如,在命令行中输入:
[root@server ~]# ls -l | grep ".txt"
-rw-r--r-- 1 root root 37 Jul 21 10:15 123.txt
-rw-r--r-- 1 root root 0 Jul 22 09:01 a.txt
-rw-r--r-- 1 root root 44 Jul 18 19:14 c.txt
-rw-r--r-- 1 root root 0 Jul 18 09:57 date.txt
-rw-r--r-- 1 root root 50 Jul 18 09:51 error.txt
-rw-r--r-- 1 root root 29 Jul 21 19:52 test.txt
-rw-r--r-- 1 root root 0 Jul 21 20:08 zhanghaoze.txt
这个命令将列出当前目录中的所有文件,并使用grep命令过滤出包含“file”关键字的文件。这里的“|”符号将把“ls -l”命令的输出作为“grep”命令的输入。管道符号也可以使用两个命令的输出,如下所示:
ls | head | grep "file"
这个命令将先列出当前目录中的所有文件,然后使用head命令过滤出前几行(这里使用了head命令的输出),并使用grep命令过滤出包含“file”关键字的文件。
需要注意的是,管道符号不能连接同一级别的命令,只能连接下一级别的命令。此外,如果第一个命令的输出为空,那么后面的命令将不会被执行。
将命令的标准输出保存到文件中,如果文件已存在则会覆盖文件内容。
将命令的标准输出追加到文件中,如果文件不存在则会创建文件。
将文件内容作为命令的输入。
xargs是一个在Linux中常用的命令行工具,用于将输入文件中的行传递给命令作为参数。
将管道前面输出内容转换为参数信息 交给后面命令识别处理 --- 将信息数据分组处理
xargs -nx --- 将指定信息划分多少个组
xargs的使用非常简单,以下是一些常见的使用方法:
使用通配符过滤输入文件中的行:
cat input_file*.txt | xargs -I {} echo {}
这个命令将输出input\_file\*.txt
文件中的所有行,并将它们作为命令行参数传递给echo命令。在这个例子中,\-I {}
选项指定了使用{}
来代表命令行参数。
使用空格分隔命令行参数:
cat input_file*.txt | xargs echo
这个命令将输出input\_file\*.txt
文件中的所有行,并将它们作为命令行参数传递给echo命令。在这个例子中,echo
命令会直接输出参数。
使用空格分隔并重命名命令行参数:
cat input_file*.txt | xargs mv {new_file_name}
这个命令将输出input\_file\*.txt
文件中的所有行,并将它们作为命令行参数传递给mv命令。在这个例子中,mv
命令会将每个参数重命名为new\_file\_name
。
使用管道过滤和传递命令行参数:
grep ‘^abc’ input_file*.txt | xargs -I {} echo {} | cut -d ’ ’ -f 1-2
这个命令将输出input\_file\*.txt
文件中以abc
开头的行,并将它们作为命令行参数传递给echo命令。在这个例子中,\-I {}
选项指定了使用{}
来代表命令行参数,echo {}
将参数重命名为文件名,cut -d ' ' -f 1-2
用于提取文件名和行号。
以上仅是xargs的一些常见使用方法,还有很多其他用法。需要注意的是,xargs命令默认不会忽略空行,因此需要使用选项来指定行结束符,例如:
xargs -s input_file*.txt
这个命令将忽略所有空行。
MBR(Master Boot Record)是计算机操作系统启动的第一个区域,其中包含引导代码和主引导记录(MBR Partition Table)。在MBR模式下,计算机可以支持最多4个主分区。在此模式下,用户可以使用fdisk命令进行分区。
GPT(Guaranteed Extensible Partition Table)是一种替代MBR的新型分区表格。GPT模式下,计算机可以支持大于2TB的主分区。在此模式下,用户可以使用gdisk命令进行分区。GPT具有更好的可扩展性和更高的安全性,可以避免MBR模式下的主分区限制和数据丢失的风险。
mount命令是Linux系统中常用的命令之一,用于挂载和卸载文件系统。其语法如下:
mount [选项] [文件系统] [挂载点]
-o 指定文件系统属性
rw 读写
ro 只读
noexec 不允许执行二进制文件
exec 允许执行二进制文件
auto mount -a 开机自动挂载
remount 在线重新挂载
#mount 设备文件 挂载点目录(空目录)
#umount --- 实现目录与存储设备文件解除关系 卸载过程
#umount 挂载点目录
其中,选项是可选的参数,用于指定挂载方式、权限等;文件系统是要挂载的文件系统类型;挂载点是挂载的目录。
以下是mount命令的详细使用说明:
使用选项参数来指定挂载方式,如使用"-o"选项指定挂载方式,例如"-o loop"表示使用块设备进行挂载;“-o"和”-o"等价。
挂载指定的文件系统,例如挂载NTFS文件系统:
mount -t ntfs /dev/sda1 /mnt/windows
上述命令将使用sda1文件系统挂载到/mnt/windows目录。
除了以上的常规用法,mount命令还可以用于管理不同类型的挂载点,例如使用挂载点作为文件系统类型的名称:
mount /mnt/share -t nfs server:/share /mnt/mountpoint
以上命令将在/mnt/mountpoint目录下挂载来自server的nfs文件系统。
fdisk 是一个命令行工具,用于管理 Linux 或 Unix 操作系统下的磁盘分区。下面是 fdisk 的一些常用参数和含义:
fdisk /dev/sdx
: 使用 /dev/sdx
来代替磁盘的设备名称。/dev/sdx
通常是 /dev/sda
或 /dev/sdb
等设备名称。
/dev/sdx:w
: 清空分区表。在此命令下,/dev/sdx
将清空其分区表,将其分区设置为一个全新的分区表。
/dev/sdx:w
: 创建分区表。在此命令下,/dev/sdx
将创建一个新的分区表,可以为该分区添加新的分区。
/dev/sdx:a
: 将设备添加到 fdisk 配置文件中。在此命令下,/dev/sdx
将添加到 fdisk 的配置文件中,以便在需要时可以方便地重复使用该设备。
/dev/sdx:q
: 退出 fdisk。在此命令下,fdisk 将退出并关闭终端。
/dev/sdx:t
: 创建新分区。在此命令下,/dev/sdx
将创建一个新的分区,其大小和分区类型将由用户指定。
/dev/sdx:p
: 显示分区列表。在此命令下,/dev/sdx
将显示该设备的所有分区信息。
/dev/sdx:d
: 删除分区。在此命令下,/dev/sdx
将删除指定的分区。
注意:使用 fdisk 操作磁盘分区需要小心谨慎,以免误操作导致数据丢失。建议在进行任何更改之前先备份重要数据。
[root@server ~]# fdisk -l /dev/sda #查看系统磁盘与磁盘分区情况
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0008f912
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM
#fdisk 不支持大于 2T 的磁盘,gdisk 支持大于2T磁盘
语法:lsblk [OPTIONS]
参数:
● f 显示分区和文件系统的信息。
● v 显示详细信息。
● c 以逗号分隔显示信息。
● r 按文件系统类型显示。
● s 仅显示大小和名称。
● n 显示设备名称和挂载点。
● M 显示磁盘信息和块大小。
● k 显示设备号和设备类型。
常见选项:
● c:以逗号分隔显示信息。
● f:显示分区和文件系统的信息。
● v:显示详细信息。
● s:仅显示大小和名称。
● n:显示设备名称和挂载点。
● k:显示设备号和设备类型。
● M:显示磁盘信息和块大小。
注意:lsblk命令仅适用于基于Linux的系统。
示例:
[root@server ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 4.4G 0 rom /media/CentOS
显示当前系统上的所有磁盘和分区。
[root@server ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 xfs 92aeb542-b7a2-43ef-9e7e-bb1ea51b6c6a /boot
└─sda2 LVM2_member 8faBFb-KJVx-BJ3c-cfyt-SFQd-TyJh-oCbiJL
├─centos-root xfs bde1a3ef-2acb-48fd-ac4e-0278d5c5e64d /
└─centos-swap swap 95fcccb5-5f5c-4064-8197-a559c8625e4c [SWAP]
sr0 iso9660 CentOS 7 x86_64 2020-11-04-11-36-43-00 /media/CentOS
[root@server ~]#
显示分区和文件系统的信息。
lsblk -s
[root@server ~]# lsblk -s
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda1 8:1 0 1G 0 part /boot
└─sda 8:0 0 20G 0 disk
sr0 11:0 1 4.4G 0 rom /media/CentOS
centos-root 253:0 0 17G 0 lvm /
└─sda2 8:2 0 19G 0 part
└─sda 8:0 0 20G 0 disk
centos-swap 253:1 0 2G 0 lvm [SWAP]
└─sda2 8:2 0 19G 0 part
└─sda 8:0 0 20G 0 disk
[root@server ~]#
仅显示大小和名称。
lsblk -n
[root@server ~]# lsblk -n
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 4.4G 0 rom /media/CentOS
显示设备号和设备类型。
lsblk -m
[root@server ~]# lsblk -m
NAME SIZE OWNER GROUP MODE
sda 20G root disk brw-rw----
├─sda1 1G root disk brw-rw----
└─sda2 19G root disk brw-rw----
├─centos-root 17G root disk brw-rw----
└─centos-swap 2G root disk brw-rw----
sr0 4.4G root cdrom brw-rw----
显示磁盘信息和块大小。
[root@server ~]# blkid
/dev/sda1: UUID="92aeb542-b7a2-43ef-9e7e-bb1ea51b6c6a" TYPE="xfs"
/dev/sda2: UUID="8faBFb-KJVx-BJ3c-cfyt-SFQd-TyJh-oCbiJL" TYPE="LVM2_member"
/dev/sr0: UUID="2020-11-04-11-36-43-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/mapper/centos-root: UUID="bde1a3ef-2acb-48fd-ac4e-0278d5c5e64d" TYPE="xfs"
/dev/mapper/centos-swap: UUID="95fcccb5-5f5c-4064-8197-a559c8625e4c" TYPE="swap"
df -h ---以人类可读方式显示磁盘容量大小
[root@server ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 974M 0 974M 0% /dev
tmpfs tmpfs 991M 0 991M 0% /dev/shm
tmpfs tmpfs 991M 11M 980M 2% /run
tmpfs tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 5.9G 12G 35% /
/dev/sda1 xfs 1014M 213M 802M 21% /boot
tmpfs tmpfs 199M 12K 199M 1% /run/user/42
tmpfs tmpfs 199M 0 199M 0% /run/user/0
/dev/sr0 iso9660 4.4G 4.4G 0 100% /media/CentOS
[root@server ~]# timedatectl
Local time: Fri 2023-07-21 19:39:44 CST
Universal time: Fri 2023-07-21 11:39:44 UTC
RTC time: Fri 2023-07-21 11:39:44
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
扩展: ntpdate
ntpdate命令用于获取系统时间,并使其与可靠的网络时间服务器保持同步。它会在系统时间和网络时间服务器之间同步时间,并自动进行频率调整以确保时间的准确性。使用ntpdate命令,您可以获取UTC时间,并在系统时间和网络时间服务器之间保持同步。要使用ntpdate命令,请执行以下操作:
打开终端或命令提示符。
输入ntpdate命令,后跟网络时间服务器的IP地址或主机名,如下所示:
ntpdate serverip
例如,如果您的网络时间服务器的IP地址是192.168.0.1,则命令如下所示:
ntpdate 192.168.0.1
按Enter键,系统将开始与网络时间服务器同步。
您可以在系统时间发生变化时使用ntpdate命令,以确保时间保持准确。
如果您想在同步之间设置间隔时间,请使用–freq选项,如下所示:
ntpdate serverip --freq 1
这将在同步之间每秒钟进行一次时间调整。 6. 如果您的系统使用了多个网络时间服务器,请使用ntpdate命令的多个IP地址,如下所示:
ntpdate serverip1 serverip2
ntpdate ntp.ubuntu.com
如果您使用的是Linux操作系统,可以使用ntp服务来管理系统时间,该服务默认启用,并自动从可靠的网络时间服务器同步时间。您可以使用命令“systemctl status ntpdate”来检查ntp服务是否正在运行。
ntpdate —可以同步调整时间
ntpdate 时间服务器域名地址
#常用时钟服务器
sed 's#修改前内容#修改后内容#g'
sed -i ---将修改后内容真正写入到磁盘中
[root@server ~]# runlevel
N 5
在Linux系统中,init参数用于指定运行级别或系统初始化的选项。在较新版本的Linux中,通常使用systemd作为初始化系统,而不是传统的SysVinit。因此,以下是一些常用的init参数:
0:关机,将系统完全关闭。
1/Single:单用户模式,也称为救援模式。只加载基本系统服务,不启动网络和图形界面。
2/3/4/5:多用户命令行模式,加载全部系统服务,但没有图形界面。
6:重启,关闭系统然后重新启动。
S/s:单用户模式,类似于运行级别1,但可能会加载更多服务。
emergency:紧急模式,只加载最小限度的服务,用于修复系统问题。
请注意,具体的init参数可能因Linux发行版和版本而异。如果你使用的是系统管理工具(如systemctl),则可能不需要手动指定init参数。建议查阅相关文档或执行man init命令来获取特定系统上可用的init参数的详细列表和说明。
在Unix/Linux系统中,“alias”命令可以创建一个别名,将一个常用的命令转换成另一个易于记忆的名称。使用alias命令,可以让用户更加方便地使用系统中的命令。
alias 别名='命令信息'
unalias ---取消别名设置
unalias 别名
在终端中输入以下命令即可创建一个别名:
alias alias_name='command'
其中,“alias_name”是新创建的别名的名称,“command”是需要被转换成别名的命令。例如,下面的命令将命令“ls”转换成了一个易于记忆的名称“ls_list”:
alias ls_list='ls -lh'
用户可以通过在终端中输入“alias_name”来使用新创建的别名。例如,输入“ls_list”命令可以实现使用“ls”命令列出文件和目录的功能。
此外,用户还可以通过“unalias”命令删除已经创建的别名:
unalias alias_name
例如,要删除“ls_list”别名,可以在终端中输入“unalias ls_list”。
总之,使用“alias”命令可以方便地创建和管理命令别名,提高用户在系统中的使用效率。
在Linux下,file
命令用于检查文件的元数据(meta data),如文件类型、内容长度、权限、创建时间、修改时间等。下面是file
命令的详细说明:
file
命令语法:
file [选项] [文件名]
其中,选项用于指定要检查的文件的类型、语言等信息。常用的选项包括:
\-c
:指定文件类型,例如.cpp
、.html
、.py
等。
\-l
:指定文件的字符串长度,例如.txt
、.pdf
等。
\-p
:指定文件类型为字符串,例如.log
、.conf
等。
\-m
:指定文件类型为可执行文件,例如.exe
、.sh
等。
\-M
:指定文件类型为命令文件,例如.sh
、.bat
等。
\-i
:指定文件类型为可执行文件或可移植二进制文件,例如.dll
、.so
等。
\-d
:指定文件类型为目录,例如.
、..
等。
\-s
:指定文件类型为普通文件,例如.txt
、.html
等。
\-t
:指定文件类型为文本文件,例如.txt
、.log
等。
\-T
:指定文件类型为二进制文件,例如.obj
、.png
等。
\-O
:指定文件类型为已注册的符号链接,例如.so
、.dll
等。
\-o
:指定文件类型为其他,例如.pl
、.cpp
等。
\-S
:指定文件类型为符号链接,例如.lnk
、.lib
等。
\-f
:指定文件类型为文件系统结构(即目录、文件等),例如.dir
、.bak
等。
file
命令常用选项:
\-c
:检查文件类型,并显示文件名和类型,例如:
[root@server ~]# file error.txt
error.txt: ASCII text
上述命令会显示文件类型为ASCII文本文件,并显示行终止符为CRLF。
\-l
:检查文件字符串长度,并显示文件名和长度,例如:
$ file -l /bin/ls
/bin/ls: 4 characters
上述命令会显示文件字符串长度为4。
\-p
:检查文件类型为字符串文件,并显示文件名和类型,例如:
$ file -p /etc/passwd
/etc/passwd: ASCII text, with CRLF line terminators
上述命令会显示文件类型为字符串文件,并显示行终止符为CRLF。
\-m
:检查文件类型为可执行文件,并显示文件名和类型,例如:
$ file -m /bin/sh
/bin/sh: ASCII text, with CRLF line terminators
上述命令会显示文件类型为可执行文件,并显示行终止符为CRLF。
\-M
:检查文件类型为命令文件,并显示文件名和类型,例如:
$ file -M /etc/init.d/nginx
/etc/init.d/nginx: ASCII text, with CRLF line terminators
上述命令会显示文件类型为命令文件,并显示行终止符为CRLF。
\-i
:检查文件类型为可执行文件或可移植二进制文件,并显示文件名和类型,例如:
$ file -i /usr/bin/grep
/usr/bin/grep: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, stripped
上述命令会显示文件类型为可执行文件或可移植二进制文件,并显示其他信息。
\-d
:检查文件类型为目录,并显示文件名和类型,例如:
$ file -d /var/log
/var/log: Directory
上述命令会显示文件类型为目录。
\-s
:检查文件类型为普通文件,并显示文件名和类型,例如:
$ file -s /usr/share/dict/words
/usr/share/dict/words: ASCII text
上述命令会显示文件类型为普通文件,并显示其他信息。
\-t
:检查文件类型为文本文件,并显示文件名和类型,例如:
$ file -t /usr/share/dict/words
/usr/share/dict/words: text
上述命令会显示文件类型为文本文件,并显示其他信息。
\-T
:检查文件类型为二进制文件,并显示文件名和类型,例如:
$ file -T /usr/bin/bash
/usr/bin/bash: text
上述命令会显示文件类型为二进制文件,并显示其他信息。
\-O
:检查文件类型为已注册的符号链接,并显示文件名和类型,例如:
$ file -O /usr/bin/python
/usr/bin/python: symbol lookup error: /usr/bin/python: undefined symbol: main
上述命令会显示文件类型为符号链接,并显示其他信息。
\-o
:检查文件类型为其他,并显示文件名和类型,例如:
$ file -o /usr/share/dict/words
/usr/share/dict/words: ASCII text
上述命令会显示文件类型为其他,并显示其他信息。
\-S
:检查文件类型为符号链接,并显示文件名和类型,例如:
$ file -S /usr/bin/python
/usr/bin/python: symbolic link
上述命令会显示文件类型为符号链接,并显示其他信息。
\-f
:检查文件类型为文件系统结构,并显示文件名和类型,例如:
$ file -f /bin/ls
/bin/ls: regular file
上述命令会显示文件类型为普通文件,并显示其他信息。
file -i /bin/ls
:指定文件类型为可执行文件或可移植二进制文件,例如:
$ file -i /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, stripped
上述命令会显示文件类型为可执行文件或可移植二进制文件,并显示其他信息。
file -p /bin/ls
:指定文件类型为字符串文件,例如:
$ file -p /bin/ls
/bin/ls: ASCII text
上述命令会显示文件类型为字符串文件,并显示其他信息。
[root@server ~]# which ll
alias ll='ls -l --color=auto'
/usr/bin/ls
[root@server ~]# which touch
/usr/bin/touch
拓展: whereis
[root@server ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
[root@server ~]# whereis touch
touch: /usr/bin/touch /usr/share/man/man1/touch.1.gz /usr/share/man/man1p/touch.1p.gz
LVM(Logical Volume Manager)是一种虚拟化技术,可以将多个物理卷组合成逻辑卷,方便管理和使用。LVM的制作分为两个步骤:创建逻辑卷组和挂载逻辑卷。
步骤1:创建逻辑卷组
使用命令lvextend
可以创建逻辑卷组。语法如下:
lvextend /dev/VG/LV /dev/VG/LV +X GB
其中,VG
表示卷组名,LV
表示逻辑卷名,+X GB
表示要添加的空间大小。
例如,创建一个容量为100GB的逻辑卷组:
lvextend /dev/VG/LV /dev/VG/LV 100GB
步骤2:挂载逻辑卷
使用命令mkfs
可以将逻辑卷格式化为文件系统。语法如下:
mkfs.ext4 /dev/VG/LV
其中,ext4
表示要格式化的文件系统类型。
例如,格式化创建的逻辑卷为ext4文件系统:
mkfs.ext4 /dev/VG/LV
使用LVM可以将多个物理卷组合成逻辑卷,方便管理和使用。
步骤1:挂载逻辑卷
挂载逻辑卷需要先创建一个文件系统,并将逻辑卷与文件系统挂载到目录下。
例如,将逻辑卷/dev/VG/LV
挂载到目录/mnt/LV
:
mkdir /mnt/LV
mount /dev/VG/LV /mnt/LV
步骤2:创建分区
使用命令fdisk
可以创建分区。语法如下:
fdisk /dev/VG/LV
其中,/dev/VG/LV
表示要创建分区的设备名。
例如,创建一个大小为100GB的ext4文件系统的分区:
fdisk /dev/VG/LV
n
p
1
(Enter)
t
(Enter)
m
(Enter)
2
(Enter)
y
(Enter)
w
步骤3:格式化分区
使用命令mkfs
可以将分区格式化为文件系统。语法如下:
mkfs.ext4 /dev/VG/LVp1
其中,p1
表示要格式化的分区编号。
例如,格式化第一个分区为ext4文件系统:
mkfs.ext4 /dev/VG/LVp1
步骤4:创建挂载点
使用命令mkdir
可以创建挂载点。语法如下:
mkdir /mnt/LVp1
例如,创建第一个分区的挂载点:
mkdir /mnt/LVp1
使用LVM在线扩容可以在有数据的情况下去扩容。
步骤1:检查物理卷
使用命令vgs
可以查看卷组信息。
例如,查看卷组信息:
vgs
步骤2:检查逻辑卷
使用命令lvs
可以查看逻辑卷信息。
例如,查看逻辑卷信息:
lvs
步骤3:创建扩展分区
使用命令pdquery
可以查看可用的分区。
例如,查看可用的分区:
pdquery /dev/VG/LV
使用命令pdpick
可以选择要扩展的分区。语法如下:
pdpick /dev/VG/LVp1
例如,选择要扩展的分区:
pdpick /dev/VG/LVp1
步骤4:扩展分区
使用命令xresize
可以扩展分区。语法如下:
xresize /dev/VG/LVp1
例如,扩展第一个分区:
xresize /dev/VG/LVp1
例如,在线扩容第一个分区为100GB:
xresize /dev/VG/LVp1 100G
总结:LVM是一种虚拟化技术,可以将多个物理卷组合成逻辑卷,方便管理和使用。使用LVM可以创建逻辑卷组、挂载逻辑卷、创建分区、格式化分区等。使用LVM在线扩容可以在有数据的情况下去扩容。
[root@localhost ~]# lvremove /dev/vg2/lv2
Do you really want to remove active logical volume vg2/lv2? [y/n]: y
Logical volume "lv2" successfully removed
#先移除lv
[root@localhost ~]# vgremove /dev/vg2
Volume group "vg2" successfully removed
#再移除vg
[root@localhost ~]# pvremove /dev/sdc
Labels on physical volume "/dev/sdc" successfully wiped.
#移除pv
```
```ini
#一个vg使用多个pv时,从vg中删除某一个pv
[root@web2 ~]# vgdisplay -v vg3
--- Volume group ---
VG Name vg3
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 7
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 19.89 GiB
PE Size 4.00 MiB
Total PE 5092
Alloc PE / Size 0 / 0
Free PE / Size 5092 / 19.89 GiB
VG UUID mxKCWr-bDBk-B3yf-9oIY-ZPSh-jAza-qpgpGU
--- Physical volumes ---
PV Name /dev/sdb1
PV UUID 3oiIL1-3NLN-0vqX-LBCY-wfR5-SoFm-a67eDb
PV Status allocatable
Total PE / Free PE 1278 / 1278
PV Name /dev/sdb3
PV UUID Ksb2QX-xAFM-B9zb-1Zvf-q6so-V4Xl-vwvhBC
PV Status allocatable
Total PE / Free PE 3814 / 3814
[root@web2 ~]# vgreduce vg3 /dev/sdb3
Removed "/dev/sdb3" from volume group "vg3"
[root@web2 ~]# vgdisplay -v vg3
--- Volume group ---
VG Name vg3
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 8
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 4.99 GiB
PE Size 4.00 MiB
Total PE 1278
Alloc PE / Size 0 / 0
Free PE / Size 1278 / 4.99 GiB
VG UUID mxKCWr-bDBk-B3yf-9oIY-ZPSh-jAza-qpgpGU
--- Physical volumes ---
PV Name /dev/sdb1
PV UUID 3oiIL1-3NLN-0vqX-LBCY-wfR5-SoFm-a67eDb
PV Status allocatable
Total PE / Free PE 1278 / 1278
[root@web2 ~]# pvcreate /dev/sdb3
Physical volume "/dev/sdb3" successfully created.
[root@web02 ~]# lvreduce -L -20G /dev/centos/root
[root@web02 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 4.00m
/dev/sde centos lvm2 a-- <20.00g <20.00g
/dev/sdf vg1 lvm2 a-- <20.00g <20.00g
/dev/sdg lvm2 --- 20.00g 20.00g
/dev/sdi1 lvm2 --- 10.00g 10.00g
[root@web02 ~]# vgreduce centos /dev/sde
[root@web02 ~]# pvremove /dev/sde
grep 参数 "筛选信息 符号做信息匹配 21:.*error" xxx.log
-i ---忽略大小写
-A ---过滤指定行之后内容
-B ---过滤指定行之前内容
-C ---过滤指定行上下内容
-r ---进行递归过滤
-E ---可以识别特殊正则符号
-v ---进行匹配信息取反过滤操作
-o ---只显示过滤匹配的信息
-c ---匹配的信息出现了多少次
找出文件夹下包含 “aaa” 同时不包含 “bbb”的文件,查找到 grep的完整用法:
grep -l ‘boss’ * 显示所有包含 boss 的文件名。
grep -n ‘boss’ file 在匹配行之前加行号。
grep -i ‘boss’ file 显示匹配行,boss 不区分大小写。
grep -v ‘boss’ file 显示所有不匹配行。
grep -q ‘boss’ file 找到匹配行,但不显示,但可以检查grep 的退出状态。(0 为匹配成功)
grep -c ‘boss’ file 只显示匹配行数(包括 0)。
grep “$boss” file 扩展变量 boss 的值再执行命令。
ps -ef|grep “^*user1″ 搜索 user1 的命令,即使它前面有零个或多个空格。
ps -e|grep -E ‘grant_server|commsvr|tcpsvr|dainfo’ 查找多个字符串的匹配(grep -E 相当于 egrep)
案例:
过滤文件中带有root的内容:
[root@server ~]# grep 'root' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
过滤以root开头的行:^ --以什么开头
[root@server ~]# grep '^root' /etc/passwd
root:x:0:0:root:/root:/bin/bash
过滤以bash结尾的行:$ --以什么结尾
[root@server ~]# grep 'bash$' /etc/passwd
root:x:0:0:root:/root:/bin/bash
haoze:x:1000:1000:haoze:/home/haoze:/bin/bash
在Linux系统中,使用find
命令可以快速查找文件和目录。以下是一些基本的find
命令用法:
:::
find -name — 根据名称查找数据
find -inme — 根据名称查找数据(忽略大小写)
find -type — 根据类型查找数据(d目录、f文件)
find -mindepth — 根据目录层级查找数据(从哪个深度开始查找)
find -maxdepth — 根据目录层级查找数据(查找的最深深度)
find -size — 根据文件大小尺寸查找数据 - 小于 + 大于 没有± 表示等于 / 关注数据大小单位
find -mtime — 根据文件时间查找数据
- 最近多少天以内 + 多少天以前 没有+- 表示距离当前时间正好是第几天的数据 不会使用
find -delete — 将找出的文件数据进行删除
find -exec — 将找出的文件数据进行批量处理
find -mmin — 根据文件时间(分钟)查找数据
find -inum — 根据文件inode编号查找文件数据
find -perm — 根据文件权限查找数据
:::
要查找指定文件,请使用find
命令的\-name
选项。例如,要查找名为example.txt
的文件,请使用以下命令:
find /path/to/search -name example.txt #-iname参数不区分大小写搜索
其中,/path/to/search
是要搜索的目录路径。如果您知道文件的完整路径,可以直接使用路径名称,而不是使用/path/to/search
。
要查找指定类型的文件,请使用find
命令的\-type
选项。例如,要查找所有的.txt
文件,请使用以下命令:
find /path/to/search -type f -name "*.txt"
其中,/path/to/search
是要搜索的目录路径。如果您知道文件的完整路径,可以直接使用路径名称,而不是使用/path/to/search
。
要查找指定文件的最后修改时间,请使用find
命令的\-mtime
选项。例如,要查找最近一天内修改过的文件,请使用以下命令:
find /path/to/search -mtime -1
其中,/path/to/search
是要搜索的目录路径。如果您知道文件的完整路径,可以直接使用路径名称,而不是使用/path/to/search
。
要查找指定文件的创建时间,请使用find
命令的\-ctime
选项。例如,要查找最近一天内创建的文件,请使用以下命令:
find /path/to/search -ctime -1
其中,/path/to/search
是要搜索的目录路径。如果您知道文件的完整路径,可以直接使用路径名称,而不是使用/path/to/search
。
要查找指定目录,请使用find
命令的\-path
选项。例如,要查找名为mydir
的目录,请使用以下命令:
find /path/to/search -path "mydir"
其中,/path/to/search
是要搜索的目录路径。如果您知道目录的完整路径,可以直接使用路径名称,而不是使用/path/to/search
。
要查找指定权限的文件,请使用find
命令的\-perm
选项。例如,要查找所有的rwxr-xr-x
权限的文件,请使用以下命令:
find /path/to/search -perm /u=rwx,o=rwx,g=r-x
其中,/path/to/search
是要搜索的目录路径。如果您知道文件的完整路径,可以直接使用路径名称,而不是使用/path/to/search
。
这些是find
命令的一些基本用法,您可以根据您的需要组合使用它们来搜索您需要的文件和目录。
#tar cvf xxxx.tar filename 被打包的文件 ...
c :create 创建
v :verbose 详细信息
f :file 文件
#常用
语法:
#tar cvzf file.tar.gz 源文件
#tar cvjf file.tar.bz2 源文件
z:表示gz压缩
j:表示bz2压缩
案例:
[[email protected] ~]# tar cvf dir1.tar /home/dir10/ #打包目录dir10,将包命名为dir1.tar
[[email protected] ~]# tar xf dir1.tar -C /usr/local/ #将dir1包解压到指定目录
[root@server ~]# stat /etc/sysconfig/network-scripts/ifcfg-ens33
File: ‘/etc/sysconfig/network-scripts/ifcfg-ens33’
Size: 354 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 51925691 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2023-07-21 10:11:00.281009005 +0800
Modify: 2023-07-11 15:18:30.165000199 +0800
Change: 2023-07-11 15:18:30.165000199 +0800
Birth: -
[root@server ~]# locate Desktop
/home/haoze/Desktop
/root/Desktop
/root/Desktop/1.txt
/root/Desktop/10.txt
/root/Desktop/2.txt
/root/Desktop/3.txt
/root/Desktop/4.txt
/root/Desktop/5.txt
/root/Desktop/6.txt
/root/Desktop/7.txt
/root/Desktop/8.txt
/root/Desktop/9.txt
/usr/lib64/girepository-1.0/GDesktopEnums-3.0.typelib
/usr/lib64/girepository-1.0/GnomeDesktop-3.0.typelib
/usr/share/dbus-1/interfaces/org.freedesktop.impl.portal.RemoteDesktop.xml
/usr/share/dbus-1/interfaces/org.freedesktop.portal.RemoteDesktop.xml
/usr/share/dbus-1/services/org.freedesktop.portal.Desktop.service
/usr/share/desktop-directories/Desktop.directory
#updatedb --- 更新系统文件信息数据库
可以使用date命令来显示当前的日期和时间。该命令有许多不同的参数,可以用来控制输出的日期和时间格式。以下是一些常用的参数:
d: 显示从指定日期到现在的天数
D: 设置日期显示格式
s: 更新当前系统日期和时间
下面是一些示例:
# 显示当前日期和时间
date
# 显示从2021-10-01到现在的天数
date -d '2021-10-01' +%j
# 显示日期为2021-10-01的形式
date -D "2021-10-01" +%Y-%m-%d
# 更新当前系统日期和时间
date -s "2021-10-01 13:00:00"
除了上述常用参数外,还有许多其他参数可以用来控制输出的日期和时间格式。例如,可以使用"-h"参数来显示时间以24小时制的形式,使用"-H"参数来显示时间以12小时制的形式。此外,还可以使用"-c"参数来创建一个新的时间戳,或者使用"-m"参数来显示秒数。
语法:
ln 源文件 链接文件 — 创建硬链接
ln -s 源文件 链接文件 — 创建软链接
创建硬链接的命令是使用ln
命令,加上源文件名和链接文件名。例如,如果我们要将/home/user/file.txt
文件与/home/user/link\_file.txt
文件创建一个硬链接,我们可以使用以下命令:
ln /home/user/file.txt /home/user/link_file.txt
创建软链接的命令也是使用ln
命令,但是在加上链接文件名的时候需要使用\-s
选项。例如,如果我们要将/home/user/file.txt
文件与/home/user/link\_file.txt
文件创建一个软链接,我们可以使用以下命令:
ln -s /home/user/file.txt /home/user/link_file.txt
请注意,硬链接和软链接都是指向源文件的别名,它们可以在同一目录中存在。但是,硬链接只能存在于目录中,而软链接可以存在于目录和文件中。此外,软链接不会占用额外的存储空间,而硬链接则会占用相同的存储空间。
history
命令用于列出用户的历史命令记录。可以使用不同的参数来控制输出格式和命令过滤方式。以下是一些常用的参数:
\-n
:指定输出命令数,例如 history -n 5
将输出最近 5 条命令。
\-p
:以段落格式输出命令记录,并在每行末尾添加一个换行符,例如 history -p
将输出每个命令前后都有一个换行符。
\-r
:以反向顺序输出命令记录,例如 history -r
将输出命令的逆序顺序。
\-t
:按时间戳过滤输出,例如 history -t 20
将输出在指定时间范围内的命令记录。
\-s
:输出指定范围内的命令记录,例如 history -s 1000000
将输出在范围内第 1000000 条命令。
-c:清除历史命令记录信息
-w:将内存中记录的历史命令信息立即保存到历史命令文件里面
wget命令是一种用于从互联网上下载文件的命令行工具。以下是使用wget命令下载文件的一些常见用法:
从URL下载文件:
wget http://www.example.com/example.pdf
下载指定目录中的文件:
wget /path/to/directory/*
下载多个文件:
wget http://www.example.com/file1.pdf http://www.example.com/file2.doc
指定下载文件的保存路径:
wget -P /path/to/directory http://www.example.com/file.pdf
使用端口号下载文件:
wget -P /path/to/directory http://www.example.com:8080/file.pdf
从远程服务器下载文件时指定协议:
wget ftp://ftp.example.com/file.zip
以上是一些常见的wget命令用法,当然还有很多其他的用法,具体用法可以根据实际情况进行调整。
yum是一个在基于RPM包管理的Linux发行版中用于安装、更新和删除软件包的命令。以下是使用yum进行软件安装的基本语法:
:::
yum install -y 软件包名称 — 安装软件包
yum erase — 卸载软件程序(将软件以及软件依赖包一并卸载) A(卸载) B(A的依赖软件) C软件同时依赖B软件
yum provides — 检索命令文件属于哪个软件包
yum search — 检索命令文件属于哪个软件包
yum update 软件包名称 —升级软件包
yum update —升级系统中所有已安装的软件包
yum search 软件包名称 —搜索软件包
yum list 软件包名称 —列出可用软件包
yum remove 软件包名称 —删除软件包
yum clean all —清除缓存
#请注意,执行yum命令需要具有root或具有sudo权限的用户才能操作。在使用yum之前,建议先更新软件包列表,以确保您安装的软件包是最新的:
:::
Linux系统下,rpm是一种软件包管理工具,用于管理和安装软件包。rpm文件通常是以rpm格式存储的,可以使用rpm命令来检查、安装、更新或卸载软件包。
例如,要安装一个名为example的软件包,可以使用以下命令:
sudo rpm -ivh example.rpm
其中,-i表示安装软件包,-vh表示显示详细信息,-h指定软件包的目录位置,即example.rpm所在的位置。
如果要更新现有软件包,可以使用以下命令:
sudo rpm -Uvh example.rpm
其中,-U表示更新软件包,-vh表示显示详细信息。
如果要卸载一个软件包,可以使用以下命令:
sudo rpm -e example
其中,-e表示卸载软件包,不需要指定软件包名称。
此外,rpm还提供了一些其他的选项,例如-d可以检查软件包是否已安装,-g可以检查软件包的版本等。更多的选项可以通过man rpm命令来查看。
您可以按照以下步骤配置YUM本地源:
创建一个目录来存储YUM本地源:在Linux系统上,您可以使用以下命令创建一个名为yum.repos.d
的目录:
mkdir /etc/yum.repos.d
在yum.repos.d
目录中创建一个新的文件,命名为您选择的文件名。例如,您可以创建一个名为myrepo.repo
的文件:
sudo nano /etc/yum.repos.d/myrepo.repo
在myrepo.repo
文件中,输入以下内容:
[myrepo]
name=My Repository
baseurl=http://myrepo.com/
enabled=1
gpgcheck=0
gpgkey=http://myrepo.com/pub/repo.key
在上面的代码中,您需要将name
设置为您的本地源名称,baseurl
设置为您的本地源地址,enabled
设置为1表示启用该本地源,gpgcheck
设置为0表示禁用GPG校验,gpgkey
设置为您的本地源GPG密钥的地址。
保存并关闭myrepo.repo
文件。
您现在已经配置了一个YUM本地源。您可以使用以下命令来更新您的软件包列表:
sudo yum makecache
现在,您可以使用sudo yum search
命令来搜索您需要的软件包,或者使用sudo yum install
命令来安装它们。
请注意,您需要在系统中运行sudo yum update
命令来更新所有软件包列表和依赖关系。
ip address show --- 查看系统网卡地址信息
ip address show ethxx --- 查看指定网卡信息
ip a s eth0 --- 查看网卡信息(简写方式查看)
案例:
[root@server ~]# ip addr show
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:cd:a9:a9 brd ff:ff:ff:ff:ff:ff
inet 192.168.100.132/24 brd 192.168.100.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::b876:3ed8:ac13:4959/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: virbr0: mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:89:e6:f9 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
4: virbr0-nic: mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
link/ether 52:54:00:89:e6:f9 brd ff:ff:ff:ff:ff:ff
[root@server ~]#
在Linux系统中,systemctl
是一个管理服务和系统组件的工具。它提供了一种方便的方式来管理和启动/停止/重新启动服务和系统组件,如init进程、systemd进程和守护进程等。systemctl
工具的主要作用是:
启动和停止系统服务
重新启动和恢复系统服务
管理systemd进程和守护进程
配置systemd配置文件
检查服务状态和日志
修改系统配置文件
systemctl {stop|start|restart|status|disable|enable}
systemctl start 服务程序名称 --- 启动服务
systemctl restart 服务程序名称 --- 重启服务
systemctl stop 服务程序名称 --- 停止服务
systemctl status 服务程序名称 --- 查看服务状态
systemctl disable 关闭服务开机自启
systemctl enable 设置服务开机自启
· network --- 网卡服务名称
· sshd --- 远程连接服务
· fire
例如,要使用systemctl
来启动一个服务,可以在终端中键入以下命令:
sudo systemctl start [service name]
要停止服务,可以键入以下命令:
sudo systemctl stop [service name]
要重新启动服务,可以键入以下命令:
sudo systemctl restart [service name]
要查看服务状态,可以键入以下命令:
sudo systemctl status [service name]
要查看服务日志,可以键入以下命令:
sudo journalctl -u [service name]
还可以使用systemctl
工具来修改系统配置文件,例如:
sudo systemctl edit [configuration file]
需要注意的是,systemctl
工具默认情况下只对systemd系统进行支持。如果你的系统不是基于systemd的,你需要安装相应的工具包。例如,如果你的系统使用的是Upstart或者initd系统,你需要安装相应的工具包来使用systemctl
工具。
要在Linux系统中关闭计算机,可以使用shutdown命令。
shutdown命令的基本语法如下:
shutdown [选项] [关闭时间] [退出登录]
其中,选项包括:
h:关闭并重启系统。
t:以秒为单位关闭系统,t表示秒数。
c:强制关闭系统。
k:关闭进程但不关闭系统。
e:关闭系统并进入引导界面。
shutdown -h — 关闭系统
shutdown -r — 重启系统
shutdown -c — 取消关闭或重启计划
关闭系统:
poweroff / init 0
重启系统:
reboot / init 6
退出登录是可选的。如果省略了关闭时间,则默认为现在。
例如,要在5秒钟后关闭系统,可以使用以下命令:
shutdown -s -t 5
这将在5秒钟后关闭系统,并提示用户确认是否关闭系统。
如果想要强制关闭系统,可以使用以下命令:
shutdown -h -t 0
这将立即关闭系统,并在关闭前不会显示任何消息。
如果想要关闭进程但不关闭系统,可以使用以下命令:
shutdown -c
这将立即关闭进程,但不会关闭系统。
crontab是一个用于Linux、MacOS和其他类Unix操作系统的定时任务系统。它允许您设置计划执行某些任务的时间和日期。crontab的语法非常简单,每个时间字段使用以下格式:
分钟:数字0到59,表示60分钟。例如,5表示5分钟。
小时:数字0到23,表示24小时。例如,3表示下午3点。
日期:数字1到31,表示每个月的第一天到最后一天。例如,1表示1月1日。
月份:数字1到12,表示每个月的第一天到最后一天。例如,1表示1月1日。
星期:数字0到6,表示星期一到星期日。例如,0表示星期一,6表示星期日。
短语:一组字符,表示您想要运行的特定任务。例如,*表示每天都运行。
冒号:用于分隔分钟、小时、日期、月份、星期和短语。
换行符:表示每个短语的结束。
要创建一个新的crontab定时任务,请使用以下命令:
crontab -e
这将打开一个文本编辑器,您可以在其中编辑crontab的定时任务。
要设置定时任务,请按照以下步骤操作:
添加一个新的短语行,例如:
0 3 * * * command
这将在每个星期三的凌晨3点运行command
。
在该行后面添加所有其他行,以便您可以设置其他定时任务。例如,如果您想要在每个月的15日和每个星期五的早上7点运行另一个任务,您可以添加以下行:
15 * * * * command1
这将在每个月的15日运行command1
,并在每个星期五的早上7点运行command2
。
一旦您设置了crontab定时任务,您就可以按照所需的时间和日期执行任务。如果您不希望每次运行时都提示输入密码,请在终端中运行以下命令:
sudo crontab -e
这将使用管理员权限编辑crontab。
案例:
注意:小时分钟前面尽量不要填充0
1、下午3点执行
* 15 * * *
2、每天1到5点,每小时执行一次
* 1-5/1 * * *
3、每分钟执行一次
*/1 * * * *
4、每周日上午5点执行
* 5 * * 7
5、每月1号下午5点执行
* 17 1 * *
6、每年1月1号上午5点执行
* 5 1 1 *
7、每周六或 4日凌晨12点整执行
0 * 4 * 6
8、每隔2小时执行一次
* */2 * * *
9、每隔2小时的每一分钟执行一次
*/1 */2 * * *
10、每天的3、5、14、15点整执行
* 3,5,14,15 * * *
*/1 * * * * sleep 10;ls -l
命令 | 用法 | 功能 |
---|---|---|
mkdir | mkdir 目录名称 | 创建一个目录 |
rmdir | rmdir 目录名称 | 删除一个空目录 |
cd | cd 目录名称 | 进入一个目录 |
ls | ls 目录名称 | 列出一个目录内容 |
命令 | 用法 | 功能 |
---|---|---|
touch | touch 文件名 | 新建一个文件 |
rm | rm 文件名 | 删除一个文件 |
cat | cat 文件名 | 打印一个文件内容 |
命令 | 用法 | 功能 |
---|---|---|
cp | mkdir file folder | 将文件file拷贝到目录folder |
mv | mv A B | 移动A到B目录或者从命名 A为B |
ln | ln -s A B | 给A做一个快捷方式,放到B位置 |
命令 | 描述 |
---|---|
help | 显示当前可用的命令列表 |
man [command] | 显示指定命令的详细文档 |
man --help | 显示 man 命令的帮助信息 |
whatis [command] | 显示指定命令的简要文档 |
type [command] | 显示指定命令的执行文件路径 |
whoami | 显示当前用户名 |
exit | 退出当前 shell 会话 |
history | 显示命令历史记录,可通过指定参数重新显示某个历史记录 |
cut | 剪切和筛选文本,可以根据指定的列提取信息 |
paste | 粘贴两个或多个文本段,并将它们连接在一起 |
sed | 编辑和替换文本,支持多种替换模式和文本格式 |
grep | 在文本中搜索指定模式,支持多种匹配模式和通配符 |
awk | 根据指定的规则和表达式,提取和处理文本中的数据 |
awk -f [filename] [option] | 从指定的文件中使用 awk 处理文本 |
sort | 对文本中的数据进行排序,可以按照字母、数字、日期等方式排序 |
uniq | 计算文本中唯一数据的个数,可以通过指定参数统计数据的最大/最小值 |
find | 在文件系统中查找指定的文件或目录 |
mv | 移动和重命名文件或目录,可以使用通配符指定要移动的文件或目录 |
cp | 复制文件或目录,可以使用通配符指定要复制的文件或目录 |
rm | 删除文件或目录,可以使用通配符指定要删除的文件或目录 |
chmod | 修改文件或目录的权限,可以使用通配符指定要修改权限的文件或目录 |
chown | 修改文件或目录的所有者,可以使用通配符指定要修改所有者的文件或目录 |
ln | 创建新的链接文件,可以使用通配符指定要创建链接的文件或目录 |
chdir | 切换当前工作目录,可以使用通配符指定要切换的目录 |
touch | 创建新的文件或更新现有的文件时间戳 |
stat | 显示文件或目录的统计信息,包括文件大小、文件权限等 |
echo | 输出文本或变量的值 |
printf | 格式化输出文本或变量的值 |
cat | 连接和显示文本文件中的行 |
head | 显示文件的前几行,可以通过指定参数指定行数 |
tail | 显示文件的后几行,可以通过指定参数指定行数 |
less | 逐行显示文本文件中的内容,可以使用方向键移动光标 |
more | 逐页显示文本文件中的内容,可以使用方向键移动光标 |
gzip | 对文件进行压缩,可以指定压缩算法和文件名 |
gunzip | 解压缩已压缩的文件 |
tar | 打包和解包文件,可以指定打包的格式和选项 |
zcat | 对压缩的文件进行解压缩,并输出到终端 |
bzip2 | 对文件进行压缩,可以指定压缩算法和文件名 |
bunzip2 | 解压缩已压缩的文件 |
gzip -d | 解压缩已压缩的文件 |
gunzip -c | 解压缩已压缩的文件并输出到终端 |
tar -cvf [filename] [file] | 打包文件到指定的文件中 |
tar -xvf [filename] [file] | 解压缩已打包的文件 |
mvn clean install | 运行 Maven 构建工具 |
git add | 将更改的文件添加到 Git 的暂存区 |
git commit | 提交 Git 的暂存区中的更改到本地仓库 |
git push | 将本地仓库中的更改推送到远程仓库 |
git pull | 将远程仓库中的更改拉取到本地仓库 |
npm install | 安装 Node.js 模块 |
yarn install | 安装 Yarn 模块 |
nvm install [version] | 安装 Node.js 的特定版本 |
npm install -g [package] | 在全局范围内安装 Node.js 模块 |
yarn install -g [package] | 在全局范围内安装 Yarn 模块 |
nvm uninstall [version] | 卸载 Node.js 的特定版本 |
nvm install --default [version] | 默认安装 Node.js 的特定版本 |
nvm uninstall [version] | 卸载 Node.js 的特定版本 |
nvm use [version] | 使用 Node.js 的特定版本 |
nvm alias [aliasname] [version] | 创建一个新的别名,将指定的版本与指定的别名关联起来 |
nvm unalias [aliasname] | 从 Node.js 中删除指定的别名 |
命令 | 作用 |
---|---|
reboot | 重启系统 |
shutdown | 关闭系统 |
halt | 关闭系统,但保留硬盘 |
grace-shutdown | 延迟关闭系统,让用户选择关闭时间 |
logout | 用户退出系统 |
shutdown -h now | 强制关闭系统,立即执行 |
poweroff | 关闭系统,并将硬盘数据保存到挂载点 |
shutdown -s -t 5 | 关闭系统,并延迟5秒钟执行 |
注:上述命令均可通过终端或命令行执行。
Linux打包命令 | 功能描述 | 用法 |
---|---|---|
tar | 创建、打包和解压文件 | tar -cvf |
tar | 创建、打包和解压文件 | tar -xvf |
tar | 创建、打包和解压文件 | tar -czvf |
tar | 创建、打包和解压文件 | tar -zcvf |
gzip | 对文件进行压缩 | gzip |
tar | 创建、打包和解压文件 | tar -xvf |
tar | 创建、打包和解压文件 | tar -xzvf |
tar | 创建、打包和解压文件 | tar -cvzf |
tar | 创建、打包和解压文件 | tar -czvf |
zip | 对文件进行压缩 | zip |
tar | 创建、打包和解压文件 | tar -xvf |
tar | 创建、打包和解压文件 | tar -xzvf |
tar | 创建、打包和解压文件 | tar -cvzf |
tar | 创建、打包和解压文件 | tar -czvf |
这些打包命令可以将文件打包成多种压缩格式,并提供了灵活的解压和解包功能。其中tar命令是最常用的,可以打包和解包任意类型的文件和目录。其他命令如gzip、zip和tar的压缩和解压命令都与tar类似,但它们是不同的软件包。
磁盘管理命令 | 用法 |
---|---|
fdisk |
用于创建、编辑和删除磁盘分区表。 |
parted |
用于创建、编辑和删除磁盘分区表,还可以在分区上进行格式化和删除等操作。 |
parted -m /dev/sda |
在指定设备上创建、编辑和删除磁盘分区表。 |
mkfs |
用于格式化磁盘分区,使其可以被操作系统识别和使用。 |
mke2fs |
用于创建Linux分区文件系统。 |
mkfs.ext3 |
用于创建ext3文件系统。 |
mkfs.ext4 |
用于创建ext4文件系统。 |
resize2fs |
用于调整ext3和ext4文件系统的大小。 |
df |
显示文件系统的磁盘使用情况,包括总大小、已使用大小、可用空间等信息。 |
du |
显示指定目录的磁盘使用情况,包括文件大小、文件数量等信息。 |
truncate |
用于调整文件大小,将其压缩到指定大小。 |
rm |
用于删除文件和目录。 |
rmdir |
用于删除空目录。 |
mv |
用于移动和重命名文件和目录。 |
cp |
用于复制文件和目录。 |
mkswap |
用于创建Swap分区。 |
swapon |
用于开启或关闭Swap分区。 |
swapoff |
用于关闭Swap分区。 |
:::
bash, :, ., [, alias, bg, bind, break, builtin, caller, cd, command,
compgen, complete, compopt, continue, declare, dirs, disown, echo,
enable, eval, exec, exit, export, false, fc, fg, getopts, hash, help,
history, jobs, kill, let, local, logout, mapfile, popd, printf, pushd,
pwd, read, readonly, return, set, shift, shopt, source, suspend, test,
times, trap, true, type, typeset, ulimit, umask, unalias, unset, wait
:::
:::
/ – 根目录 目录之间分隔符
· – 文件名称前面有点开头, 表示隐藏文件
-- 可以表示匹配任意且只有一个字符
… – 上一级目录
-- 表示家目录信息
- – 两个目录之间相互切换
* – 匹配符号 匹配任意字符信息(根据文件名称查找文件时)
.* – 匹配符号 匹配任意字符信息(根据文件内容查找文件信息时)
> – 标准输出重定向符号 作用: 清空指定文件信息 echo xxx > 文件
>> – 标准追加输出重定向符号 作用: 在文件中添加信息
< – 标准输入重定向符号
<< – 标准追加输入重定向符号 cat >> 文件 << EOF … EOF
$ – 一行内容结尾定位符
^ – 一行内容行首定位符
\ – 转义符号
将没有意义的字符信息变得有意义 \n \t \r
将有意义的字符信息变得没有意义 grep "\.$" test.txt
| – 管道符号 将前一个命令执行的结果交给后面的命令进行识别处理
-- 正则符号 或者
&& – 代表多个条件都要满足/ 前一个命令执行成功再执行后一个命令
|| – 代表多个条件满足其一/ 前一个命令执行失败再执行后一个命令
:::
:::
“” 可以解析识别特殊符号信息 $ `` $() 信息中有空格符号时需要构成一个整体时
‘’ 所见即所得
`` 在引号里面放入命令信息,将引号里面命令结果交给引号外面命令再次进行处理识别
没有引号 基本上没有引号和有双引号作用相同,需要输出序列信息时,不能加双引号
:::
:::
PS1 — 修改命令提示符信息
LANG — 修改系统字符编码
PATH — 定义命令文件所存储路径信息
:::
:::
终端快捷键:
Ctrl + a/Home 切换到命令行开始
Ctrl + e/End 切换到命令行末尾
Ctrl + l 清除屏幕内容,效果等同于clear Ctrl + u 清除剪切光标之前的内容
Ctrl + k 剪切清除光标之后的内容
Ctrl + y 粘贴刚才所删除的字符
Ctrl + r 在历史命令中查找 (这个非常好用,输入关键字就调出以前的命令了)
Ctrl + c 终止命令
ctrl + o 重复执行命令
Ctrl + d 退出 shell,logout
Ctrl + z 转入后台运行,但在当前用户退出后就会终止
Ctrl + t 颠倒光标所在处及其之前的字符位置,并将光标移动到下一个字符
Alt + t 交换当前与以前单词的位置
Alt + d 剪切光标之后的词
Ctrl+w 剪切光标所在处之前的一个词(以空格、标点等为分隔符) Ctrl+(x u) 按住 Ctrl 的同时再先后按 x 和 u,撤销刚才的操作 Ctrl+s 锁住终端
Ctrl+q 解锁终端
!! 重复执行最后一条命令
history 显示你所有执行过的编号+历史命令。这个可以配合!编辑来执行某某命令
!$ 显示系统最近的一条参数
最后这个比较实用,比如我先用 cat /etc/sysconfig/network-scripts/ifconfig-eth0,然后我想用 vim 编辑。一般的做法是先用↑ 显示最后一条命令,然后用 Home 移动到命令最前,删除 cat,然后再输入 vim 命令。其实完全可以用 vim !$来代替。
:::
:::
系统中大部分配置改动之后, 需要重启服务程序, 加载修改后的配置
系统对大小写是敏感
系统操作命令之后,没有任何消息,有可能是最好的消息
系统目录结构顶点就是根目录(一切从根开始)
运维人员所有操作或配置过程,都需要检查确认
在系统中一切皆文件
局部设置会优先于全局设置
系统中命令信息和所安装的软件包名称并不一定一致
交互过程: 方便初级运维人员管理系统服务程序
免交互过程:高级运维人员提高工作效率
:::