Linux 命令操作(一)——文件和目录操作

Linux命令行操作

目录信息


参考链接

1、目录及文件操作

1.1、创建文件夹

1.1.1、创建目录
mkdir abc       在当前文件夹下创建一个名字为abc的文件夹
mkdir /abc/test 在指定目录下创建一个名字为 test的文件夹
mkdir -p test/a/b#在当前目录下递归创建test/a/b文件夹 
# 如果此处不加 -p的话,那么就不能递归的进行创建操作,如果没有上一级文件夹的话,那么就会发生错误信息
1.1.2、创建文件

touch命令操作

1.在当前目录创建一个名为aa.txt的文件        touch  aa.tx

1.2、删除文件夹/文件

1.2.1、删除目录操作
1.rm -r 目录1     递归删除当前目录下的指定目录1
2.rm -rf 目录2    递归删除当前目录下的指定目录2(不询问)
3.rm -rf *        将当前目录下的所有目录和文件全部删除
4.rm -rf /*      【自杀行为命令!谨慎使用!】将会把根目录下的所有目录及文件全部删除
# 删除当前目录下的所有.c 文件 
find . -name "*.c" -maxdepth 1 | xargs rm
表示找到.(当前目录下)名字为以“.c”为后缀的文件,-maxdepth 1表示目录深度为1,也即寻找当前目录
用 xargs 是由于很多命令不支持 | 管道来传递参数,而日常工作中有有这个必要,所以就有了 xargs 命令
1.2.2、删除文件
1.rm    文件名称        删除当前目录下的指定文件
2.rm -f 文件文件        删除当前目录下的指定文件(不询问)

1.3、重命名目录或者文件名称

mv aaa bbb             将目录aaa改为bbb
mv aaa.txt bbb.txt     将文件aaa改为bbb

1.4、目录切换

cd ..
cd ~ 切换到home目录操作
cd - 切换到上一次访问的目录操作
cd /切换到根目录操作
cd /root 切换到根目录下的root目录操作中

1.5、目录以及文件列表查看

1.ls                查看当前目录下的所有目录和文件
2.ls -a             查看当前目录下的所有目录和文件(包括隐藏的文件)
3.ls -l 或 ll       查看当前目录下的所有目录和文件(以列表方式显示查看,显示更多信息)
4.ls /data          查看指定目录下的所有目录和文件(如:ls /data)
当前目录下有a和b两个文件,执行命令“ls>c”,问文件c里面的内容是什么:
使用ls命令产生的输出为当前路径下的所有文件名;
>c即代表将结果输出至c中,若没有c则先产生c文件,即内容里含有abc。

1.6、复制目录或者文件


-r 递归处理,将指定目录下的文件与子目录一并处理
-v 或 --verbose 显示执行过程
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在


 1.将/data/a目录下的aaa目录复制到 /usr目录下面     cp -r /data/a/aaa  /usr
2.将/data/a目录下的aaa.text文件复制到 /usr目录下面     cp /data/a/aaa.text  /usr
3.将/data/a目录下的aaa.text文件备份到 /data/a目录下面bbb.text     cp /data/a/aaa.text  /data/a/aaa.text(当前目录下的文件复制则备份文件名称不能跟原来一致)

1.7剪切目录或文件

命令:mv 目录/文件名称 目录/文件的新位置

1.将/data/a目录下的aaa目录剪切到 /usr目录下面          mv /data/a/aaa /usr
2.将/data/a目录下的aaa.text文件剪切到 /usr目录下面     mv /data/a/aaa.text /usr

1.8搜索目录或文件

菜鸟教程中的查找函数并且进行删除操作

find [path] [expression]

find -name 目录/文件 参数 文件名称

path 是要查找的目录路径,expression 是用于过滤和限制查找结果的选项和参数。。

expression 中可使用的选项有二三十个之多,在此只介绍最常用的部份。

-mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件

-amin n : 在过去 n 分钟内被读取过

-anewer file : 比文件 file 更晚被读取过的文件

-atime n : 在过去 n 天内被读取过的文件

-cmin n : 在过去 n 分钟内被修改过

-cnewer file :比文件 file 更新的文件

-ctime n : 在过去 n 天内修改的文件

-mtime n : 在过去 n 天内修改过的文件

-empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name

-ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写

-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写

-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。

-type c : 文件类型是 c 的文件。

d: 目录

c: 字型装置文件

b: 区块装置文件

p: 具名贮列

f: 一般文件

l: 符号连结

s: socket

-pid n : process id 是 n 的文件

你可以使用 ( ) 将运算式分隔,并使用下列运算。

exp1 -and exp2

! expr

-not expr

exp1 -or exp2

exp1, exp2

1.find /data/tmp -name 'a*'    查找/usr/tmp目录下的所有以a开头的目录或文件
2.find -name 'a*'              查找当前目录下的所有以a开头的目录或文件

# find . -type f
# find . -name "*.c"
# find . -ctime  20
# find /var/log -type f -mtime +7 -ok rm {} \;
查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:
# find . -type f -perm 644 -exec ls -l {} \;

查找系统中所有文件长度为 0 的普通文件,并列出它们的完整路径:
# find / -type f -size 0 -exec ls -l {} \;

**查找文件并且进行后续的删除操作 ** -exec

find /home/me/download/ -type f -name "*.rm" -exec ffmpeg -i {} -sameq {}.mp3 && rm {} \;

查找文件之后再进行后续的copy操作

find . -name "abc.docx" -exec cp {} /home/wangxinchao/copy/abctest.docx \;

1.9、查看并且修改文件内容信息

1.9.1、查看文件并且只是修改文件内容信息
1.打开文件
vim test.txt       进入一般模式
注意:使用vi编辑器打开文件后,并不能编辑,因为此时处于命令模式。
可以控制屏幕光标的移动,字符、字或行的删除,查找,移动复制某区段及点击键盘i/a/o进入编辑模式
命令行模式下的常用命令:
【1】控制光标移动:↑,↓,j
【2】删除当前行:dd 
【3】查找:/字符
【4】进入编辑模式:i o a
【5】进入底行模式::
2.编辑文件
i(按键):在光标所在字符前开始插入
a(按键):在光标所在字符后开始插入
o(按键):在光标所在行的下面另起一新行插入       
3.ESC(按键)      退出编辑模式,将文件保存或退出vi
:wq             (shift+:调起输入框)(保存退出)
:wq!            (shift+:调起输入框)(表示强制保存退出)
:x              (shift+:调起输入框)(表示保存退出,写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间;否则不会更新文件修改时间)
:q!            (shift+:调起输入框)(强制退出,内容不保存)
:q                (shift+:调起输入框)(如果内容修改则会提示是否保存)
在命令模式下执行ZZ命令 也可以保存退出Vim 编辑操作
1.9.2、查看文件信息但是仅仅支持查看,并不只是修改操作
命令:cat/more/less/tail/head 

cat:看最后一屏
1.cat /data/aa.txt 文件,只能显示最后一页内容
more:百分比显示

1.more /data/aa.txt文件		可以显示百分比,从第一页开始查看aa.txt文件内容,按回车键一行一行进行查看回车可以向下一行,空格可以向下一页,q可以退出查看

less:翻页查看
1.less /data/aa.txt		从第一页开始查看aa.txt文件内容,按回车键一行一行的看,按空格键一页一页的看,支持使用PageDown和
PageUp翻页,q结束查看
less 指令下查看文件采用 q退出查看模式。

tail:指定行数或者动态查看(实时查看日志)
1.tail -10 /data/aa.log         查看aa.log文件的后10行,Ctrl+C结束。 
2.tail -f /data/aa.log			查看aa.log文件的后10行内容,Ctrl+C结束。
3.tail -n 7 /data/aa.log		查看aa.log文件的后7行内容,Ctrl+C结束。
4.head /data/aa.log				查看aa.log文件的前10行内容,Ctrl+C结束。
5.head -n 7 /data/aa.log	    查看aa.log文件的前7行内容,Ctrl+C结束

cat -n file1 file2 把文件file1和file2连在一起,然后输出到屏幕上 #-n 显示的是行号操作

1.10、终止命令操作

命令:Ctrl+c和Ctrl+z都是中断命令,作用不一样。

Ctrl+Z将任务中断,但是此任务并没有结束,在进程中只是维持挂起的状态,用户可以使用fg/bg操作前台或后台的任务,bg命令把被中断的任务放在后台执行fg命令重新启动前台被中断的任务
Ctrl+C是强制中断程序的执行

1.11、重定向功能

可以使用 > 或 < 将命令的输出的命令重定向到aa.txt文件中(如果没有这个文件则创建一个)

>> 是将前面的内容添加到后面的文件
> 是重写 后面的文件的内容

命令:echo [选项] [输出内容]

选项:
-e:支持反斜线控制的字符转换
-n:取消输出后行末的换行符号(内容输出后不换行)

2、文件打包和压缩以及解压操作

tar是操作 .tar的命令
gzip是压缩 .gz压缩包的命令
compress: 压缩.Z文件
uncompress: 解压缩.Z文件

2.1文件打包和压缩

命令:tar/unzip/zip

1.命令:tar -zcvf 打包压缩后的文件名 要打包的文件可以多个

linux中的打包文件格式:.tar
linux中的压缩文件格式:.gz
linux中打包并压缩的文件格式:.tar.gz

Linux中的打包文件一般是以.tar结尾的,压缩的命令一般是以.gz结尾的。
而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般.tar.gz。

其中:z:调用gzip压缩命令进行压缩
  c:打包文件
  v:显示运行过程
  f:指定文件名
  
 1.cd /data/aa                           如aa目录下有1.txt 2.txt两个文件进行打包压缩
2.tar -cvf ab.tar 1.txt 2.txt		        将当前目录下1.txt 2.txt打包
3.tar -cvf ab.tar ./*					    将当前目录下的所有文件打包压缩成ab.tar文件      
4..tar -zcvf ab.tar.gz 1.txt 2.txt       打包并压缩/data/aa目录下的1.txt 2.txt文件 压缩后的压缩包指定名称为ab.tar.gz
5..tar -zcvf ab.tar.gz  *                打包并压缩/data/aa目录下的所有文件 压缩后的压缩包指定名称为ab.tar.gz

2.命令:unzip/zip

压缩(zip)

zip a.zip 1.txt							 将单个文件压缩(a.zip)
zip -r a.zip a/							 将目录进行压缩(a.zip)
zip -r a.zip 1.tx 2.txt		             将多个文件压缩为zip文件(a.zip)	

2.2 文件解压

命令:tar [-zxvf] 压缩文件

其中:x:代表解压

1.tar -xvf(-zxvf) a.tar				   解压a.tar压缩包,到当前文件夹下;
2.tar -xvf a.tar -C data/local 	       解压a.tar压缩包,到/data/local目录下(C为大写,中间无空格,C代表指定解压的位置)
3.tar -zxvf a.tar.gz				   解压a.tar.gz压缩包,到当前文件夹下
4.tar -zxvf a.tar.gz -C usr/local      解压a.tar.gz压缩包,到/data/local目录下(C为大写,中间无空格,C代表指定解压的位置)
5.tar xf a.tar.xz                      解压a.tar.xz压缩包,到当前文件夹下
解压缩(unzip)
1.unzip a.zip  								解压一个zip格式压缩包
2.unzip -d /data/app/a.zip			        将a.zip包,解压到指定/data/app/目录下

3、文件中查找命令grep

1.grep abc test.txt			             在test.txt文件中搜索abc字符串,大小写敏感且显示行;
2.grep -n abc test.txt		             在test.txt文件中搜索abc字符串,大小写敏感且显示行及行号;
3.grep -v abc test.txt		             在test.txt文件中搜索abc字符串,大小写敏感且显示没搜索到的行;
4.grep -i abc test.txt		             在test.txt文件中搜索abc字符串,大小写敏感且显示行;
5.grep -ni abc test.txt		             在test.txt文件中搜索abc字符串,大小写敏感且显示行及行号;
6.ps -ef | grep nginx                    查找指定nginx服务进程 
7.ps -ef | grep nginx | grep -v grep     查找指定服务进程,排除gerp身 
8.ps -ef | grep nginx -c                 查找指定进程个数 

自己的例子操作

# 在文件中根据函数名字从而查找所在的位置信息
grep -n  "get_time_words_attention_alpha" ptp_utils.py >name.txt
#Linux下根据函数名查找所在文件
grep  "add" -r ./Downloads/test/

grep是查找匹配条件的行,find是搜索匹配条件的文件。

4、ssh远程登录命令

远程登录命令:ssh

1.ssh 192.168.1.100                                     默认利用当前宿主用户的用户名登录
2.ssh root@192.168.1.100                                利用远程机的用户登录
3.ssh root@192.168.1.100  -o stricthostkeychecking=no   首次登陆免输yes登录
4.ssh root@192.168.1.100 "ls /home/root"                当前服务器A远程登录服务器B后执行某个命令
5.ssh root@192.168.1.100 -t "sh /home/root/ftl.sh"      当前服务器A远程登录服务器B后执行某个脚本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值