文件的其他操作命令

文本内容统计 wc
wc 命令用于统计指定文本文件的行数、字数或字节数,语法为: wc [选项] 文件名称

 在Linux系统中,/etc/passwd是用于保存系统账户信息的文件,要统计当前系统中有多少个用户,可以使用下面的命令来进行查询,是不是很神奇:

——统计根下面的文件的数量 

复制、移动文件

1、复制文件或目录

语法: cp [ 选项] 源文件 目标文件
2 、移动文件或目录
mv 命令用于剪切或重命名文件,语法为: mv [ 选项 ] 源文件名称 目标文件名称
剪切操作不同于复制操作,因为它会把源文件删除掉,只保留剪切后的文件。如果在同一个目录中将某个文件剪切后还粘贴到当前目录下,其实本质就是对文件进行了重命名操作。

查找文件的路径
find 详解: find 命令默认接的命令是 -print ,它默认以 \n 将找到的文件分隔。可以使用 -print0 来使用 \0 分隔,这样就不会分行了。但是一定要注意,-print0 针对的是 \n \0 ,如果查找的文件名本身就含有空格,则find -print0 仍然会显示空格。

1.按照文件名搜索 

 

 2.按照文件大小搜索

 3.按照修改时间搜索

Linux 中的文件有访问时间( atime )、数据修改时间( mtime )、状态修改时间(ctime)这三个时间,我们可以按照时间来搜索文件。
-5 :代表 5 天内修改的文件。
5 :代表前 5 6 天那一天修改的文件。
+5 :代表 6 天前修改的文件。

4.按照权限搜索  如果要在整个系统中搜索权限中包括SUID权限的所有文件,只需使用-4000即可:

5.按照所有者和所属组搜索 

6.按照文件类型搜索 7.逻辑运算符

8.其他选项 

这里需要重点讲解一下 -exec 参数重要的作用。这个参数用于把 find 命令搜索到的结果交由紧随其后的命令作进一步处理,它十分类似于管道符技术,并且由于find 命令对参数的特殊要求,因此虽然 exec 是长格式形式,但依然只需要一个减号(-)。
示例:在整个文件系统中找出所有归属于 kongd 用户的文件并复制到 /root/findresults 目录。
该实验的重点是 - exec {} \ ; 参数,其中的 {} 表示 find 命令搜索出的每一个文件,并且命令的结尾
必须是 \ ;

 

压缩和解压缩
zip unzip 命令
zip: 可以压缩文件和目录。
语法: zip FILE
语法: unzip FILE

 ——解压缩到其他文件

gzip gunzip 命令
实例 1: 使用 gzip 压缩文件
[root@localhost test] # gzip test1.txt
[root@localhost test] # ls test1*
test1.txt.gz test1.zip
实例 2: 使用 gzip 压缩目录下文件
[root@localhost test] # gzip -r dir1/
[root@localhost test] # ls dir1
fstab.gz test3.txt.gz test4.txt.gz test5.txt.gz
# 注意 : 以上压缩之后原始文件就没有了。
实例 3: 压缩但保留原始文件
[root@localhost test] # gzip -c test2.txt > test2.txt.gz
[root@localhost test] # ls test2*
test2.txt test2.txt.gz test2.zip

——gzip -c 保留原文件 

注:查看压缩过的文本文件内容: zcat zless zcat 文件名 .gz
bzip2 bunzip2 命令
bzip2 bunzip2 = bzip2 -d )是更新的 Linux 压缩工具,比 gzip 有着更高的压缩率。
bzip2 bunzip2 示例如下:
[root@localhost test] # bzip2 man.config // man.config bzip2 压缩,此时 man.config
变成 man.config.bz2
[root@localhost test] # bzip2 -9 -c man.config > man.config.bz2 // man.config
最佳的压缩比压缩,并保留原本的档案
[root@localhost test] # bzip2 -d man.config.bz2 // man.config.bz2 解压缩,可用
bunzip2 取代 bzip2 -d
[root@localhost test] #bunzip2 man.config.bz2 // man.config.bz2 解压缩

注:查看压缩过的文件内容: bzcat bzless bzcat 文件名 .bz2
xz unxz 命令
实例 1 :压缩文件
[root@localhost test] # xz test1.txt
[root@localhost test] # ls test1.txt.xz
test1.txt.xz
实例 2 :压缩 dir1 目录下文件
[root@localhost test] # xz dir1/*
[root@localhost test] # ls dir1
fstab.xz test3.txt.xz test4.txt.xz test5.txt.xz
实例 3 :查看压缩文件内容
[root@localhost test] # xzcat test1.txt.xz
test1
实例 4 :解压缩( xz -d 等价于 unxz
[root@localhost test] # unxz test1.txt.xz
实例 5 :解压缩目录 dir1 下文件
[root@localhost test] # xz -d dir1/*
[root@localhost test] # ls dir1
fstab test3.txt test4.txt test5.txt
tar 归档命令
格式: tar [ 选项 ] [args]……
选项:任选其一

 必选项:

 辅助选项:

 -c创建一个包文件

——z(用gzip压缩) -f必选项

——cs(拓展名),tar(打包好的文件),gz(gzip压缩过)

——/....所要打包的文件

 ——查看打包好后的文件列表

——解压缩到指定目录(-C) 

 额外的选项:

 1. 创建(非压缩的)打包文件,将指定的一个或多个文件或目录备份生成为一个指定的包文件

tar cvf/cfv/-cvf 文件名 .tar 要打包的目录或文件名列表 ……
2. 列出包文件中的文件列表
tar t[v]f 包文件名

3. 创建带压缩的包文件,为节省存储空间,通常需要生成压缩格式的 tar 包文件, tar 命令支持三种不同的压缩方式
tar czf/-czf 文件名 .tar.gz 要打包压缩的目录或文件名 ……
tar cjf/-cjf 文件名 .tar.bz2 要打包压缩的目录或文件名 ……
tar cJf/-cJf 文件名 .tar.xz 要打包压缩的目录或文件名 ……
4. 提取包文件到指定目录
tar xf/-xf/-xzf 文件名 .tar.gz [-C 目标路径 ]
tar xf/-xf/-xjf 文件名 .tar.bz2 [-C 目标路径 ]
tar xf/-xf/-xJf 文件名 .tar.xz [-C 目标路径 ]
文件上传下载
1 xftp 工具

2sftp是一个交互式文件传输程式

它类似于 ftp 传输协议,属于 ssh, 但它进行加密传输,相对 FTP 来讲有更高的安全性。
如果有服务器的端口不是默认的 22 ,请在 sftp 后面加 -P 端口号。
# sftp root@223.6.6.6
The authenticity of host ‘223.6.6.6 (223.6.6.6)’ can’t be established.
ECDSA key fingerprint is SHA256:Hl/dKTFzL4lOlF8DIG5itaV4OAsZunC2AWlFGLjLfsg.
Are you sure you want to continue connecting (yes/no)? yes 【输入 yes 回车】
Warning: Permanently added ‘223.6.6.6’ (ECDSA) to the list of known hosts.
root@223.6.6.6’s password: 【输入 223.6.6.6 root 密码并回车】
Connected to 223 .6.6.6.
sftp>
223.6.6.6 服务器文件下载到 223.5.5.5 home 目录 ;
sftp> get /var/www/renwole.txt /home/
223.5.5.5 服务器文件上传到 223.6.6.6 服务器的 mnt 目录 ;
sftp> put /home/renwole.txt /mnt/
你如果不知道远程主机的目录是什么样, ls 命令可以列出 223.6.6.6 服务器的当前目录列表。例如
sftp> ls // 和查看本地操作命令一样
sftp> pwd // 查询 223.6.6.6 的当前工作目录
如果想知道本地主机( 223.5.5.5 )的目录是什么样,可以使用下面的命令,例如:
sftp> lls
sftp> lpwd
如果想退出,例如:
# exit // 退出机器,返回你原始机器界面。
shell- 命令解释器
shell :壳,命令解释器,负责解析用户输入的命令。命令分两类:
内置命令 (shell 内置 ) shell 为了完成自我管理和基本的管理,不同的 shell 内置不同的命令,但是
大部分都差不多
外置命令,在文件系统的某个目录下,有个与命令名称相同的文件
type 命令查看命令是 file alias 还是 builtin
type - a 列出当前命令可以如何执行
type - t 仅列出命令按照哪种方式执行
shell 如何知道命令的可执行文件在哪个路径下呢?系统为了让用户在命令行快速方便地执行命令,将可执行文件的路径存储在环境变量PATH 中。
在众多环境变量里面有一个环境变量叫做 PATH ,当用户每次执行外部命令的时候都会去该变量所记录的路径下搜索和命令同名的二进制文件,如果有则执行该二进制文件,如果没有则提示命令找不到
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
Linux 中的特殊符号

 命令别名

别名是命令的快捷方式。对于需要经常执行,并需要很长时间输入的长命令创建快捷方式很有用。
语法: alias 别名 =’ 原命令 [ 选项 ]…… [ 参数 ]……’
# 查看设置的别名
[root@node13 ~] # alias
alias cp = 'cp -i'
alias egrep = 'egrep --color=auto'
alias fgrep = 'fgrep --color=auto'
alias grep = 'grep --color=auto'
alias l. = 'ls -d .* --color=auto'
alias ll = 'ls -l --color=auto'
alias ls = 'ls --color=auto'
……
# 删除别名:
[root@node13 ~] #unalias 别名
在命令行中使用 alias 命令设置的别名仅在该次登入有效,如果重新开启一个 Shell ,或者重新登录
系统,则这些 alias 将无法使用。
linux 中提供 alias 永久化的方法:
(1)若要让某个用户使用该别名,则把别名加在 ~/.bash_profile ~/.bashrc 中。然后 source
~/.bashrc 或者 source ~/.bash_profile
(2)若要让每一位用户都使用该别名,则把别名加在 /etc/bashrc 或者 /etc/profile 中,然后
source /etc/bashrc 或者 source /etc/profile
命令历史
history 命令可以查阅命令历史记录 ,也可在命令行利用向上或向下光标键来进行查询。
语法: history [ 选项 ] [ 参数 ]
选项 :
number :显示最近 number 条命令历史
-c :清空当前历史命令
-a [file] :后面没跟文件时,默认将缓冲区中历史命令写入 ~/.bash_history
-r [file] :将历史命令文件中的命令读入当前历史命令缓冲区中
-w :将当前历史命令缓冲区命令写入历史命令文件中 ;
[root@node13 ~] # history 5
1871 ls -l
1872 ls -l /
1873 touch a
1874 touch b
1875 history 5
[root@node13 ~] # !1871 1871 条命令再执行一遍
ls -l
[root@node13 ~] # !! 执行上一条命令
命令行中的其他快捷键:
ctrl + d 输入已结束 ; 也可当做 exit
ctrl + c 键盘中断请求,终止当前的命令
Ctrl + a 移动到当前行的开头
Ctrl + e 移动到当前行的结尾
Ctrl + l 清屏 == clear
Ctrl + u 剪切命令行中光标所在处之前的所有字符(不包括自身)
Ctrl + k 剪切命令行中光标所在处之后的所有字符(包括自身)
ctrl + ←/→ 光标在命令行中按照单词跳转
引用上一条命令的最后一个参数
方法 1 ! $
方法 2 :先按 Alt 再输入 .
方法 3 :先按 Esc 在输入
示例: 生产环境中, history 命令记录操作时间、操作用户、操作 IP
(1) /etc/profile 文件中加入以下内容
USER_IP = `who -u am i 2>/dev/null| awk '{print $NF }'|sed -e 's/[()]//g'`
export HISTTIMEFORMAT = "[%F %T][`whoami`][ ${USER_IP} ] "
(2)执行: source /etc/profile
[root@VM-8-15-centos ~] # history
1 [2020-12-25 18 :10:27][root][111.18.44.17]
2 [2020-12-20 10 :35:16][root][111.18.44.17] cat /etc/redhat-release
3 [2020-12-20 14 :02:20][root][111.18.44.17] exit
4 [2020-12-24 09 :39:17][root][111.18.44.17] cat /etc/redhat-release
5 [2020-12-24 10 :06:17][root][111.18.44.17] awk 'NR==5' /etc/passwd
6 [2020-12-24 10 :08:31][root][111.18.44.17] whereis ifconfig
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值