linux02--文件目录、文件操作

0 命令别名

# 1 设置别名
  alias wk='ifconfig'  只在当前bashshell中生效
    
# 2 永久生效(全局/局部文件)
  echo "alias wk='ifconfig'" >> /etc/bashrc
    
# 3 取消别名  当前shell窗口
  unalias wk  

# 4 如果是写到配置文件中,取消的话unalias wk+去配置文件删除

# 5 内置的别名:在环境变量的配置文件中放着
  cat .bashrc  # 查看环境变量文件


### 绕过别名,使用原始命令
# 方式一:取消别名     只针对当前shell窗口,就是只是修改到内存
  unalias wk

# 方式二:\原始命令  执行
  \ifconfig

# 方式三:查看到命令的文件位置,再执行命令文件
  which ls
     >>>: alias ls'rm -i'
           /usr/bin/ls

  /usr/bin/ls 

# 帮助命令: 查看命令选项
# 1 命令 --help

# 2 man 命令

二 目录管理

1 目录介绍

# 1 linux 是单根 '/' 根路径,windows是多根

# 2 /bin /sbin:
    /bin  普通用户命令 文件夹
    /sbin 超级用户命令 文件夹
    # 都是usr下的文件夹软链接到根路径

# 3 /home  /root:
    /home  普通用户的家路径   home下 有用户名的文件夹
      -用户一登录系统,是在自己的家路径  jack--》/home/jack
        
    /root  管理员家路径

2 目录之usr、boot

/usr        相当于C:Windows
/usr/local  软件安装的目录,相当于C:Program
/usr/bin/   普通用户使用的应用程序(重要)
/usr/sbin   管理员使用的应用程序(重要)
/usr/lib    库文件Glibc 32bit
/usr/lib64  库文件Glibc 64bit

1 df -h  # 查看系统中文件的使用情况
2 du -sh /usr/  # 查看当前目录下各个文件及目录占用空间大小


# 补充:自动化运维软件 (远程执行ssh命令)
  ansiable:python写的,批量执行命令(速度比较慢,大量的主机,会卡顿)
  salstack:在服务器主机上装agent,主动把命令结果推送到监控机上
  zabbix  :监控,php写的,eg: 监控mysql运行情况

# /boot  启动目录
  存放的系统启动相关的文件,例如:kernel,grub(引导装载程序)

3 目录之etc

/etc   极其重要,后续所有服务的配置都在这个目录中

/etc/sysconfig/network-script/ifcfg-  网络配置文件

/etc/hostname  系统主机名配置文件
  主机名很重要,有些特殊服务要依赖主机名,没有主机名会报错起不来;修改了要重启:reboot
    
/etc/resolv.conf  dns客户端配置文件  域名解析服务器   
  一般我们不配置,因为网卡的配置好了,会覆盖掉它,网卡的优先级高
    补充:公司可以用bind9 自己搭建dns服务器
    
/etc/hosts  本地域名解析配置文件
  域名解析,先找自己的hosts,再去域名解析

/etc/fstab    系统挂载目录 开机自启动挂载列表

/etc/passwd  系统用户文件

4 目录之var、dev

1 cat /var/log/secure  # 系统登录用户情况日志信息

/dev         存放设备文件,比如硬盘,硬盘分区,光驱,等等
/dev/sd      硬盘设备
/dev/null    黑洞设备,只进不出。  类似于垃圾回收站
/dev/random  生成随机数的设备
/dev/zero    能远远不断的产生数据,类似于取款机,随时随地取钱

5 目录之proc

/proc 反映系统当前进程的实时状态 :process
    
  假设跑着一个uwsgi---》id号,重启,id号会变,1这个进程永远不变

6 其他目录

# 1./media:提供设备的挂载点,媒体文件

# linux 新增了盘符,需要手动挂载
# 把光盘里的数据,挂载到media目录
mount  /dev/cdrom /media/

# 2./mnt:提供设备的挂载点(同上)

# 3./opt:第三方工具,第三方软件默认安装的(mysql...)

# 4./run : 下有pid/log结尾的文件
ls /run
cat sshd.pid  # 进程运行的pid号,放在文件中
ps aux |grep sshd

# .lock文件的作用, 锁机制
# 假设现在执行
yum install tree
# 再开一个窗口执行相同命令  
yum install tree   # 运行不了

'''
Another app is currently holding the yum lock; waiting for it to exit...
  The other application is: yum
    Memory :  71 M RSS (470 MB VSZ)
    Started: Tue Aug 18 00:26:31 2020 - 00:24 ago
    State  : Sleeping, pid: 6191
'''
cat /run/yum.pid

6 路径定位

# 1 . ..  相对路径 
  . 是当前
  ..是上一级

# 2 坑:带斜杠和不带斜杠
  cd /usr # 根路径下的usr 
  cd usr  # 当前路径下的usr
    
# 3 执行当前路径下的某个文件
  ./xx linux
  xx   windows
    
# 4 ~当前用户的家路径:root   /root   jack  /home/jack

三 文件操作

1 mkdir touch rm mv

# 1.mkdir  创建目录
  选项:-v 显示详细信息  -p 递归创建目录
    
  mkdir dir1
  mkdir /home/od/dir1 /home/od/dir2
  mkdir -v /home/od/{dir3,dir4}  
  mkdir -pv /home/od/dir5/dir6
  mkdir -pv /home/{od/{diu,but},boy}

# 2.touch file  创建文件  无则创建,有则修改时间
  touch file2 file3
  touch /home/od/file4 file5
  touch file{a,b,c}   # {}集合,等价 touch a b c
  touch file{1..10}
  touch file{a..z}


# 3.rm  删除文件
  选项:-r: 递归 -f: 强制删除 -v: 详细过程
                
  rm  file.txt    # 删除文件, 默认rm存在alias别名,rm -i所以会提醒是否删除文件
  rm -f file.txt  # 删除文件, 不提醒
  rm -r dir/    # 递归删除目录,会提示
  rm -rf dir/   # 强制删除目录,不提醒(慎用)

# eg1:
  mkdir /home/dir10
  touch /home/dir10/{file2,file3,.file4}
  rm -f /home/dir10/  # 不包括隐藏文件 
  ls /home/dir10/ -a
. .. .file4

# eg2:
  touch file{1..10}
  touch {1..10}.pdf
  rm -f file*
  rm -f *.txt


# 4.mv 移动文件
  mv file file1     # 原地移动 算改名
  mv file1 /tmp/    # 移动文件至tmp目录  mv file1 tmp 不一样
  mv /tmp/file1 ./  # 移动tmp目录的文件至当前目录
  mv dir/ /tmp/     # 移动目录至/tmp目录下

  touch file{1..3}
  mv file1 file2 file3 /opt/  # 移动多个文件或至同一个目录

  mkdir dir{1..3}
  mv dir1/ dir2/ dir3/ /opt   # 移动多个目录至同一个目录

2 cp

# cp  拷贝复制
  选项: 
    -v: 详细显示命令执行的操作 
    -r: 递归处理目录与子目录 
    -p: 保留源文件或目录的属性
                
  cp file /tmp/           # 拷贝文件 到指定目录
  cp name /tmp/name1      # 拷贝并修改名称
  cp file /tmp/           # 拷贝不修改名称

  cp -p file /tmp/file_p  # -p保持原文件或目录的属性
    
  cp -r  /etc/ /tmp/      # 复制目录需要使用-r参数, 递归复制

  cp -rv /etc/hosts /etc/hostname /tmp  # 拷贝多个文件至一个目录
  cp -rv /etc/{hosts,hosts.bak}
  cp -rv /etc/hosts{,-org}
posted @ 2022-07-21 16:01  Edmond辉仔  阅读(69)  评论(0)    收藏  举报