linux基本命令操作-目录与文件的配置和管理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux基本命令操作-目录与文件的配置和管理相关的知识,希望对你有一定的参考价值。
Linux命令
用户输入的指令----->解释器----->内核------->硬件
-用来实现某一功能的指令或程序
-输入命令然后执行相应的程序来实现功能,不是简单的命令字符实现的
程序在bin下:#ls /bin/xxx
-命令的执行依赖于解析器(shell):(默认的解析器:/bin/bash)
内核(只识别二进制的文件)根据命令来调配硬件,不能识别命令所需执行的功能,需要一个翻译官,就是解析器来实现
命令行的一般格式:
基本用法
– 命令字 [选项]... [参数1] [参数2]... #中括号表示可有可无
[[email protected] ~]# ls -l /root/
[[email protected] ~]# ls /root
[[email protected] ~]# ls -l /root #显示目录下详细信息
[[email protected] ~]# ls -l /boot #显示目录下详细信息
[[email protected] ~]# ls -l -h /boot #显示目录下详细信息,加上单位(K,M,G)
[[email protected] ~]# ls -lh /boot #显示目录下详细信息,加上单位
[[email protected] ~]# man ls #查看ls命令的帮助手册信息
按"q" 退出
###################################################
网卡配置文件:
# ls -l /etc/sysconfig/network-scripts/ifcfg-eth0 #显示网卡基本属性
# cat /etc/sysconfig/network-scripts/ifcfg-eth0 #查看网卡配置信息
# ls /e(tab)
# ls /etc/sysco(tab)
# ls /etc/sysconfig/netw(tab)
# ls /etc/sysconfig/network-(tab)
# ls /etc/sysconfig/network-scripts/ifc(tab)
# ls /etc/sysconfig/network-scripts/ifcfg-e(tab)
# ls -lh /etc/sysconfig/network-scripts/ifcfg-eth0
字符记不住的可以按"tab"补全
快捷键
– Ctrl + l : 清空整个屏幕,不是真正清除,而是直接调到空白
– Ctrl + c : 废弃当前编辑的命令行
– Esc + . : 粘贴上一个命令的参数
– Ctrl + u : 清空至行首,将光标前的字符清除
– Ctrl + w : 往回删除一个单词(以空格界定)
– Ctrl + k :将光标后面的字符清除
[[email protected] ~]# ls /etc/sysconfig/network-scripts/ifcfg-eth0
[[email protected] ~]# ls -l Esc + .
[[email protected] ~]# ls -lh Esc + .
[[email protected] ~]# cat Esc + .
[[email protected] ~]# cat -n Esc + .
###################################################
linux系统下载安装包,没网的情况下在光盘里下,光盘里有数千个包,访问光盘的内容用到挂载
挂载
Windows
光盘文件------->光驱设备------->CD驱动器
Linux
光盘文件------->光驱设备------------>访问点(挂载点) win可以双击的地方
/dev/sr0//以SCSI接口的光驱设备
/dev/hdc//以IDE接口的光驱设备
查看光驱设备是什么接口的:#ls /dev/hdc
#ls /dev/sr0
linux为了解决有些人不会判断光驱设备是什么接口,不管光驱设备叫什么,它都会为自动光驱设备提供一个快捷方式自动判断是什么接口 这个快捷方式就是: /dev/cdrom
#ls -l /dev/cdrom #查看源光驱设备是sr0还是hdc
通常光驱设备接口是sr0模式
cat不能直接查看设备文件内容,会弹出满屏乱码,按ctrl+c退出来
1.虚拟机,图形鼠标操作,将光盘镜像放入虚拟光驱设备
如果找不到光盘文件,可以在真机上查找路径 #ls /ISO/rhel-server-7.2-x86_64-dvd.iso 复制过去
[[email protected] ~]# ls /dev/cdrom
/dev/cdrom
[[email protected] ~]# ls -l /dev/cdrom
lrwxrwxrwx. 1 root root 3 10月 28 15:57 /dev/cdrom -> sr0
2.Linux中挂载点就是一个目录
3.使用mount命令,提供设备访问点(挂载点)
mount挂载是个临时挂载
– 格式: mount 设备路径 挂载点目录
[[email protected] ~]# mkdir /abc #创建目录
[[email protected] ~]# ls /
[[email protected] ~]# ls /abc #查看目录内容为空
[[email protected] ~]# mount /dev/cdrom /abc #挂载设备命令
[[email protected] ~]# ls /abc #查看目录内容为光盘内容
[[email protected] ~]# ls /abc/P(tab) #查看光盘里包的内容
4.卸载
– 格式: umount 挂载点目录
[[email protected] ~]# umount /abc
[[email protected] ~]# ls /abc/
注意:挂载点不要放在根/下,卸载不了,因为永远在根/下
最好自己创建挂载点
常见提示:
1.当前在挂载点内
[[email protected] abc]# umount /abc/
umount: /abc:目标忙。
或者别的终端也挂载了,再开个终端也会挂载不了
2.挂载速度很慢,没有把光盘文件放入到光驱中
[[email protected] /]# mount /dev/cdrom /abc/
mount: 在 /dev/sr0 上找不到媒体
挂载点不要挂载在/root下,因为root原来会有很多文件,如果将光盘内容挂载进去,会把里面原有的隐藏掉
###############################################
重定向命令的输出
覆盖重定向 >
追加重定向 >>
把前面命令的输出结果,写入到文本文件中,再显示出来
重定向有个功能,当需要写入的文件不存在时,会给你创建一个
[[email protected] /]# ifconfig > /opt/test.txt #首先必须保证根下有opt/text.txt这个文件,直接这样创建
[[email protected] /]# cat /opt/test.txt//显示ifconfig内容
[[email protected] /]# hostname > /opt/test.txt
[[email protected] /]# cat /opt/test.txt//将上面的ifconfig内容覆盖掉,显示hostname内容
[[email protected] /]# hostname >> /opt/test.txt
[[email protected] /]# cat /opt/test.txt//在上面的hostname重新添加一个相同hostname内容
[[email protected] /]# ifconfig >> /opt/test.txt
[[email protected] /]# cat /opt/test.txt
[[email protected] /]# hostname > /opt/test.txt
[[email protected] /]# cat /opt/test.txt
[[email protected] /]# echo 12345678
[[email protected] /]# echo 12345678 >> /opt/test.txt
[[email protected] /]# cat /opt/test.txt
[[email protected] /]# echo hello >> /opt/test.txt
[[email protected] /]# cat /opt/test.txt
[[email protected] /]# echo hahaxixi > /opt/test.txt
[[email protected] /]# cat /opt/test.txt
[[email protected] /]# > /opt/test.txt #清空 文本文件 全部内容
[[email protected] /]# cat /opt/test.txt
####################################################
目录文件的管理
cd — Change Directory
– 用途:切换工作目录
– 格式:cd [目标文件夹位置]
相对路径: 不从根目录开始的路径
绝对路径: 从根目录开始的路径
.. 表示父目录,返回上一目录
. 表示当前目录
[[email protected] /]# cd /etc/pki/
[[email protected] pki]# cd ..
[[email protected] etc]# cd ..
[[email protected] /]# pwd
[[email protected] /]# cd /etc/pki/
[[email protected] pki]# cd ../..
[[email protected] /]# pwd
[[email protected] /]# cd /etc/pki/
[[email protected] pki]# ls
[[email protected] pki]# cd CA #相对路径
[[email protected] CA]# pwd
[[email protected] CA]# cd /
[[email protected] /]# cd /etc/pki/CA #绝对路径
[[email protected] CA]# pwd
家目录:用来存放用户个性化设置的目录
~: 代表家目录
~user 表示 用户user的家目录
#useradd xxx//添加普通用户
#cd ~xxx//去往该用户的家目录
/root: 管理员的家目录
/home : 存放所有普通用户的家目录//home不是普通用户的家目录,而是存放其用户家目录的地方
[[email protected] /]# useradd nsd01 #创建nsd01用户
[[email protected] /]# cd ~nsd01 #去往用户nsd01的家目录
[[email protected] nsd01]# pwd
/home/nsd01 #普通用户nsd01的家目录nsd01在home下
[[email protected] nsd01]# cd ~lisi #去往用户lisi的家目录
[[email protected] lisi]# pwd
/home/lisi #普通用户lisi的家目录lisi在home下
[[email protected] lisi]# useradd dc
[[email protected] lisi]# cd ~dc #去往用户dc的家目录
[[email protected] dc]# pwd
######################################################
ls — List
– 格式:ls [选项]... [目录或文件名]
常用命令选项
– -l:以长格式显示
– -A:包括名称以 . 开头的隐藏文档
– -d:显示目录本身(而不是内容)的属性,一般不单独使用,和-l连用
– -h:提供易读的容量单位(K、M等),只看空目录的容量,不包括目录下内容的容量,所以没什么意义,所以一般很少用到 -lhd
d和h一般和l连用
[[email protected] /]# ls -l /root #显示/root目录下详细内容
[[email protected] /]# ls -ld /root #显示root此目录本身的详细属性
[[email protected] /]# ls -lh /root #显示/root目录下详细内容带单位
[[email protected] /]# ls /root
[[email protected] /]# ls -A /root
[[email protected] /]# du -sh /boot #统计目录及包含的内容的大小
###################################################
使用通配符
– * : 任意多个任意字符
– ? : 单个字符
[[email protected] /]# ls /etc/*.conf//表示该目录下以.conf结尾的所有文档
[[email protected] /]# ls /etc/*tab//
[[email protected] /]# ls /dev/tty*//表示该目录下所有以tty开头的文档
[[email protected] /]# ls /dev/tty?//表示tty开头的后面所有一位的文档
[[email protected] /]# ls /dev/tty??
[[email protected] /]# ls /dev/tty???
针对不确定的文档名称,以特殊字符表示
– [a-z]:多个字符或连续范围中的一个,若无则忽略
– {a,min,xy}:多组不同的字符串,全匹配
[[email protected] /]# ls /dev/tty[3-8]
[[email protected] /]# ls /dev/tty[7-9]
[[email protected] /]# ls /dev/tty{1,3,5,7,9}
[[email protected] /]# ls /dev/tty{1,3,5,7,9,S0}
[[email protected] /]# ls /dev/tty{1,3,5,7,9,S0,haha}
请列出/dev/tty20 至 /dev/tty30 ?
[[email protected] /]# ls /dev/tty{2[0-9],30}
or
/dev/tty{2?,30}
注意:[]里只能表示0-9单个字符
比如:tty[20-30]只显示tty2,tty0,tty3,tty0
#################################################
命令的别名,简化复杂命令的输入
格式:alias 别名=‘定义的指令‘
alias别名只是临时的,下次开机会失效
[[email protected] /]# ls -ld /root/
[[email protected] /]# myls
bash: myls: 未找到命令...
[[email protected] /]# alias myls=‘ls -ld‘ #定义指令ls -ld别名为myls,指令要用‘‘括起来
[[email protected] /]# myls /root/ #实际就是ls -ld /root/,因为之前就讲ls -ls定义为myls别名
[[email protected] /]# myls /
[[email protected] /]# myls /home/
[[email protected] /]# alias #显示当前定义的有效别名
[[email protected] /]# unalias myls #删除别名
[[email protected] /]# myls /root/ #执行失败
bash: myls: 未找到命令...
注意:定义别名最好不要用关键字,比如pwd,cd,poweroff等
e.g:
将pwd定义为‘hostname’的别名,则再输入pwd会执行这个别名的功能,即alias的权限远高基本命令和基本程序的,linux只会听从管理员root的权限
##################################################
创建目录: mkdir
[[email protected] /]# mkdir /root/haha /mnt/xixi /opt/hehe /tmp/lele
创建多个目录,中间用空格隔开
[[email protected] /]# ls /root
[[email protected] /]# ls /mnt
[[email protected] /]# ls /opt
[[email protected] /]# ls /tmp
[[email protected] /]# mkdir -p /opt/aa/bb/cc/dd
创建子目录在前面加 -p(表示连父目录一起创建)
[[email protected] /]# ls /opt/
[[email protected] /]# ls /opt/aa
[[email protected] /]# ls /opt/aa/bb/
[[email protected] /]# ls /opt/aa/bb/cc/
创建文本文件: touch(文本文件)
[[email protected] /]# touch /opt/1.txt
[[email protected] /]# echo 123 > /opt/2.txt #文件2.txt里还有123内容
###############################################
rm — Remove
– 格式:rm [选项]... 文件或目录...
常用命令选项
– -r递归删除(目录连同底下的子目录一起删除)、-f:强制删除
单独rm会有提示你是否删除 y是,不敲默认否
rm其实是rm -i的别名
[[email protected] opt]# touch /opt/1.txt
[[email protected] opt]# touch /opt/2.txt
[[email protected] opt]# mkdir /opt/test
[[email protected] opt]# rm -rf /opt/1.txt
[[email protected] opt]# ls /opt
[[email protected] opt]# rm -rf /opt/*
[[email protected] opt]# ls /opt
###################################################
mv 移动/改名
mv — Move
– 格式: mv 原文件 目标路径
[[email protected] /]# echo 123 > /opt/1.txt
[[email protected] /]# mkdir /opt/nsd01
[[email protected] /]# ls /opt/
[[email protected] /]# ls /opt/nsd01
[[email protected] /]# mv /opt/1.txt /opt/nsd01
[[email protected] /]# ls /opt/
[[email protected] /]# ls /opt/nsd01/
重命名: 路径不变的移动
[[email protected] /]# ls /opt/
[[email protected] /]# mv /opt/nsd01/ /opt/test #将opt下的nsd01移动到opt下,重命名为test,nsd01没有了
[[email protected] /]# ls /opt/
[[email protected] /]# mv /opt/test/ /opt/haha
[[email protected] /]# ls /opt/
[[email protected] /]# mkdir /opt/test #创建test目录
[[email protected] /]# mv /opt/1.txt /opt/2.txt /root/3.txt /opt/test/ #不管前面有多少个文件,只会将最后一个当作目标目录,将前面的移动到最后一个目录里
#############################################
cp — Copy
– 格式:cp [选项]... 原文件... 目标路径
cp命令,对象不同,选项也不同,如果对象是文件,就不需加任何选项,加 -r也没关系
常用命令选项
– -r:对象是目录,递归,复制目录时必须有此选项
– -p:保持原文件的权 限、修改时间等属性不变
cp 也支持多参数拷贝
点 .:经常和cp连用,将文件拷贝到当前目录下
[[email protected] /]# rm -rf /opt/*
[[email protected] /]# ls /opt/
[[email protected] /]# cp /etc/passwd /opt/
[[email protected] /]# cp /etc/fstab /opt/
[[email protected] /]# ls /opt/
[[email protected] /]# cp -r /boot/ /opt/
[[email protected] /]# ls /opt/
[[email protected] /]# cd /opt #进入/opt
[[email protected] opt]# cp /etc/inittab . #复制/etc/inittab到/opt本身目录下 后面加 .
[[email protected] opt]# ls
[[email protected] /]# rm -rf /opt/*
[[email protected] /]# ls /opt
[[email protected] /]# cp -r /boot/ /opt/
[[email protected] /]# ls /opt
[[email protected] /]# cp -r /boot/ /opt/ #重新复制相同目录会提示是否覆盖,
按Ctrl+c结束 是由 -i决定的,因为cp是cp -i的别名,系统默认设置好的, “cp -if”强制覆盖也没用,因为alias里的-i的优先级高于 -f(只有cp命令才高于-f,其他的优先级-f高于其他)
可以取消别名 unalias=‘cp‘,但是为了安全起见,最好不要取消,万一有些东西重要,不能覆盖,这时可以用 \\ 来临时取消别名定义,强制覆盖
[[email protected] /]# \\cp -r /boot/ /opt/ # \\:在本次操作临时取消别名的定义,强制覆盖
创建的文件都有所有者的,不会凭空而来,
Linux中查看所有者 ls -l
举例:
# ls -l /root/
总用量 4
drwxr-xr-x. 2 root root 6 10月 28 15:42 abc
-rw-------. 1 root root 1822 10月 24 19:10 anaconda-ks.cfg
drwxr-xr-x. 2 root root 6 10月 28 16:20 haha
drwxr-xr-x. 2 root root 6 10月 24 19:26 公共
drwxr-xr-x. 2 root root 6 10月 24 19:26 模板
drwxr-xr-x. 2 root root 6 10月 24 19:26 视频
drwxr-xr-x. 2 root root 6 10月 24 19:26 图片
drwxr-xr-x. 2 root root 6 10月 24 19:26 文档
drwxr-xr-x. 2 root root 6 10月 24 19:26 下载
drwxr-xr-x. 2 root root 6 10月 24 19:26 音乐
drwxr-xr-x. 2 root root 6 10月 24 19:26 桌面
root用户的所有者都是root
而普通用户的家只属于本身普通用户
举例:
ls -l /home/
总用量 0
drwx------. 3 22 22 74 10月 25 19:58 22
drwx------. 3 a1 a1 74 10月 28 16:10 a1
drwx------. 3 a2 a2 74 10月 28 16:11 a2
drwx------. 3 b1 b1 74 10月 28 16:11 b1
drwx------. 3 hdq hdq 74 10月 25 19:05 hdq
drwx------. 3 hdq24 hdq24 74 10月 24 18:36 hdq24
drwx------. 3 kb2 kb2 74 10月 25 20:00 kb2
如果将普通用户的目录复制到root用户下,root会将其当作自己目录下,而不是普通用户下
举例:
[[email protected] /]# cp -r /home/hdq /opt/
[[email protected] /]# ls /opt/
boot hdq
[[email protected] /]# ls -ld /opt/hdq
drwx------. 3 root root 74 10月 28 17:45 /opt/hdq
此时复制过来的home的hdq的所有者就是root
要将所有者的属性不变,则需要命令cp -rp进行拷贝
[[email protected] /]# ls -ld /home/lisi/
[[email protected] /]# cp -rp /home/lisi/ /mnt/ #保持属性不变进行拷贝
[[email protected] /]# ls -ld /mnt/lisi/
[[email protected] /]# cp etc/passwd /opt/
[[email protected] /]# ls opt/
hdq passwd
[[email protected] /]# cp etc/passwd /opt/123 #重新拷贝一份再重命名
[[email protected] /]# ls /opt/
123 hdq passwd
######################################################
使用vim创建/修改文件
vim文本编辑器 :可以修改文本文件的内容
-若目标文件不存在,则新建空文件夹并编辑
-若目标文件已存在,则打开此文件夹并编辑
命令模式(只能看) 输入模式(输入) 末行模式(保存退出)
[[email protected] /]# vim /opt/haxi.txt(新建此文件) #命令模式
i 键
命--------------------->输入模式(Esc 键)
令
模
式--------------------->末行模式(Esc 键)
:键
在末行模式下 输入 :wq 保存退出
在末行模式下 输入 :q! 不保存退出
举例:
[[email protected] /]# vim /opt/xixi.txt #进入vim编辑界面(命令模式)
kobe bryant
huangdaoqi
....
~
~
~
~
[[email protected] /]# cat /opt/xixi.txt #退出查看
kobe bryant
huangdaoqi
##################################################
以上是关于linux基本命令操作-目录与文件的配置和管理的主要内容,如果未能解决你的问题,请参考以下文章
Linux系统安装与使用基础之第一篇安装并配置Linux(CentOS 7)操作系统
常用的Linux命令:Linux命令是Linux操作系统中的基本工具,用于管理文件目录进程等系统资源