Linux文件目录命令
touch 1.txt | 创建一个空文件 | ||||||||||||||||||||||||||||||
rm ./1.txt ./2.txt -rf | 删除文件/目录 -rf最好放最后 | ||||||||||||||||||||||||||||||
echo "Hello, world!" | cat > newfile.txt | 创建新文件 | ||||||||||||||||||||||||||||||
echo "New line" >> existingfile.txt | 追加内容到文件 | ||||||||||||||||||||||||||||||
echo -n #去掉换行符打印 | echo打印 -E #不解析转义字符 -e #解析转义字符 | ||||||||||||||||||||||||||||||
cat > /etc/hosts << EOF Aa Bbb EOF | 覆盖文件内容 | ||||||||||||||||||||||||||||||
cat >> /etc/hosts << EOF 192.168.1.162 k8s-master01 192.168.1.165 k8s-work01 192.168.1.166 k8s-work02 EOF | 追加多行到文件 | ||||||||||||||||||||||||||||||
cat filename cat -n example.txt | 显示文件内容 显示文件内容并带行号 | ||||||||||||||||||||||||||||||
cat file1 file2 > output.txt | 合并多个文件内容 | ||||||||||||||||||||||||||||||
cat -n filename # 显示带行号的内容 cat -b filename # 显示非空行的行号 cat -e filename # 在每行末尾添加 $ 符号 | cat -n 文件 #显示行号 -E 文件 #在文件内容每行行尾加一个$(验证每行尾是否有空格) -b 文件 #将查看文件显示行号,排除空行显示行号; -s 文件 #当文件有多个连续空行的时候,会只显示一行空行(为了方便阅读); | ||||||||||||||||||||||||||||||
cat -A file1 file2 | 显示多个文件内容,并区分文件 | ||||||||||||||||||||||||||||||
cat file1.txt file2.txt > combined.txt | 将多个文件合并到一个文件中 | ||||||||||||||||||||||||||||||
cat sys.log|grep 路牙泊位车辆变化,向巡检员 | 过滤文件 | ||||||||||||||||||||||||||||||
cat filename | tail -n +3000 | head -n 1000 | 从第3000行开始,显示1000行。即显示3000~3999行 | ||||||||||||||||||||||||||||||
tail -10 /var/log/secure tail -f /var/log/secure 监控文件变化 | 查看文件最下方的十行(最新的十行) | ||||||||||||||||||||||||||||||
head -13 /var/log/secure | head查看文件(从上往下查看) | ||||||||||||||||||||||||||||||
more 文件名 #按照分页查看大文件 f/b #上下翻页(上下键) less 文件名 f/b #上下翻页(上下键) G最后一行 gg第一行 ,q退出 | 分页查看大文件 | ||||||||||||||||||||||||||||||
查看日志常用: head/tail/less/more | |||||||||||||||||||||||||||||||
#查看目录下详细信息==ll命令 # ls -l #查看目录下的隐藏信息【-a】 # ll -a #查看目录下详细信息,以人类可读的方式【-h】 # ll -h / #查看目录本身信息【-d】 # ll -d /usr/ drwxr-xr-x. 13 root root 155 7月 17 10:46 /usr/ # ls -ld /usr/ drwxr-xr-x. 13 root root 155 7月 17 10:46 /usr/ ls -lt # 按时间降序 -t时间 ls -ltr # 按时间升序 -r逆序 | 查看目录
| ||||||||||||||||||||||||||||||
file 文件 stat 文件 | 查看一个文件属于什么类型的文件(图片,视频,文本)( | ||||||||||||||||||||||||||||||
# stat 1.txt 文件:"1.txt" 大小:43 块:8 IO 块:4096 普通文件 设备:803h/2051d Inode:67168133 硬链接:1 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 最近访问:2024-07-29 10:16:33.868745358 +0800 #最近查看时间 最近更改:2024-07-29 10:16:33.868745358 +0800 #最近编辑时间 最近改动:2024-07-29 10:16:33.868745358 +0800 #属性信息发生变化的时间 | 文件属性-时间属性 | ||||||||||||||||||||||||||||||
# 创建硬链接: ln 源文件 目标文件 #创建软链接。 ln -s 源文文件或目录 目标文件或目录 # 最常用( 移动软连接文件软连接不会失效) ln -s 目标文件绝对路径 软连接文件名称 | #硬链接:删除源文件,硬链接依旧可以访问;- 就是文件的入口;直接指向inode号码,多个硬链接互为硬链接,只能给文件创建硬链接,防止误删除文件; #软连接:就是快捷方式.删除源文件,软连接失效,可用给文件,目录创建软连接; ##################################### 目录有多少个硬链接????? 一个目录的硬链接: · 目录自己本身 · 目录中的【.】 · 下级目录【..】 ------目录无法无法创建硬链接----- | ||||||||||||||||||||||||||||||
# echo "123456" | tr "123456" "654321 # tr "ddd" "ccc" < a.txt | 替换 tr | ||||||||||||||||||||||||||||||
pwd -P | 显示绝对路径(软连接目录pwd不会显示绝对路径) | ||||||||||||||||||||||||||||||
cd - | 返回上次目录 | ||||||||||||||||||||||||||||||
# dirname /etc/hostname /etc | 命令去除文件名中的非目录部分 | ||||||||||||||||||||||||||||||
cp -r /usr/lib /var/lib 复制目录 #复制当前目录下的文件到/mnt目录下 # cp 1.txt /mnt/ #复制并改名 # cp -r /mnt/999 ./111 | 复制目录或文件 -r递归复制, -p 保持属性不 -a == -pdr -d 复制软连接 | ||||||||||||||||||||||||||||||
cp /var/log/secure ./secureb-`date +%F` cp /var/log/secure /a/b/log/secure-`date +%F`.log | 备份文件 | ||||||||||||||||||||||||||||||
#1,【移动】移动当前目录下的111/mnt、 # mv 111 /mnt/ #2,【移动并改名】将/mnt/目录下的111移动到当前目录下,改名为999; # mv /mnt/111 ./999 | #移动文件 mv 到/tmp/ 移动到回收站 | ||||||||||||||||||||||||||||||
假设你想在 Vim 中查找单词 "example",你会这样做: 按下 / 键,输入 example,按下 Enter。 | vim查找 | ||||||||||||||||||||||||||||||
# mkdir 111 #在指定目录下创建目录; # mkdir /111 #快速创建100个目录 # mkdir {1..100} #递归创建 # mkdir -p 111/222/333/444 | 创建目录 | ||||||||||||||||||||||||||||||
cd ~ #前往家目录 cd .. #前往上一级目录 cd ../.. #前往上两级目录 cd - #回到上一次所在的目录 | cd 改变当前目录 | ||||||||||||||||||||||||||||||
tree -L 1 ./ | 显示目录树 ,-L 1 显示一层 | ||||||||||||||||||||||||||||||
sudo rm -rf /usr/share/jenkins sudo rm -rf /etc/gitlab /var/opt/gitlab /var/log/gitlab | 删除目录 | ||||||||||||||||||||||||||||||
find / -name java | grep -v docker | grep 排除包含"docker"的结果 | ||||||||||||||||||||||||||||||
vim 常用指令_vim常用命令-CSDN博客 超详细的Vim编辑器vim命令大全 强烈建议收藏!_编程开发_软件教程_脚本之家 Vim 快捷键: ctrl+f:向后翻页 ctrl+b:向前翻页 Ctrl+d: 向下翻半屏 Ctrl+u: 向上翻半屏 退出命令: :w 保存编辑的内容 :q 离开vi :wq 保存后离开 :q! 不想保存修改强制离开 查找功能: /xxx 向下寻找一个名为xxx的字符串 ?xxx 向上寻找一个名为xx的字符串 n 重复上一个查找动作 N 反向 | Vim 快捷键 | ||||||||||||||||||||||||||||||
#1,模式一:视图模式 i #插入-进入编辑模式,在当前光标下插入 esc #回到视图模式 a #追加-进入编辑模式,在当前光标后一个字符插入 A #追加光标所在行尾进入编辑模式; o #在当前行的下一行插入空行,进入编辑模式; O #在当前行的上一行插入空行,进入编辑模式; u #返回上一步操作; ctrl + r #返回下一步操作; C(大写) #删除光标所在位置删除到行尾,进入编辑模式; cc #清空当前行,进入编辑模式 -------------------------------------------- dd #删除当前行; 2dd #连续删除两行; dG #删除光标所在位置到文件末尾; d1G #删除光标所在行到文件首行 d^ #删除光标所在位置到行首 d$ #删除光标所在位置到行尾 ^ #光标到行首 $ #光标到行尾 yy #复制当前行 3yy #复制光标往下的3行 p #黏贴yy复制的行 3p #黏贴yy复制的行3次 10gg或者10G #光标前往文件第十行; 上k,下j,左h,右l
#2,模式二:编辑模式 -不用说,打字 #3,模式三:命令模式(视图模式切换) #检索字符串 /字符串 #检索字符串 -n #向下查找 -N #向上查找 /字符串\c #检索字符串,不区分大小写; #取消高亮显示 :noh #显示行号 :set nu #退出编辑 :wq #退出并保存 :wq! #强制退出并保存 :q #退出不保存 :q! #强制退出不保存 #保持原格式粘贴(暂时先了解下): :set paste #替换文件内容【s###g】或者【s///g】或者【s@@@g】 :8,12s#V#i#g #将文件中的8-12行中的V修改成i :%s#var#hahahahah#g #将整个文件中的var修改为hahahahah | Vim 命令 100G跳到100行 批量编辑模式 批量删除 shft+v,选择要删除的行 按d删除 批量删除开头的字符 ctrl+v 选择要删除的内容 按d 批量增加内容 ctrl+v 现在要增加的地方 shift+I 输入内容 按esc 等待 | ||||||||||||||||||||||||||||||
方式一:继续vi/vim这个文件,按R(回复上次编辑内容)/D(删除上次编辑的内容) 方式二:直接删除本地的隐藏文件.***.swp | 当文件异常退出时,再次编辑文件会无法编辑;解决方式: | ||||||||||||||||||||||||||||||
wc /et/services ls -l /root | wc -l # 显示root目录下的目录文件数量 | 显示文件行数 | ||||||||||||||||||||||||||||||
diff a.txt b.txt # a增加 d删除 c修改 vimdiff | 查看文件区别 | ||||||||||||||||||||||||||||||
# stat 1.txt 文件:"1.txt" 大小:11 块:8 IO 块:4096 普通文件 设备:803h/2051d Inode:67214417 硬链接:1 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 最近访问:2024-07-19 16:19:00.106720775 +0800 #最近查看 最近更改:2024-07-19 16:19:00.106720775 +0800 #最近一次内容被修改的时间; 最近改动:2024-07-19 16:19:00.107720789 +0800 #属性信息发生变化的时间; | 查看文件更更更详细信息 | ||||||||||||||||||||||||||||||
# ll -i 1.txt 67214417 -rw-r--r--. 1 root root 11 7月 19 16:19 1.txt #属性解释 67214417 #inode号:系统中文件存储在磁盘中的唯一标识;类似座位号; - #代表是普通文件(d:目录 -:普通文件) rw-r--r--. #【rw-】:属主的权限,【r--】:属组的权限 ,【r--】:普通用户其他 1 #文件的硬链接数量 root #属主 root #属组 | 查看文件的属性信息 #1,以文件后缀分类(linux的拓展名,只是有标识作用,没有实际意义) ***.config #配置文件 .rpm #安装包 .tar.gz .zip #压缩包 .log #日志文件 #2,以符号区分(ll 第一个字符): - #普通文件 d #目录 白色 l #链接文件 | ||||||||||||||||||||||||||||||
#普通文件 [root@wa ~]# file 1.txt 1.txt: ASCII text #图片 [root@wa ~]# file banner.jpg banner.jpg: JPEG image data, EXIF standard #链接文件 [root@wa ~]# file /etc/rc.local /etc/rc.local: symbolic link to `rc.d/rc.local' #目录 [root@wa ~]# file /etc /etc: directory #块设备 [root@wa ~]# file /dev/sda1 /dev/sda1: block special #压缩文件 [root@wa ~]# file html.zip html.zip: Zip archive data, at least v1.0 to extract | file 命令查看一个文件类型 #文件类型
| ||||||||||||||||||||||||||||||
which vim | which 查看命令文件路径 | ||||||||||||||||||||||||||||||
#1,通过文件名称查找文件【-name】 [root@wa ~]# find / -name "ifcfg-eth0" /etc/sysconfig/network-scripts/ifcfg-eth0 #忽略大小写查找 [root@wa ~]# find ./ -iname a.txt ./A.txt ./a.txt #2,[``]:先执行反引号中的内容; [root@wa ~]# cat `find / -name "ifcfg-eth0"` TYPE=Ethernet BOOTPROTO=none ……. #3,通过文件时间查找【-mtime】以天为单位 [root@wa ~]# find / -mtime +2 #两天之前所创建的文件 [root@wa ~]# find / -mtime -2 #两天之内创建的文件 [root@wa ~]# find / -mtime 2 #正好两天创建的文件 #4,通过文件时间查找【-mmin】以分钟为单位查找 [root@wa ~]# find / -mmin +2 #两分钟之前创建 [root@wa ~]# find / -mmin -2 #两分钟之内创建 #5,通过文件类型查找【-type】 - #find:f d #d l #l [root@wa ~]# find /etc/ -type l [root@wa ~]# find /etc/ -type d [root@wa ~]# find /etc/ -type f #组合使用 [root@wa ~]# find / -type f -name *-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0 #取反 [root@wa ~]# find / ! -type f -name *-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0 #6,通过文件大小查找【-size】 - 查找家目录下,大于5M的文件 [root@wa ~]# find ~ -size +5M /root/2.txt /root/3.txt - 查找家目录下,小于15M的文件 [root@wa ~]# find ~ -size -15M - 总结: [root@wa ~]# find ~ -size -15M #小于15M -15 #小于15字节 默认【15c】 -15G #小于15G -15k #小于15KB #7,(拓展)通过权限查找【-perm】 [root@wa ~]# find ~ -perm 644 #之后权限讲解时再说; | find查找文件位置 参数 -type #类型 f 文件 d 目录 l 连接文件… -name -size # 大小 +20k -20k -mtime # 根据修改时间擦查询 -maxdepth 1 # 目录深度1 -iname # 忽略大小写 -user # 指定用户 -group # 指定用户组 -perm # 指定权限
| ||||||||||||||||||||||||||||||
find 与 ls,cat head find 与 cp/mv find 与 tar | find 与其他命令配合使用 | ||||||||||||||||||||||||||||||
du -sh /etc/ | 查看目录占用空间大小 | ||||||||||||||||||||||||||||||
tar tf wa.tar.gz | 解压前查看压缩包内容 | ||||||||||||||||||||||||||||||
打包压缩三剑客 | |||||||||||||||||||||||||||||||
tar | 最常用 | ||||||||||||||||||||||||||||||
gzip | 备份文件用 | ||||||||||||||||||||||||||||||
zip/unzip | 一般用户解压windwos的zip格式压缩包 | ||||||||||||||||||||||||||||||
tar -xvf frp_0.51.2_linux_arm64.tar.gz -C /tmp/ -C #指定解压到哪里,不加就代表当前目录; | 解压文件 参数:xf | ||||||||||||||||||||||||||||||
tar zcvf wa.tar.gz ./* #参数解释 z #压缩数据的方式:zzip c #创建压缩包; v #显示压缩过程; f #识别压缩包生成的路径; h #跟随软链接,将源文件进行压缩; #2,找到以【.txt】结尾的文件,并进行压缩; tar zcvf wa.tar.gz `find ./ -name "*.txt"` 【|】管道方式 find ./ -name "*.txt" |xargs tar zcvf wa01.tar.gz | 压缩当前目录文件到wa.tar.gz 参数zcf | ||||||||||||||||||||||||||||||
change chown chmod | 文件权限命令 | ||||||||||||||||||||||||||||||
change | 改变文件属性 -R 递归处理,将指定目录下的所有文件及子目录一并处理。 -v<版本编号> 设置文件或目录版本。 -V 显示指令执行过程。 +<属性> 开启文件或目录的该项属性。 -<属性> 关闭文件或目录的该项属性。 =<属性> 指定文件或目录的该项属性。 | ||||||||||||||||||||||||||||||
#给三个角色都加上x执行权限 chmod +x 1.txt - 属主加减权限 u+x 1.txt u-x 1.txt u-rwx 1.txt u+rwx 1.txt -属组加减权限 g+x 1.txt g+rwx 1.txt - 普通用户加减权限 o+rwx 1.txt #数字方式设置权限(推荐使用) chmod 654 1.txt #-R递归修改权限为 chmod -R 744 /test | 修改权限 u,g,o,a -+= wrx -rw-r--r-- 【rw-】:权限是属主的权限 【r--】:权限是属组的权限 【r--】:其他用户;
| ||||||||||||||||||||||||||||||
chown root.root 1.txt #-R递归修改属主和属组 chown -R root.root/test | 修改属主和属组(文件送人) | ||||||||||||||||||||||||||||||
1,写个脚本 2,给脚本x权限 3,将脚本移动到PATH路径; | 用shell脚本编写一个命令 |