f 性能优化-Linux文件管理和输入输出重定向 - Powered by qidao123.com技术社区

Linux文件管理和输入输出重定向

打印 上一主题 下一主题

主题 2088|帖子 2088|积分 6264

文件管理

Bash执行下令

passwd

  1. passwd
复制代码
 普通用户修改暗码

  1. passwd
  2. robinkool
复制代码
 root用户管理账户暗码

  1. passwd
  2. -d robinkool
复制代码
 root用户删除普通用户暗码

file
  1. file /bin/file
复制代码
cat
  1. cat option 文件
  2. cat -A /etc/hosts
  3. #-A选项等于-VET
复制代码

  1. cat /etc/hosts /etc/fstab
复制代码
 一次性查看多个文件

head
  1. head option 文件
  2. head /etc/profile
  3. #只查看前四行
  4. head -n 4 /etc/profile
复制代码

  1. head -n-3 /etc/profile
复制代码
查看全部内容除了末了三行

  1. head -n3 /etc/hosts /etc/fstab
复制代码
 查看多个文件前三行

tail
  1. tail /etc/profile #默认查看尾十行
复制代码

  1. tail -n +4 /etc/profile
复制代码
 查看从第四行到末了全部内容
  1. head -n 15 /etc/profile | tail -n 5
  2. tail -n +11 /etc/profile | head -n 5
复制代码
截取文件11-15行 /etc/profile的两种方法 
less
  1. less /etc/profile
  2. q=quit
  3. 上下方向键逐行查看
  4. 左右键左右翻页
  5. pageup和pagedown上下翻页
复制代码
wc
  1. wc -l 输出行数
  2. wc -c 输出字节数
  3. wc -m 输出字符串数
  4. wc -L 显示最长行的长度
  5. wc -w 显示单词计数
复制代码
echo
  1. echo -n 不要追加换行
  2. echo -e 启用反斜杠转义解释
  3. echo -E 抑制对反斜杠转义的解释
复制代码
bashrc设置文件--持久化保存
  1. seq -s + 10 #-s用法分隔符
复制代码
  1. grep username /etc/passwd
  2. #假如显示nologin则为不能登录
复制代码
手动创建用户

  1. #添加账户vim /etc/passwd
  2. zhangsan:x:1002:1002::/home/zhangsan:/bin/bash#添加组vim /etc/groupzhangsan:x:1002:#添加暗码vim /etc/shadow#末了一行添加 明文为redhat$6$FgUNKn74yoEDbcXD$pxDk9AEhsxkJGYi76Rv91zLy5LRns8olgAyGuNssQYG07ypaidhuX0gHAU4hrNi9Zp9A7vtMEvbyzCQ0e/gbk1::0:99999:7:::#准备家目录cp -r /etc/skel/ /home/zhangsan#修改张三家目录所属有zhangsan用户和组chown zhangsan:zhangsan /home/zhangsanll -d /home/zhangsan#测试ssh zhangsan@localhost
复制代码

/usr 系统安装的软件、共享的库
/usr/bin 用户下令
/usr/sbin 系统管理下令
/usr/local 本地自界说软件
/etc 系统设置文件
/var 系统可变数据如数据库、缓存目录、日志
/home 主目录(家目录)普通用户存储个人数据和设置文件的位置,每个用户都有自己的位置,/home/robinkool
/root 管理员root的主目录
/tmp 供暂时文件利用的全局可写空间
/dev 设备文件,供系统访问硬件
mkdir
  1. mkdir dir00
  2. mkdir dir01 dir02
  3. mkdir -p dir00/dir01/dir02/dir03/dor04
  4. 隔两层创建不存在的目录使用-p
复制代码
cp
  1. cp /etc/hosts .复制到当前位置cp /etc/hosts ./hosts-1复制到当前位置而且重定名为hosts-1cp /etc/passwd
  2. /etc/host.conf .复制多个文件到当前位置cp -r /etc/yum .复制目录用-r 复制etc下的yum目录到当前位置cp -r复制目录当目标位置有雷同名称目录时,将源目录放到雷同目录下,而不是覆盖。
复制代码
mv
  1. mv hosts-1 /lab移动单个文件mv passwd
  2. hosts /home/robinkool/lab移动多个文件,目标位置只能是目录mv host.conf host.conf-new重定名mv lab /home/root移动目录
复制代码
rm
  1. rm hosts
  2. 删除文件
  3. cp /etc/pki/ca-trust/extracted/java/cacerts .
  4. rm cacerts
  5. 强制删除具有写入保护的文件
  6. rm -f cacerts
  7. 强制删除文件 不会询问
  8. rm -r /home/root/lab
  9. 递归删除
  10. rm -rf
  11. 强制递归删除
复制代码
软连接和硬链接

  1. soft link 类似于Windows中的快捷方式,可以通过将占用空间较大源文件创建软连接到原位置,然后将源文件移动到其余位置来节省磁盘空间。
  2. 在软件包的源码编译安装中,将软件的服务创建软连接到/usr/bin目录下可以在全局启动服务。
  3. ln -s 原位置 连接名称
复制代码

  1. rm mytmp
  2. 删除软连接时,连接名称后面不能跟/分隔符
复制代码
  1. 硬链接为普通文件,与源文件的inode号相同,可以通过多个文件名访问同一个数据块,任何一个文件发生改变,其余的也跟着改变。
  2. ln hosts-1 hosts-2
  3. ln默认创建硬连接
复制代码
Linux的输入和输出重定向

输出重定向到文件





独立输出

  1. find /etc -name 'passwd
  2. '
复制代码
 查找etc目录下文件名是passwd
的全部文件

  1. find /etc -name 'passwd
  2. ' 1>passwd
  3. .listcat passwd
  4. .list1>passwd
  5. .list可以省略1写为 >passwd
  6. .list1和>之间不能有空格
复制代码
 将找到的名覆盖写入passwd
.list中

  1. find /etc -name 'passwd
  2. ' >> passwd
  3. .list
复制代码
 将找到的文件名追加到passwd
.list中

  1. find /etc -name 'passwd
  2. ' 2>passwd
  3. .err
复制代码

这里是因为用的root用户没有权限不足的题目,当利用cat passwd
.err时显示为空,假如切换为普通用户就会看到错误信息

  1. find /etc -name 'passwd
  2. ' 2>/dev/null设备文件/dev/null永久为空
复制代码
 将错误信息扔掉

这里看不到错误是因为错误信息被定向到空,但是是因为root用户输入的下令,所以没有权限不足的错误信息。
准确信息(标准输出)



  • 位置:直接显示在终端(标准输出,文件描述符 1)
  • 内容:find 下令找到的匹配文件路径(如 /etc/passwd

错误信息(标准错误)



  • 位置:被重定向丢弃(2>/dev/null 表示丢弃全部错误)
  • 内容:权限不足、目录不存在等错误(如 find: /etc/ssh: Permission denied)
  1. find /etc -name 'passwd
  2. ' > passwd
  3. .all 2>&1
复制代码
 将错误信息和准确信息覆盖写入到雷同文件

  1. find /etc -name 'passwd
  2. ' >> passwd
  3. .all 2>&1
复制代码
 将错误信息和准确信息追加写入到雷同文件

输出重定向到程序

管道符
管道符(|)实现,将上一个下令的输出作为标准输入通报给下一个下令

  1. ip a | grep 'ens160$' | awk '{print $2}'
  2. hostname -I 也可以取ip
复制代码
 获取ens33网卡ip地点

管道符后的下令必须可以或许担当标准输入,才可以共同管道符利用。但是ls不担当管道通报的标准输入。
  1. echo /etc/passwd
  2. | ls -l
复制代码

ls不担当所以只执行了ls -l
  1. echo /etc/passwd
  2. | xargs ls -l
复制代码

tee
  1. > passwd
  2. .listcat passwd
  3. .list将空覆盖写入passwd
  4. .list 清空文件内容
复制代码

  1. find /etc -name 'passwd
  2. ' 2>/dev/null | tee passwd
  3. .listcat passwd
  4. .list
复制代码
tee下令覆盖保存到文件 

  1. find /etc -name 'passwd
  2. ' 2>/dev/null | tee -a passwd
  3. .listcat passwd
  4. .list
复制代码
tee下令追加保存到文件 

标准输入重定向给程序

  1. cat /etc/hosts
  2. cat < /etc/hosts
复制代码

  1. cat << EOF
  2. > hello
  3. > world
  4. >EOF
复制代码
shell读取到EOF时,代表标准输入完成 

 判断一个下令是否担当标准输入:最简朴的方式就是将文件内容作为标准输入重定向给程序。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

北冰洋以北

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表