linux操作系统笔记1
基本命令格式
[redhat@localhost~]$
$:使用的shell,$表示普通用户,#表示root(管理员)用户
redhat:表示当前登录的用户,su(-)切换用户,whoami 查看当前登录的用户
localhost:表示主机名称,hostname查看主机名称,还可以临时修改(hostname 英文名称),永久修改(hostnamectl set-hostname 英文名称)
~:表示当前的工作目录,~表示用户的家目录,一般是:/home/用户
./ :是当前目录,一般根据实际的位置有关,pwd可以判断当前位置
../ :是上级目录,一般是当前位置的上一级的目录,也可以通过pwd判断位置
sudo 命令是提权命令,在没有权限执行的时候,在命名最前面加上该命令就会用root身份执行,但是会要求执行时输入密码,看不见但是输入正确即可。
Linux中的目录类似于windows里面的文件夹
@:表示分隔符
root用户的家目录,/root
普通用户的家目录,/home/用户同名的文件
pwd:这个指令用来查看当前所在的工作目录
history:显示用户在当前会话以及之前会话中执行过的命令列表,每条命令前面都有一个编号
history -c:清除当前会话的历史记录
history -d <编号>:删除历史记录中的某一条命令
ctrl + alt +enter :全屏/退出虚拟机
ctrl + alt +t :快速呼出终端,Ubuntu中有效,Redhat无效
ctrl + shift + +:终端字符变大
ctrl + -:终端字符缩小
ctrl + l :清屏操作
alt + tab :切换操作任务
uname -a:查看系统内核版本命令
cat /etc/redhat-release : 查看系统发行版本命令
如果在操作命令的过程中终端提示符不能正常返回,可以使用ctrl + c 终止本次命令操作;
两种补全:
补全命令:输入命令关键词的前几个字符,按tab键补全
补全文件名和目录名:输入文件的前几个字符,按tab键补全
liunx命令格式
命令格式:主命令 格式 参数
Linux下的文件类型分为如下7种:
'-' 普通文件
'd' 目录文件(文件夹)
'b' 块设备
'c' 字符设备
'l' 符号链接文件(快捷方式)
'p' 管道文件pipe
's' 套接字文件 socket文件,用于网络通信
Linux文件权限和类型关系:
drwxr-xr-x ==权限等于0755
第一列d是文件类型
第二,三,四列:rwx r是只读(4) ,w只写(2) ,x执行(1), rwx可读可写可执行 4+2+1=7 拥有者权限
第五,六,七列:r-x r只读(4),- 无只写,x执行,r-x可读不可写可执行 4+0+1=5 组员权限
第八,九,十列:r-x r只读(4),- 无只写,x执行,r-x可读不可写可执行 4+0+1=5 其他人权限
切换目录:cd 路径
命令帮助:help命令,man命令
绝对路径
以正斜杠开始
完整的文件的位置路径
可用于任何想指定一个文件名的时候
相对路径
不以斜线开始
指定相对于当前工作目录或某目录的位置
可以作为一个简短的形式指定一个文件名
ls:查看目录下有哪些文件
ip a,ifconfig:获取IP地址
ping 网址/IP:(主查服务器网络通畅)
ssh ip;ssh 用户@ip:远程连接的命令
mkdir:功能是创建目录文件
若创建的目标目录已经存在,则会提示已存在而不继续创建,不覆盖已有文件
若目录不存在,则立即创建一个目录
可以创建具有嵌套的依赖关系,/Dir1/Dir2/Dir3/Dir4,要一次创建需要加入 -p 参数。
语法格式:mkdir 参数 目录名
常用参数:-m 创建目录的同时设置权限
-v 显示执行过程详细信息
-p 递归创建多级目录
-z 设置目录安全上下文
参考案例:
mkdir Dir1 创建一个目录文件,默认的目录权限是755权限 rwxr-xr-x
mdir -m 700 Dir2 创建一个目录文件并设置700权限,不让除所有主以外的任何人读、写、执行它mkdir Dir3 Dir4 Dir5 一次性创建多个目录文件
mkdi -p /Dir1/Dir2/Dir3/Dir4/Dir5 在系统根目录中,一次性创建多个有嵌套关系的目录文件
ls:功能是显示目录中的文件及其属性信息。
默认不添加任何参数的情况下,ls命令会列出当前工作目录中的文件信息。
语法格式:ls 参数 文件名
常用参数:
-a 显示所有文件及目录(包括以 . 开头的隐藏文件)。
-A 显示除 . 和 .. 外的所有文件(包括隐藏文件),不显示当前目录和父目录。
-l 以长格式(详细信息)列出文件(权限、所有者、大小、修改时间等),显示文件的详细属性信息。
-t 按修改时间排序(最新优先)。
-r 反向排序,依据首字母将文件 以相反次序显示
-S 按文件大小排序(大文件优先)。
-R 递归列出子目录内容。
-X 依据扩展名将文件排序显示。
-i 显示文件的 inode 编号。
--color 以彩色显示信息。
-m 以逗号为间隔符,水平显示文件信息。
参考示例:
ls -l 以详细信息模式输出文件名及其属性信息,简写ll
cd:功能是更改当前所处的工作目录,路径可以是绝对路径,也可以是相对路径
语法格式:cd 参数 目录名
常用参数:
-L 切换至符合链接所在的目录
~ 切换至用户家目录
-p 切换至符合链接对应的实际目录
.. 切换至当前位置的上一级目录
-切换至上一次所在目录
参考示例:
cd ./dir 切换到当前目录下的指定目录
cd ../dir 切换到上级目录的指定目录
cd / 直接进入到根目录所在位置
cd ./dir1/xxx/yyy 切换当前位置下的多层级目录
cd ../../../ 通过多次的上级目录,切换到上级的上级的上级目录
mv:mv命令是英文move的缩写,中文译为"移动",功能与英文含有相同,能对文件进行剪切和重命名操作。
语法格式:mv 参数 源文件名 目标文件名
常用参数:
-b:当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
-i:如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
-f:如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件(强制覆盖目标文件而且不询问)
-n:不要覆盖任何已存在的文件或目录。
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作(当源文件比目标文件更新时,才执行覆盖操作)
-v:显示执行过程详细信息
-Z:设置文件安全上下文
参考示例:
mv file1.cfg file2.cfg 将file1.cfg文件重命名为file2.cfg文件,注意源文件必须存在。
mv file2.cfg ./Dir1 将指定文件file2.cfg移动到./Dir1目录中,保留文件原始名称
mv Dir1 ./dir11/Dir2 将指定目录移动到/dir11目录中,并定义新的目录名称
mv -f ./dir11/* 将/dir11目录中所有的文件都移动到当前工作目录中,若遇到文件已存在则直接覆盖
rmdir:其功能是删除空目录文件。rmdir命令仅能删除空内容的目录文件,如需删除非空目录时,需要使用带有-R参数的rm命令进行操作。而rmdir命令的递归删除操作(-p参数使用)并不意味着能删除目录中已有的文件,而是要求每个子目录都必须是空的。
语法格式:rmdir 参数 目录名
常用参数:
-p 递归处理所有子文件
-v 显示执行过程详细信息
参考示例:
rmdir Dir 删除指定的空目录,如果是非空目录则删除失败
rmdir -p Dir 删除指定的空目录及其内部的子空目录
rmdir -v Dir 删除指定的空目录并显示删除的过程
touch:功能是创建空文件与修改时间戳。
如果文件不存在,则会创建一个空内容的文本文件
如果文件已经存在,则会对文件的Atime(访问时间)和Ctime(修改时间)进行修改操作
管理员可以完成此项工作,而普通用户只能管理主机的文件。
语法格式:touch 参数 文件名
常用参数:
-a 设置文件的读取时间记录
-t 设置文件的时间记录
-c 不创建新文件
-d 设置时间与日期
-m 设置文件的修改时间记录
参考示例:
touch File{1..5}.txt 结合通配符,创建多个指定名称的空文件,file属于文件前缀,.txt属于文件后缀,{1..5}是文件创建编号边界
touch -d "2023-05018 15:44" File.cfg 修改指定文件的查看时间和修改时间
gedit:编辑器只能在可视化界面操作
功能是用于编辑文本信息,是gnome桌面环境的文本编辑器
语法格式:gedit 参数 文件名
常用参数:
-f 忽略部分错误信息
-R 递归处理所有子文件
-s 使用独立模式
-w 使用独占方式打开文件
-v 显示执行过程详细信息
参考示例:
gedit File.cfg 打开并编辑指定的文件
gedit --encoding=UTF-8 File 打开文件时使用的字符编码
cat:功能是在终端设备上显示文件内容。cat命令适合查看内容较少的纯文本文件,对于内容较多的文件,使用cat命令查看后会在屏幕上快速滚屏,用户往往看不清所显示的具体内容,只好按Ctrl+C组合键中断命令执行,所以对于大文件,干脆用more命令显示。
语法格式:cat 参数 文件名
常用参数:
-n:显示行号,会在输出的每一行前加上行号(空行也编号)。
-b:显示行号,但只对非空行进行编号(空行不编号)。
-s:压缩连续的空行,只显示一个空行,显示行数(多个空行算一个编号)。
-E:在每一行的末尾显示 $ 符号。
-T:将 Tab 字符显示为 ^I。
-v:显示一些非打印字符。
参考示例:
cat -n file 查看指定文件的内容并显示行号
cat /dev/null > file 搭配空设备文件和输出重定向操作符,清空指定文件的内容
cat /dev/cdrom > rhel.iso 搭配输出重定向操作符,将光盘设备制作成镜像文件
more 查看大文件内容使用,可以通过空格和enter键翻页,默认在文件开头位置。
head 无论文件大小,默认查看前10行,可以通过head -n xxx 查看指定行文件。
tail 无论文件大小,默认查看后10行,可以通过tail -n xxx 查看指定行文件
stat 查看文件的属性信息,包括文件大小,权限,链接,时间,类型,属主...
chmod :功能是改变文件或者目录权限的命令。默认只有文件的所有者和管理员可以设置文件权限,普通用户只能管理自己文件的权限属性。设置权限时可以用数字法,也可以用字母表达式,对于目录文件,建立加入-R参数进行递归操作。这意味着不仅对于目录本身,而且也对目录内的子文件/目录进行新权限的设定。
语法格式:chmod 参数 文件名
常用参数:
-c 改变权限成功后再输出成功信息
-f 改变权限失败后不显示错误信息
-R 递归处理所有子文件
-v 显示执行过程详细信息
参考示例:
chmod 0775 File.cfg 设定某个文件的权限为0775
chmod a+r File.cfg 设定某个文件让任何人都可以读取
chmod -R a+r Dir 设定某个目录及其内部的子文件可被任何人读取
chmod u+s ./testFile 为某个二进制命令文件新增SUID特殊权限位
chmod u+r a.txt 所属用户增加可读权限
chmod u-r a.txt 所属用户减少可读权限
chmod u=r a.txt 所属用户设置可读权限
chmod a+r a.txt 给所有人增加可读权限
chmod u+x, g+w a.txt 同时修改多个权限
chmod 777 a.txt 给所有人增加读、写、执行权限
chmod -R 777 目录 修改目录及目录下所有文件的权限
一般情况,目录的默认权限是0755,普通文件的权限是0644
chown:超级用户用来修改文件的属主和文件组权限
-c : 显示更改的部分的信息
-f : 忽略错误信息
-h :修复符号链接
-v : 显示详细的处理信息
-R : 处理指定目录以及其子目录下的所有文件
rm:英文remove缩写,中文译为消除,功能是删除文件或目录,一次可以删除多个文件,或者递归删除目录及其内的所有子文件。rm -rf /*命令会清空系统中所有的文件,甚至无法恢复回来,所以在执行前一定要确认在哪个目录,到底要删除什么文件,考虑好后再敲击enter键。
语法格式:rm 参数 文件名
常用参数:
-d 仅删除无子文件的空目录
-i 删除文件前询问用户是否确认
-v 显示执行过程详细信息
-f 强制删除文件而不询问
-r 递归删除目录及其内全部子文件
参考示例:
rm File.cfg 删除文件时默认会进行二次确认,敲击y进行确认
rm -i file.cfg 二次确认后删除,不确认文件保留
rm -f File.cfg 强制删除文件而无须二次确认
rm -rf Dir 删除指定目录及其内的全部子文件,一并强制删除
rm -f *.txt 强制删除当前工作目录内所有以.txt为后缀的文件
rm -rf ./* 强制清空当前所在位置的文件,但千万不要在根目录或一级子目录执行
rm -rf /* 强制清空服务器系统内的所有文件(慎用!!!)
cp:功能是复制文件或者目录,cp命令能将一个或者多个文件或目录复制到指定位置,常用于文件的备份工作。-r参数用于递归操作,复制目录时若忘记添加则会直接报错。-f参数则用于当目录文件已存在时会直接覆盖而不再询问。
语法格式:cp 参数 源文件名 目录文件名
常用参数:
-a 功能等价于pdr参数组合
-l 对源文件建立硬链接,而非复制文件
-b 覆盖目标文件前先进行备份 -p 保留源文件或目录的所有属性信息
-d 复制链接文件时,将目标文件也建立为链接文件 -r 递归复制所有子文件
-f 若目标文件已存在,则会直接覆盖
-s 对源文件建立软链接,而非复制文件
-i 若目标文件已存在,则会询问是否覆盖
参考示例:
cp File1.cfg File2.cfg 复制指定的源文件,并定义新文件的名称
cp -r Dir1 Dir2 复制指定的源目录,并定义新目录的名称
cp -a File1.cfg File2.cfg 复制文件时,保留其原始权限及用户归属信息
cp -f File1.cfg /dir1 将指定文件复制到/dir1目录中,并覆盖已有文件,不进行询问
cp File1.cfg File2.cfg /dir2 将多个文件一同复制到/dir2目录中
注意:拷贝操作,会有新的一份文件生成,所有源文件依旧存在
如果只需要一份文件,而是移动了文件的位置请用mv命令
cp xxx.txt yyy.txt zzz.txt ./dir1 拷贝文件到指定目录,源文件依旧存在
mv xxx.txt yyy.txt zzz.txt ./dir1 移动文件到指定目录,源文件不存在
使用这些命令之前,建议ls 查看文件是否存在,如果不存在cp/mv会操作失败
共享文件拷贝:
从共享中拷贝文件到虚拟机的家目录:cp /mnt/hgfs/share/???.txt
从家目录拷贝别的我呢见到共享文件目录:cp ~/xxx.txt /mnt/hgfs/share
从u盘拷贝东西到家目录:cp /media/u盘地址/???.txt ~
ln:功能是为了某个文件在另一个位置建立同步的链接
Linux系统中的链接文件有两种形式,一种是硬链接,另一种是软链接
软链接相当于windows系统中的快捷方式文件,原始文件被移动或删除后,软链接也将无法使用
硬链接则是将文件的inode属性块进行了复制,因此把原始文件移动或者删除后,硬链接文件依旧可以使用
语法格式:ln 参数 源文件名 目标文件名
常用参数:
-b 为已存在的目标文件创建备份 -s 对源文件创建软链接
-d 允许管理员创建目录的硬链接 -S 设置备份文件的后缀
-f 强制创建链接而不询问 -t 设置链接文件存放于哪个目录
-i 若目标文件已存在,则需要用户二次确认 -v显示执行过程详细信息
-L 若目标文件为软链接,找到其对应文件 -backup 备份已存在的文件
-n 将指向目录的软链接视为普通文件 -P 若目标文件为软链接,直接链接它自身
-r 创建相对于文件位置的软链接
参考示例:
ln File1.cfg linkFile2.cfg 为指定的源文件创建快捷方式(默认为硬链接形式)
ln -s File1.cfg linkFile2.cfg 为指定的源文件创建快捷方式(设定为软链接形式)
ln -v File.cfg File2.cfg 为指定的源文件创建硬链接,并输出制作的过程信息
pwd:功能是显示当前工作目录的路径,即显示所在位置的绝对路径,在实际工作中,我们会在不同目录之间切换,为了防止迷路,使用pwd命令快速查看当前所处的工作目录路径,方便后续展开工作
语法格式:pwd 参数
常用参数:
-L 显示逻辑路径
-P 显示实际物理地址
vi/vim命令:是一个编辑器
命令模式:(刚进入vim)移动光标,gg光标移动到首行第一个字母,G移动到最后一行,^光标跳转至行首,$光标跳转行尾,0是移动到行首,ctrl+f是屏幕滚动向下,ctrl+b是屏幕滚动向上,快捷操作(使用快捷键)
编辑模式:aiso AISO切换(只能在命令模式下切换到编辑模式)
编辑命令:
插入 i/I i在光标当前插入
I在光标行开头插入
附加 a/A a 在光标后增
A 在光标行最后增加
新行 o/O o 在光标行下新起一行
O 在光标行上面新起一行
删除 x/X x 删除光标所在处字符
X 删除光标前面的字符
可以nx/nX 表示删除多少个字符
删除行 dd/D dd 删除光标所在行
D 从光标所在位置开始到行末位
dgg 删除光标所在行到文件开头的所有数据
dG 删除光标所在行到文件未尾的所有数据
u 用来插销刚才的操作
剪贴与粘贴:
dd 剪贴一行 p 粘贴一行
复制与粘贴:
yy 复制一行 p 粘贴一行
复制与移动:底行模式下执行
:开始行,结束行co目标行
例如:1,2 co 5 把第一行到第二行复制到第五行
:开始行,结束行 m 目标行
例如:1,2 m 5 把第一行到第二行移动到第五行
移动到指定行: :行号 行号G
查找与替换命令:
查找:
在命令模式使用 / 在其后直接写需要查询的关键字 然后 回车.==》n/N 来查询
n表示从光标处开始往下找
N表示从光标处开始往上找
/\<xx\> 表示严格匹配查找 xx 字符
比如:/\<printf\> ==>严格匹配,只查找该单词
/printf ==> 模糊匹配,只要包含该单词都高亮显示在当前文档中严格匹配查找单词printf
替换:
:g/s1/s//s2/g
将文件中所有的s1字符串都替换成s2,s1和s2可以使字母也可以是字符串
比如:g/printf/s//PRINTF/g
将当前文档中所有的小写printf全部替换成大写的printf
:s /old/new 将当前行中查找到的第一个字符 "old" 替换为 "new"
:s /old/new/g 将当前行中查找到的所有字符 "old" 替换为 "new"
:n1,n2 s/old/new/g 在行号 "n1,n2" 范围内替换所有的字符串 "old" 为 "new"
:% s/old/new/g 将整个文件内的字符串 "old" 替换为 "new"
其他常用操作:
u 撤销刚才的操作 挂起 ctrl+z
关键字补齐 ctrl+n 恢复 fg
显示不同 set diff 去掉显示不同语法 set nodiff
. 重复刚才的动作 显示行号 set nu
自动缩进 "=" 关闭行号 set nonu
sp(:vsp)文件名 横(纵)向窗口,ctrl+w 多窗口切换
:g/word/d 查找含有 "word" 的行并删除
:r/dir/file 在当前文件中读入其他文件内容
:n1,n2 d 删除n1-n2行内容
保存退出命令:
wq 保存退出 q 不保存退出
x 保存退出 wq! 强制保存退出
q! 强制不保存退出
wq /home/linux/xxx.c 指定位置保存文件
末行模式:(输入命令)(在命令模式下切换,/或者:)
tar指令:
tar命令可以为linux的文件和目录创建档案。
利用tar,可以为某一特定文件创建档案(备份文件)也可以在档案中改变文件,或者向档案中加入新的文件。tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。
最初用于将文件打包到磁带设备中,但现在广泛用于在文件系统中打包和压缩文件。
tar 通常用于将多个文件和目录打包成一个归档文件,称为 "tarball"(通常带有 .tar 扩展名)。
tar 本身不压缩文件,但可以与压缩工具(如 gzip 或 bzip2)结合使用,创建压缩的归档文件(如 .tar.gz 或 .tar.bz2)。
语法:tar (选项) (参数)
常用参数:
-c:创建一个新的归档文件。
-x:解压归档文件。
-t:列出归档文件的内容。
-r:向现有归档文件中追加文件。
-u:仅追加比归档文件中已有文件更新的文件。
-d:找到归档文件中与文件系统不同步的差异。
-A:将一个 .tar 文件追加到另一个 .tar 文件中。
操作案例:
压缩解压缩文件:
打包:tar -cvf xxx.tar xxx
将xxx文件/目录打包成为xxx.tar 包文件
解包:tar -xvf xxx.tar
将xxx.tar 包文件,释放到当前目录中
注意:如果要指定位置解包 tar -xvf xxx.tar -C path
压缩:zip xxx.zip xxx
将xxx文件压缩为xxx.zip的压缩文件
如果是目录文件则为 zip -r xxx.zip xxx
解压缩:unzip xxx.zip
将xxx.zip压缩文件解压缩到当前目录
如果要指定目录解压缩必须 unzip xxx.zip - d path
打包压缩命令(两个方式):
tar -zcvf xxx.tar.gz xxx
将xxx文件/目录 打包压缩为 xxx.tar.gz 文件
tar -jcvf xxx.tar.bz2 xxx
将xxx文件/目录 打包压缩为 xxx.bar.bz2 文件
可以将文件用 -C 参数指定解压缩到目录,比如:tar -zcvf xxx.tar.gz xxx -C /temp
解压缩包命令(两个方式):
tar -zcvf xxx.tar.gz
将压缩文件直接解压缩解包到当前目录
tar -jxvf xxx.tar.bz2
将压缩文件直接解压缩解包到当前目录