文件和目录的增删改查
创建文件
创建文件,你知道哪几个命令(哪几种方式)?
1)在/etc/idoxu目录,创建文件isTester.ini
2)在/usr/isTester/目录,创建文件isTester6.ini
3)/usr/idoxu/目录,创建文件isTester8.ini
4)/etc/idoxu/目录,创建文件isTester1.ini
touch /etc/idoxu/isTester.ini
vi /usr/isTester/isTester6.ini (最后要:wq保存退出)
echo ‘hello’ > /usr/idoxu/isTester8.ini
cp /usr/idoxu/isTester8.ini /etc/idoxu/isTester1.ini
命令touch & 同时创建多个文件
touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间
不加任何参数且文件存在的情况下,是修改文件时间为当前时间
若文件不存在,系统会建立一个新的文件
1)在/etc/idoxu目录,同时创建文件 isTester666.ini idoxu666.ini
2)在/usr/isTester/目录,同时创建300个文件 isTester101.ini-isTester400.ini
3)更改文件 isTester.ini时间为当前时间(文件已存在的情况下就是更新时间)
cd /etc/idoxu && touch isTester666.ini idoxu666.ini
touch /usr/isTester/isTester{101…400}.ini
touch isTester.ini
-a 改变档案的读取时间记录
-m 改变档案的修改时间记录
-c 假如目的档案不存在,不会建立新的档案
命令 mkdir
1)在/usr/目录下,新建一个文件夹 isTester
2)在/etc/目录下,新建一个文件夹 idoxu
3)在/usr/isTester/目录下,新建三个文件夹 isTester1 isTester2 isTester3
4)在/usr/目录下,新建一个多层级文件夹 idoxu/istester/2020
mkdir /usr/isTester
mkdir /etc/idoxu
cd /usr/isTester&&mkdir isTester1 isTester2 isTester3
mkdir -p /usr/idoxu/istester/2020
命令 rm
rm命令用于删除一个文件或者目录,删除文件可以直接使用rm命令,若删除目录则必须配合选项"-r",文件一旦通过rm命令删除,则无法恢复
1)删除/root/isTester/目录下的文件isTester.ini (系统会询问是否删除)
2)强行删除/root/isTester/目录下的文件isTester.ini(直接删除,系统不会提示)
3)删除/root/isTester/目录下的所有.log文件
4)删除/root/isTester/目录下的 idoxu文件夹
5)强行删除/root/isTester/目录下的 idoxu文件夹
6)删除/root/isTester/目录下的所有内容
7)删除当前目录下的所有文件和目录
rm /root/isTester/isTester.ini
rm -f /root/isTester/isTester.ini
rm /root/isTester/*.log
rm -r /root/isTester/idoxu
rm -rf /root/isTester/idoxu
rm -rf /root/isTester/*
rm –r *
-f 直接删除,无需逐一确认
-r 将目录及以下文件亦逐一删除
命令vi
用vi创建文件+编辑文件
1)vi创建文件isTester666.ini
2)vi更新文件内容为"21 day linux learn, i am demi, in shenzhen."
vi isTester666.ini
按下a或i,输入内容后按下Esc,再输入:wq
命令:查看文件(静态查看)
命令参考:
#cat 由第一行开始显示档案内容
#tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写
#more 一页一页的显示档案内容
#less 与 more 类似,但是比 more 更好的是,他可以往前翻页
#head 只看头几行
#tail 只看尾巴几行
#nl 显示的时候,顺道输出行号
注:操作如上之前,可以先往isTester.ini插入几百行内容,执行命令 ls /bin/ > isTester.ini
1)查看文件 isTester.ini的内容
2)看文件 isTester.ini前20行内容
3)看文件 isTester.ini最后30行内容
4)显示文件isTester.ini 的第10至20行的内容
5)倒序显示文件isTester.ini 前10行的内容
6)显示文件isTester.ini 前10行的内容,并显示行号
cat isTester.ini
head -n 20 isTester.ini
tail -n 30 isTester.ini
head -n 20 istester.ini|tail -n 10
tac istester.ini|head -n 10
nl istester.ini|head -n 10
cat:
-n 由1开始对所有输出的行数编号
-b 和-n相似,只不过对于空白行不编号
1)把file1的文档内容加上行号后输入file2这个文档里
2)把file1和file2的文档内容加上行号(空白行不加)之后将内容附加到file3文档里
3)清空/etc/test.txt文档内容
cat -n file1 > file2
cat -b file1 file2 >> file3
cat /dev/null > /etc/test.txt
/dev/null称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据
命令 tail(动态查看)
1)实时显示文件istester.log最新内容
2)实时显示文件istester.log最新500条内容
tail -f istester.log
tail -500f istester.log
命令 find
find 命令用来在指定目录下查找文件
1)在/root/isTester 目录及其子目录下面查找名字为isTester.ini的文件
2)在当前目录及其子目录中查找扩展名为“ini”的文件
3)在/root/isTester目录下查找更改时间在5日以内的文件
4)在/root/isTester目录下查找更改时间在3日以前的文件
5)在/root/isTester目录下查找所有的目录
6)在/root/isTester目录下查找所有的文件
7)在当前目录,所有的普通文件中搜索istester这个词
8)在当前目录,移动1天以内的所有内容到~/idoxu目录
9)在当前目录,移动10天以前的所有内容到~/idoxu目录
10)在/usr/isTester目录,移动文件大小为零的文件到~/idoxu目录下的 0size/ 文件夹
11)在/usr/isTester目录,移动大于200M的文件到 ~/idoxu目录下的 200size/ 文件夹
find /root/isTester -name isTester.ini
find ./ -name “*.ini”
find /root/isTester -mtime -5
find /root/isTester -mtime +3
find /root/isTester -type d
find /root/isTester -type f
find ./ -type f|xargs grep “istester”
find ./ -mtime -1|xargs -i mv {} /idoxu
find ./ -mtime +10|xargs -i mv {} /idoxu
find /usr/isTester -size 0|xargs -i mv {} /idoxu/0size
find /usr/isTester -type f -size +200M|xargs -i mv {} /idoxu/200size
-name ".ini"文件名称符合.ini的文件
-size n 文件大小是n的文件
-type c 文件类型是c的文件
-cmin n 在过去n分钟内被修改过
-ctime n 在过去n天内被修改过的文件
1)将目前目录及其子目录下所有最近20天内更新过的文件列出
find . -ctime -20
文件和目录的相关命令
命令 cd
1)进入目录 /usr/idoxu/istester/2020/
2)进入上级目录
3)进入上两级目录
4)进入当前用户主目录(home目录)
5)进入当前目录
cd /usr/idoxu/istester/2020/
cd …
cd …/…
cd ~
cd .
命令 ls
1)列出当前目录中所有的子目录和文件
2)列出目录下的所有文件(包含隐**件)
3)列出文件的详细信息(包括权限、所有者、文件大小等)
4)列出当前目录中所有以 “isTester” 开头的详细内容
ls ./
ls -a
ls -l
ls -l|grep isTester 或 ls -l isTester*
命令 mv
1)进入/usr/idoxu/istester目录,移动当前文件夹2020,到/usr/isTester目录
2)移动/etc/idoxu目录下的文件isTester.ini ,到/usr/isTester 目录
3)当前目录istester.tar.gz 移动到/usr/isTester 目录,并重命名为istester2020.tar.gz
4)移动当前目录的isTester.tar.gz文件到上级目录
5)一条命令,移动两个文件 isTester.tar idoxu.tar 到目录 /usr/isTester
6)将文件isTester.tar重命名为demi.tar
7)将目录demi重命名为demi_git
cd /usr/idoxu/istester && mv ./2020 /usr/isTester
mv /etc/idoxu/isTester.ini /usr/isTester
mv ./istester.tar.gz /usr/isTester/istester2020.tar.gz
mv ./istester.tar.gz …/
mv isTester.tar idoxu.tar -t /usr/isTester
mv isTester.tar demi.tar
mv demi demi_git
命令 cp
cp命令主要用于复制文件或目录
1)复制当前目录部署包isTester.tar.gz 到备份目录/APP/istester/idoxu/bak 目录
2)复制文件夹 isTester 到部署目录/APP/istester/idoxu/
cp ./isTester.tar.gz /APP/istester/idoxu/bak
cp -r ./isTester/ /APP/istester/idoxu
cp命令报cp:omitting directory错误,说明被复制目录下面还有目录,不能直接拷贝
使用-r参数可解决:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件
命令 tar
tar是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件
1)压缩/etc/idoxu目录下的文件 isTester.ini 为 istester.tar.gz
2)压缩多个文件 isTester.ini idoxu.ini
3)压缩文件夹 isTester/
4)将当前目录,所有jpg文件打包成isTesterjpg.tar
5)将当前目录,所有jpg文件打包并压缩成isTesterjpg.tar.gz
6)解压 isTesterjpg.tar
7)解压 isTesterjpg.tar.gz
cd /etc/idoxu && tar -zcvf istester.tar.gz isTester.ini
tar -zcvf all.tar isTester.ini idoxu.ini
tar -zcvf isTester.tar isTester/
tar -cvf isTesterjpg.tar *.jpg
tar -zcvf isTesterjpg.tar.gz *.jpg
tar -xvf isTesterini.tar
tar -zxvf isTesterini.tar.gz
-z 通过gzip指令处理备份文件
-x 从备份文件中还原文件
-c 建立新的备份文件
-v 显示指令执行过程
-f<备份文件> 指定备份文件
命令 chmod
chmod命令用于改变linux系统文件或目录的访问权限
1)将文件isTester666.ini设为所有人皆可读取
2)将isTester666.ini设定为只有该文件拥有者可以执行
3)给文件isTester666.ini设置所有权限
4)将文件isTester666.ini设为所有人,只读权限
5)给idoxu目录下所有文件和子目录添加执行权限
chmod a+r isTester666.ini
chmod u+x isTester666.ini
chmod 777 isTester666.ini
chmod a=r isTester666.ini
chmod +x -R idoxu/

第0位确定文件类型
当为[ d ]则是目录
当为[ - ]则是文件
若是[ l ]则表示为链接文档
第1-3位确定属主(该文件的所有者)拥有该文件的权限
第4-6位确定属组(所有者的同组用户)拥有该文件的权限
第7-9位确定其他用户拥有该文件的权限
注意:对于root用户来说,一般情况下,文件的权限对其不起作用
Linux文件属性有两种设置方法:
一种是数字:
用421分为代表每个用户类型的rwx
一种是符号:
用ugo代表三种身份权限,此外a 则代表 all,即全部的身份
+(加入)、-(除去)、=(设定)
其他命令
命令 history
1)查看历史命令执行记录
2)查看命令mkdir 的历史执行记录
3)执行历史记录中,序号为178的命令(178这个序号你可以自己随便定一个)
4)清除历史
history
history | grep mkdir
!178
history -c
命令 ps
1)查看所有进程
2)显示所有进程信息,连同命令行
3)查看mysql进程
ps -A
ps -ef
ps -ef | grep mysql
命令 top
1)显示进程信息
2)监控每个逻辑CPU的状况
3)高亮显示当前运行进程
4)显示完整命令
5)退出top程序
top
top,按1
top,按b
top -c
top,按q
命令 wget
假设包地址 http://51.istester.com/isTester.png
1)下载isTester包
2)下载isTester包,存储名为isTester666.tgz
3)下载isTester包,后台形式下载
wget http://51.istester.com/isTester.png
wget -O isTester666.tgz http://51.istester.com/isTester.png
wget -b http://51.istester.com/isTester.png
命令 yum
yum是一个Shell前端软件包管理器
1)Linux下安装scp命令(假设是centos服务器,命令用yum)
2)Linux下安装rz、sz命令
yum install openssh-clients
yum install lrzsz
1)列出所有可更新的软件清单命令:yum check-update
2)更新所有软件命令:yum update
3)仅安装指定的软件命令:yum install <package_name>
4)仅更新指定的软件命令:yum update <package_name>
5)列出所有可安裝的软件清单命令:yum list
6)删除软件包命令:yum remove <package_name>
7)查找软件包 命令:yum search
命令 scp
scp 是linux系统下基于ssh登陆进行安全的远程文件拷贝命令,scp是加密的
(跨服务器文件传输,假设有两台服务器:192.168.1.21 和192.168.1.22 )
1)从Linux服务器192.168.1.22 拷贝文件 isTester.ini 到你当前操作的服务器(假设当前服务器 192.168.1.21 )
2)从Linux服务器192.168.1.22 拷贝目录 isTester/ 到你当前操作的服务器(假设当前服务器 192.168.1.21 )
延伸思考:如果是把「当前操作的服务器」的文件拷贝到远程服务器呢?
scp root@192.168.1.22:/root/isTester.ini /root/
scp -r root@192.168.1.22:/root/isTester/ /root/
scp /root/isTester.ini root@192.168.1.22:/root/
1)从本地复制文件到远程(另一种方法)
scp local_file remote_ip:remote_file
2)从本地复制目录到远程
scp -r local_folder remote_ip:remote_folder
练习中制定了用户名,命令执行后只需输入密码
这里没有指定用户名,命令执行后需要输入用户名和密码
3)如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用-P参数来设置命令的端口号
scp -P 4588 root@192.168.1.22:/root/isTester1.ini /root/isTester2.ini(拷贝后重命名为isTester2.ini)
4)使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的
命令 du
du会显示指定的目录或文件所占用的磁盘空间
1)显示目录或者文件所占空间
2)显示指定文件所占空间
3)显示多个文件所占空间
4)显示指定目录所占空间
5)显示多个文件所占空间的大小并统计总和
1)查看目录isTester/ 所占用的空间
du
du -sh app.log
du -sh app.log web.log
du -sh demi
du -c app.log web.log
du -h /isTester
-s 仅显示总计
-h 以K,M,G为单位,提高信息的可读性
-c 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和
命令 grep
grep 命令用于查找文件里符合条件的字符串
1)在当前目录中查找后缀有file字样的文件中包含test字符串的文件,并打印出该字符串的行
grep test *file
查找指定目录/etc及其子目录下所有文件中包含字符串"demi"的文件,并打印出该字符串所在行的内容
grep -r demi /etc
查找文件名中包含test的文件中不包含test的行
grep -v test test
-r 以递归的方式查找符合条件的文件
-v 显示不包含匹配文本的所有行
1)查看当前服务器内网IP
2)查看当前服务器外网IP
3)查看当前服务器硬盘空间
4)清空当前终端屏幕
5)查看你的Linux服务器的版本号
ifconfig
curl cip.cc
df -h
clear
cat /etc/issue & lsb_release -a
df命令用于显示目前在Linux系统上的文件系统的磁盘使用情况统计
-h 使用人类可读的格式

1581

被折叠的 条评论
为什么被折叠?



