Linux 操作说明
一、目录处理命令
1.查看当前位置:pwd
2.切换所在目录:cd 【目录】 英文原意:change directory
cd /root
cd ~ 进入当前用户的家目录
cd
cd .. 进入上级目录
cd . 进入当前目录
3.建立目录:mkdir -p 【目录名】 英文原意:make directories
mkdir -p /root/lainxi
-p 递归创建
4.删除空目录:rmdir 【目录名】 英文原意:remove empty directories
5.删除文件或者目录:rm -rf 【文件名或者目录名】 英文原意:remove
rm -rf /root/lianxi
-r 删除目录
-f 强制删除
6.复制命令:cp 【选项】【原文件或者目录】【目标目录】 英文原意:copy
cp -a /root/lianxi /tmp/lianxi
7.剪切或者改名命令:mv 【原文件或者目录】【目标目录】 英文原意:move
mv /root/lianxi /tmp
-r 复制目录
-p 连带文件属性复制
-d 若原文件是链接文件,复制链接属性
-a 相当于-pdr
8.常见目录的作用:
l /根目录
l /bin 命令保存目录(普通用户就可以读取的命令)
l /boot 启动目录,启动相关文件
l /dev 设备文件的保存目录
l /etc 配置文件的保存目录
l /home 普通用户的家目录
l /lib 系统库的保存目录
l /mnt 系统挂载目录
l /media 挂载目录
l /root 超级用户的家目录
l /tmp 临时目录
l /sbin 命令保存目录(超级用户才能使用的目录)
l /proc 直接写入内存
l /sys 内存的过载点
l /usr 系统软甲资源目录
/usr/bin/系统命令(普通用户)
/usr/sbin/系统命令(超级用户)
l /var 系统相关内容
二、链接命令
1.链接命令:ln -s 【原文件】【目标文件】 英文原意:link
ln -s /root/lianxi /tmp/lianxi.soft 创建软链接
ln /root/lianxi /tmp/lianxi.hard 创建硬链接
-s 创建软连接
2.软链接和硬链接的区别:
硬链接特征:
l 拥有相同的inode 节点和存储 block 块,可以看做是同一文件,类似于python 中的深拷贝
l 可以通过i节点识别
l 不能跨分区
l 不能针对目录使用,只能用于文件
l 删除原文件,不影响硬链接文件,文件还可以正常使用
l 硬链接文件路径:硬链接有自己的路径,可以直接通过硬链接文件的i 节点号找到硬链接文件数据
软链接特征:
l 类似于Windows 的快捷方式
l 软链接拥有自己的i 节点和 block 块,但是数据块中保存原文件的文件名和节点号,并没有实际的文件数据
l Irwxrwxrwx I软链接 软链接的权限都为 rwxrwxrwx
l 修改任意文件(原文件或者软链接文件),另一个都改变
l 删除原文件,软链接不能使用
l 软链接文件寻找原文件路径:用户找到软链接,软链接找到自己的i节点号,软链接i 节点号找到软链接数据(原文件名和原文件的 i 节点号),通过软链接数据找到原文件的 i节点号,原文件i 节点号找到原文件数据
l 建立软链接必须写绝对路径或者和目标文件在一个文件夹
三、文件搜索命令
1.文件搜索命令:locate 【文件名】 在后台数据库按文件名搜索,搜索速度更快
locate /root/lianxi
/var/lib/mlocate 这个文件是 locate 命令所搜索的后台数据库
后台的数据库每一天更新一次所以当我们搜索当天建立的文件的时候是搜索不到的,需要输入update 命令强制更新数据库,然后再重新进行搜索
2.搜索命令的命令:whereis 【命令名】 搜索命令所在路径及帮助文档所在的位置
whereis ls
-b bind 只查找可执行文件
-m master 只查找帮助文件
which 【文件名】 搜索命令所在路径及别名
PATH环境变量:定义的是系统搜索命令的路径
3.文件搜索命令:find 【搜索范围】【搜索条件】 搜索文件
find / -name install.log
尽量避免大范围的搜索,会非常消耗系统资源
find /root -iname install.log 不区分大小写(ignore在起作用)
find /root -user root 按照所有者进行搜索 (-user为使用者)
find /root -nouser 查找没有所有者的文件 (-nouser为没有所有者)
find /var/log/ -mtime +10 查找10天前修改的文件
-10 10天内修改的文件
10 10天当天修改的文件
+10 10天前修改的文件
atime 文件访问时间 activetime
ctime 改变文件属性时间 changetime
mtime 修改文件内容时间 modifytime
find -size 25k 查找文件大小是25kb 的文件
find -size 25M 查找文件大小是25Mb 的文件
注意:k 为小写,M为大写,不能搞错
-25k 小于25kb 的文件
25k 等于25kb 的文件
+25k 大于25kb 的文件
find . -inum 22222 查找节点是22222的文件
find /etc -size +20k -a -size -50k
查找/etc 目录下,大于20kb 并且小于50kb 的文件
-a and 逻辑与,两个条件必须同时满足
-o or 逻辑或,两个条件满足一个即可
find /etc -size +20k -a -size -50k -exec ls -lh {};
查找/etc 目录下大于20kb 并且小于50kb 的文件,并且表示详细信息(-exec 命令 {}; 对搜索结果进行执行操作)
例如:find -inum 222222 -exec ls -lh {};
4.搜索字符串命令:gerp【选项】字符串 文件名 在文件当中匹配符合条件的字符串
grep -i “aaa” /root/lianxi
-i 忽略大小写 ignore
-v 排除指定字符串
5.find与 grep 的区别:
find 命令:在系统中搜索符合条件的文件名,如果需要匹配使用通配符进行匹配,通配符为完全匹配
grep 命令:在文件中搜索符合条件的字符串,如果需要匹配使用正则表达式进行匹配,正则表达式为包含匹配
四、帮助命令
1.帮助命令:man 命令 获取指定命令的帮助 英文原意:manul
man ls
man -f 命令 查看命令拥有那个级别的帮助类似于 whatis 命令
man -k 命令 查看和命令相关的所有帮助类似于 apropos 命令
2.man 的级别:
1:查看帮助命令
2:查看可被内核调用的函数的帮助
3:查看函数和函数库的帮助
4:查看特殊文件的帮助(主要是/dev 目录下的文件)
5:查看配置文件的帮助
6:查看游戏的帮助
7:查看其它选项的帮助
8:查看系统管理员可用命令的帮助
9:查看和内核相关文件的帮助
3.选项帮助:命令--help 获取命令的选项的帮助
ls --help
4.shell 内部命令的帮助:help shell 内部命令 获取 shell 内部命令的帮助
help cd
如何判断命令是不是shell 内部命令:
whereis cd 如果不显示可执行文件就是shell 内部的命令
5.详细命令帮助info:info 命令
info ls
-回车 进入子帮助页面(带有*标记)
-u 进入上层页面
-n 进入下一个帮助小节
-p 进入上一个帮助小节
-q 退出
五、压缩命令
1..zip压缩命令:zip 【压缩后的文件名】【源文件】
zip lianxi.zip lianxi
zip -r 【压缩文件名】【源目录】
zip -r lianxi.zip /root/lianxi
.zip解压缩:unzip 【压缩文件】
unzip lianxi.zip
2..gzip压缩命令:gzip 【源文件】 压缩为.gz格式的压缩文件,源文件会消失
gzip lianxi
gzip -c 【源文件】>【压缩文件】 源文件保留
gzip -c lianxi >lianxi.gz
gzip -r 【目录】 压缩目录下的所有子文件,但是不压缩目录
gzip -r /root/lianxi[
.gz解压缩:gunzip 【压缩文件】
3..bz压缩命令:bzip 2【源文件】 压缩为.bzip2格式的压缩文件,不保留源文件
bzip2 -k 【源文件】保留源文件
bzip2不能压缩目录
4..tar.gz压缩命令:tar -zcvf lianxi.tar.gz 【源文件】
lainxi.tar.gz 实际操作:现将lianxi 文件打包为 lianxi.tar 格式 的文件,然后再压缩为lainxi.tar.gz格式压缩文件
-z zip 压缩为 tar.gz格式文件
-c contract 打包
-v view 显示压缩过程
-f file 显示压缩后的文件名
.tar.gz 解压缩命令:tar -zxcf lianxi.tar.gz
-x 解包
5..tar.bz压缩命令:tar -jcvf lianxi.tar.bz 【源文件】
.tar.bz 解压缩命令:tar -jxvf lianxi.tar.bz
六、关机与重启命令
1.shutdown命令:shutdown 【选项】【时间】
-c:取消前一个命令
-h:关机 now(立刻关机) 10:10(今天10:10关机)
-r:重启 now(立刻重启)+10(十分钟后重启)
2.其他重启命令:reboot 等同于 shutdown -r now
3.其他关机命令:halt 等同于shutdown -h now 和 poweroff
4.系统运行级别:
0:关机
1:单用户
2:不完全用户,不包含NFS服务
3:完全多用户
4:未分配
5:图形界面
6:重启
七、其他常用命令
1.查询和自动挂载命令:
mount 查询系统中已经挂载的设备
mount -a 根据配置文件/etc/fstab的内容自动挂载
2.挂载命令格式:mount 【-t 文件系统】【-o 特殊选项】设备文件名 挂载点
mount -t iso9660
-t:文件系统,加入文件系统化类型来指定挂载的类型,可以是ext3,ext4,iso9660等文件系统
-o特殊选项:可以指定挂载的额外选项
3.挂载光盘:
mkdir /mnt/cdrom/ 建立挂载点
mount -t iso9660 /dev/cdrom(光盘位置) /mnt/cdrom (挂载位置) 挂载光盘
mount /dev/sr0 /mnt/cdrom
4.卸载光盘:umount 设备文件名或挂载点
umount /mnt/cdrom
5.挂载U盘:fdisk -l 查看U盘设备文件名
mount -t vfat /dev/sdb1 /mnt/usb/
6.查看用户登录信息:w who
7.查询当前登录或者过往登录信息:last
8.查询用户最后一次登录信息日志:lastlog
八、shell 基础
1.别名:alias 【命令别名】=【命令】
alias ls=“ls -a”
2.别名永久生效:vi /root/.bashrc 写入环境变量配置文件
3.删除别名:unalias 别名
4.历史命令:history 【选项】【历史命令保存文件】 显示全部曾操作的命令
-c:清空历史命令
-w:把缓存中的历史命令写入历史命令保存文件~/.bash_history
使用上下键调取历史命令
5.多命令顺序执行
6.管道符:命令一| 命令二 命令一的执行结果是命令二的操作对象
touch lianxi | tar -zxvf lianxi.tar.zip lianxi
7.通配符
九、vim 文本编辑器
1.vi 编辑器操作模式:Command Mode-命令模式
Insert Mode-输入模式
Last Line Mode - 底行模式
例子:
vim abc,编辑 abc 文件,如坐不存在就直接创建
vim +/lianxi abc 打开文件后光标直定位到lianxi 第一次出现的位置
进入文件后按a 进入编辑插入状态,编辑完成后按 esc 退出编辑状态,输入‘’:wq‘’ 保存退出
十、磁盘管理
1.df 查看磁盘分区使用状况
-l 仅显示本地磁盘
-a 显示所有文件系统的磁盘使用情况
-h 以1024进制计算最合适的单位显示磁盘容量
-H 以1000进制计算最合适的单位显示磁盘容量
-T 显示磁盘分区类型
-t 显示指定类型文件系统的磁盘分区
-x 不显示指定类型文件系统的磁盘分区
2.du 统计磁盘上的文件大小
-b 以byte 为单位统计文件大小
-k 以KB为单位统计文件大小、
-m 以MB为单位统计文件大小
-h 按照1024进制以最合适的单位统计文件大小
-H 按照1000进制以最合适的单位统计文件大小s
-s 指定统计目标
3.磁盘分区:fdisk 【选项】 【磁盘路径】
十一、用户及用户组管理
1.添加用户:useradd 【用户名】
2.删除用户:userdel 【用户名】
3.赋予权限:chmod -c 777 【文件名】
4.添加用户组:groupadd 【组名】
5.删除用户组:groupdel 【组名】
十二、shell
1.定义变量:变量名=“值”
2.使用变量:echo ${变量名} 或者 echo “$变量名” 或者 echo $变量名
3.只读变量:readonly 变量名
4.删除变量:unset 变量名
5.字符串:
1) 单引号与双引号的区别:
单引号里边的任何字符都会被原样输出,单引号字符串中的变量是无效的
单引号字符串中不能出现单独一个单引号,但是可以成对出现,作为拼接字符串使用
双引号里边可以有变量
双引号利可以出现转义字符
2) 拼接字符串
your_name="zhangsan"
# 使用双引号拼接
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting $greeting_1
# 使用单引号拼接
greeting_2='hello, '$your_name' !'
greeting_3='hello, ${your_name} !'
echo $greeting_2 $greeting_3
输出结果:
hello,zhangsan ! hello,zhangsan!
hello,zhangsan ! hello,${zhangsan} !
3) 获取字符串长度
string=“asdfg”
echo ${#string}
4) 提取字符串
string=“asdfghjkl”
echo ${string:1:5}
5) 查找字符串
string=“asdfghjkl”
echo ·expr index ${string} s`(此处为反引号)
6.数组
1) 定义数组:array_name=(value1 value2 value3 )(以空格隔开)
2) 读取数组:echo ${array_name[@]}
3) 获取数组长度:echo ${#array_name[@]}或者 echo ${#array_name[*]}
7.基本运算
1) 四则运算(+ - * /)
a=10
b=10
c=$(($a+$b)) 或者 c=`expr $a + $b` 或者 c=$[$a+$b]
ecch $c
2) 关系运算符(eq ne gt lt ge le)
a=10
b=10
if [ $a -eq $b ] then echo ‘相等‘ else echo‘不相等’ fi
3) 布尔运算符(!-o -a)
a=10
b=10
if [ $a != $b ] then echo’a 不等于 b’ else echo‘a 等于 b’ fi