linux 笔记 (1)
du查看某个文件或目录占用磁盘空间的大小
du -sh : 查看当前目录总共占的容量。而不单独列出各子项占用的容量
du --max-depth=1 -h:查看当前文件夹下磁盘的使用状况
特殊字符:
.:表示任意一个字符,一定是【一个】任意字符
:表示匹配任意字符零次或多次
例如:.a.:意为任意字符后跟字符a,再跟任意字符0次或任意多次
.*:表示零个或多个任意字符
[]:如果^在中括号内则表示反向选择
1:cat 文件名称:显示文件的内容(从第一行显示到最后一行)
2:tac 文件名称:显示文件的内容(从最后一行显示到第一行)
3:seq seq用于产生从某个数到另外一个数之间的所有整数
例如:seq 1 5 >>>输出1,2,3,4,5
4:rev 文件名称:倒叙输出
例如:文件a,内容如下:hello world
执行rev a后将输出:dlrow olleh;
5:sleep :睡眠
sleep 1 睡眠1秒
sleep 1s 睡眠1秒
sleep 1m 睡眠1分
sleep 1h 睡眠1小时
sleep 1d 睡眠1天
6:unset 删除变量的赋值
7:-eq:相等
-ne:不相等
-gt:大于
-ge:大于/等于
-lt:小于
-le:小于/等于(当返回的是0代表为true,返回代表false)
8:tar打包:
(1):打包成.tar.gz结尾的文件:
(2):解压.tar.gz打包的文件:
(3):打包成.tar.bz2结尾的文件:
(4):解压.tar.bz2文件:
(5):zip压缩:zip a.zip a:此命令用于把a文件压缩成a.zip文件
解压.zip格式的文件:unzip a.zip
(6):tar -tzf oracle.tar.gz:此命令列出归档文件oracle.tar.gz中的所有文件列表
(7):tar -xzvf oracle.tar.gz:该命令将归档文件分解并解压缩到原有文件的路径中。
9:cp -r 源文件 目标文件:考贝
例如:cp -r a.txt work/(此命令的含义是:把a.txt文件考贝到work文件下)
10:"删除命令:rm
rm -i 文件名称:删除文件之前询问
rm -r 文件名称:删除文件及文件下的目录
rm -f 文件名称:不经确认删除(直接删除)
11:移动目录或文件:mv
mv /tmp/xxx.tar /root:此命令用于将/tmp/xxx.tar文件移动到/root下
mv aaa.tar bbb.tar:此命令是将文件aaa.tar更名为bbb.tar
12:cat 文件名称:查看文件内容(如果要同时查看多个文件内容,文件名称之间用空格隔开)
13:su 用户名:它可以让一个普通用户拥有超级用户的权限
14:chmod:用于改变文件或目录的访问权限
语法格式:chmod [who] [+|-|=] 文件名
15:chown:用于更改某个文件或目录的属主和属组
语法格式:chown [用户:组] 文件
16:kill [-s 信号] 进程号:kill命令可以用于终止后台进程
17:git log -n --pretty=oneline:显示最近的n条分区
18:git log -p -1:显示日志的时候同时显示改动
19: date:显示当前时间
21:sed命令的使用方法:
案例一:
sed -n '3p' aaa:表示打印aaa这个文件中的第3行的内容
显示指定范围内的内容:
sed -n 'num1,num2p' 文件名称(num1表示开始位置,num2表示结束位置)
例如:
sed -n '1,3p' aaa:表示只查看aaa这个文件的第1行到第3行的内容
sed '1,3d' filename:删除1到3行的内容
sed '/My/,/You/d' filename:删除包含“My”的行到包含"You"的行之间的行
sed
‘/My/,10d' filename:删除从'My'开始到第10行的内容
删除行的操作:使用d
sed '1d' filename:删除第一行
sed '$d' filename:删除最后一行($在此表示最后一行的意思)
sed '1,2d' filename:删除第一行到第二行(此处的逗号表示从什么到什么的意思)
sed '2,$d' filename:删除第2行到最后一行的内容
显示某行:使用p
sed -n '1p' aaa:显示aaa文件的第一行
sed -n '$p' aaa:显示aaa文件的最后一行
sed -n '1,2p' aaa:显示aaa文件的第一行到第二行
sed -n '2,$p' aaa:显示aaa文件的第二行到最后一行
使用模式查询:
sed -n '/a/p' aaa:在文件aaa中查询含有关键字a所在的行
sed -n '/$/p' aaa:在文件aaa中查询包括关键字$所在的所有行,使用反斜线\屏蔽特殊含义
增加一行或多行字符串:
sed '1a drink tea' aaa:在文件aaa的第一行中添加字符串"drink tea"
sed '1,3a drink tea' aaa:在文件aaa的第一行到第三行后增加字符串"drink tea"
sed '1a drink tea\n or office' aaa:在文件aaa中的第一行后增加office(第一行后增加多行使用换行符\n)
代替一行或多行:
sed '1c hi' aaa:将文件aaa的第一行代替为hi
sed '1,3c hi' aaa:把文件aaa的第一行到第3行代替为hi
替换:
sed 's/a/hello/g' aaa:把文件aaa中的a替换成hello
删除一个字符:
sed 's/a//' aaa:删除文件aaa中的字符a
sed 's/$//' aaa:删除文件aaa中的字符$($是特殊符号,要使用\屏蔽)
将替换结果写入一个文件中用w选项
sed 's/a/hell/w sed.out' aaa:将文件aaa中的a替换成hello并写入到sed.out文件中(此处需要把文件名写在单引号中)
当需要从第N行开始匹配,可以使用/Ng
例如:echo this thisthisthis | sed 's/this/THIS/3g'
删除空行:
Sed ‘s/^$/d’ file
此处的^$表是空行
22:特殊符号:
*:可以匹配文件名中的任何字符串
?:使用可以匹配文件名中的任何单个字符
[!0-9]*:表示0-9非数字的任意字符串
22:&&:命令1 && 命令2:表示如果命令1执行成功,命令2才会被执行
||:命令1 || 命令2:表示如果命令1示执行成功,那么就执行命令2
23:{}:匹配模式结果出现的次数
A{n}B:匹配模式出现n次
A{N,}B:匹配模式出现最少n次
A{n,m}B:匹配模式出现n到m次之间,n/m是0-255之间的任意整数
24:df:检查linux服务器的文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
25:head和tail命令:
head -20 filename:查阅文件前20行
tail -7 filename:查阅文件后7行
26:echo "hello world" | tar "[a-z]" "[A-Z]"表示将小写转换成大写最终输出:HELLO WORLD
echo "HELLO WORLD" | tr "[:upper:]" "[:lower:]"表示将小写转换成大写最后输出:hello world
将文件从小写转换为大写并将结果存入一个新文件
echo "hello world" | tr "[a-z]" "[A-Z]" > newfile.txt
27:shell变量
变量名称=变量值
案例如下:
x=100(定义一个变量x=100)
echo ${aa}(输出变量x)
结合变量值:
echo ${变量1}${变量2}
例如:
aa=100(定义变量aa)
bb=200(定义变量bb)
echo ${a}${b}(输出结果为100200)
查看所有只读变量:readonly
环境变量的定义语法格式:变量名=变量值;export 变量名
案例如下:
a=100;export a(定义一个a=100的环境变量)
env:查看所有环境变量
set:查看所有的变量
删除环境变量:unset 变量名称
案例如下:
unset a(删除a这个环境变量)
28:$?检查命令的执行结果,如果返回值为0则表示执行成功,返回值为1则表示执行失败
30:测试数值
-eq:相等(=)
-ne:不相等
-gt:第一个数大于第二个数
-lt:第一个数小于第二个数
-le:第一个数小于等于第二个数
-ge:第一个数大于等于第二个数
31:expr的基本语法:expr argument operator argumet
案例如下:
expr 10 + 10(计算两个数的和)
expr 30 / 3(求两个数相除后的结果)
expr 2 * 3(求两个数相乘的结果,注意当使用乘号时,前现要加上反斜杠\)
在上面的案例中注意符号两边要加上空格,不然会报错
32:if 条件
fi
或者使用
案例一:
1 #!/bin/bash
2
3 if [ "10" -lt "12" ](如果10小于12,此处的-lt代表小于号的意思)
4 then(那么)
5 echo "10小于12"(输出10小于12)
6 fi(结束语)
案例二:
1 #!/bin/bash
2
3 echo -n "Enter your name : "(请输入你的名字)
4 read NAME(读取用户输入的名字,read在此处读取从键盘的输入)
5 if [ "$NAME" = "" ];then(如果名字为空)
6 echo "You did not enter any information"(输出信息)
7 fi(结束语)
scp命令的使用方法:
scp就是secure copy,一个在linux下用来进行远程拷贝文件的命令。
一、将本机文件复制到远程服务器上
scp /home/administrator/news.txt root@192.168.6.129:/etc/squid
/home/administrator/ 本地文件的绝对路径
news.txt 要复制到服务器上的本地文件
root 通过root用户登录到远程服务器(也可以使用其他拥有同等权限的用户)
192.168.6.129 远程服务器的ip地址(也可以使用域名或机器名)
/etc/squid 将本地文件复制到位于远程服务器上的路径
二、将远程服务器上的文件复制到本机
scp remote@www.abc.com:/usr/local/sin.sh /home/administrator
remote 通过remote用户登录到远程服务器(也可以使用其他拥有同等权限的用户)
www.abc.com 远程服务器的域名(当然也可以使用该服务器ip地址)
/usr/local/sin.sh 欲复制到本机的位于远程服务器上的文件
/home/administrator 将远程文件复制到本地的绝对路径
注意两点:
1.如果远程服务器防火墙有特殊限制,scp便要走特殊端口,具体用什么端口视情况而定,命令格式如下:
scp -p 4588 remote@www.abc.com:/usr/local/sin.sh /home/administrator
2.使用scp要注意所使用的用户是否具有可读取远程服务器相应文件的权限。
1#从远程服务器中下载数据文件到本地主机
如果你想从远程主机host1中的/tmp/目录下拷贝test1 文件到本地主机的/tmp目录,那么可以在本地主机的命令行下面
输入命令:
scp root@host1:/tmp/test1 /tmp
2 从远程服务器中拷贝目录文件到本地主机下面
当你从远程主机中拷贝一个目录的时候,你需要给scp命令传入一个“-r“ 选项,这样scp命令就会将远程主机下面的整个目录的文件都拷贝的本地主机下。
输入下面的命令:
scp -r root@hots1:/tmp�0�2 /tmp
这个命令就会把host1主机下的tmp目录拷贝到本地主机的/tmp目录下
3 将本地主机的文件拷贝到远程服务器上
如果要将本地主机的 /tmp目录下的test1文件拷贝到远程主机的/tmp目录下,可以在本地主机输入下面的命令:
scp /tmp/test1 root@host1:/tmp
这样test1文件就会被拷贝到远程服务器上了。
4将本地主机下的目录上传到远程服务器
这个和刚才第二步的命令类似,就是需要传”-r” 参数给linux scp 命令,输入下面的 scp 命令:
scp -r /tmp root@hots1:/tmp
上面的命令会把本地主机的/tmp目录上传到远程主机host1的/tmp目录下。
linux打包命令:
zip命令的使用:
压缩命令:
(-r:表示递归压缩子目录下所有文件)
zip -r xxx.zip ./*:表示压缩服务器上当前目录的内容为xxx.zip文件
zip all.zip *.jpg:将所有.jpg的文件压缩成一个zip包
解压缩命令:
unzip test.zip
将压缩文件test.zip在当前目录下解压缩
unzip -n text.zip -d /tmp
将text.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件
unzip -v text.zip
查看压缩文件目录,但不解压
如何设置crontab的编辑为vim
export EDITOR=vim
或者:
export EDITOR=/usr/bin/vim.basic
chmod命令的使用方法:
chmod -R 644 /a/b/c:使用-R选项将目录下的所有文件连同各个子目录下的文件的权限全部设置为文件属主和同组用户可读和写
Find命令的使用:
按照时间查找文件:mtime
用-号来限定更改时间在距今n日以内的文件,用+号来限定更改时间在跟今n日以前的文件
例如:查找更改时间在3日以前的文件
Find /var/adm -mtime +3 -print
例如:查找更改时间在5日是以内的文件
Find / mtime -5 -print
Mount:在当前文件中查找,不进入其他文件系统
例如:在当前文件中查找以XC结尾的文件
Find . -name “*.XC” -mount -print
定时任务学习:crontab
0,30 18-23 * * * /apps/bin/dbcheck.sh
上面的例子表示:每天的18-23点,每隔30分钏执行/apps/bin/dbcheck.sh脚本文件
Echo命令的使用:
Echo -n :输出之后不进行换行
Echo -e :可以使转义字符生效
Grep命令的使用:
-v:显示不包含匹配文本的所有行
-n:显示匹配行及行号
-i:不区分大小写
精确匹配:在抽取字符后面加上>,例如:
Grep “48>” data.f(表示在data.f文件中查找只包含48的行,其中>用于精确匹配)
Grep使用正则表达式时,最好用单引号括起来
Shell中$与${}的区别:
去掉左边(键盘上#在$的左边)
%去掉右边(键盘上#在$的右边)
单一符号是最小匹配,两个符号是最大匹配
${#var}:可以输出变量的长度
例如:var=abc
Echo ${#var} ============>3
expr:测试反回结果为1表示成功,反回结果为0,表示失败
$?:测试上一条命令的执行结果,返回结果是0表示成功,返回结果为1表示失败
ls命令:
ls -A:显示除”.”和”..”外的所有文件
ls -a:列出所有以”.“点开头的隐藏文件
Basename:命令用于去掉路径信息,返回纯粹的文件名,如果指定的文件的扩展名,则将扩展名也一并去掉。
basename的语法是:basename[选项][参数]
例 如:basename /home/test/test.txt .txt===》test
例如:basename /home/test/test.txt=》test.txt
basename $0
值显示当前脚本或命令的名字
$# 是传给脚本的参数个数
$0 是脚本本身的名字
$1 是传递给该shell脚本的第一个参数
$2 是传递给该shell脚本的第二个参数$@ 是传给脚本的所有参数的列表
$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$$ 是脚本运行的当前进程ID号
$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误
Z\c :测试字母Z是否悬于行尾
Substr:分隔字符串(${str:begin:len})
数组:用${#数组名[@或*]}可以得到数组的长度
用${数组名[下标]} 下标是从0开始,下标是: *或者@得到整个数组内容
nl filename:可以用来显示文件行号
获取字符串的长度:length=${#var}
df用来检查linux服务器的文件系统的磁盘空间占用情况
命令格式:
df 选项 文件:显示指定磁盘的可用空间如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示
strings:打印文件中可打印的字符
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具