您的位置:首页 > 运维架构 > Linux

linux基本命令操作-目录与文件的配置和管理

2017-10-28 19:35 811 查看
Linux命令
用户输入的指令----->解释器----->内核------->硬件
-用来实现某一功能的指令或程序

-输入命令然后执行相应的程序来实现功能,不是简单的命令字符实现的
程序在bin下:#ls /bin/xxx
-命令的执行依赖于解析器(shell):(默认的解析器:/bin/bash)
内核(只识别二进制的文件)根据命令来调配硬件,不能识别命令所需执行的功能,需要一个翻译官,就是解析器来实现

命令行的一般格式:

基本用法
– 命令字 [选项]... [参数1] [参数2]... #中括号表示可有可无

[root@server0 ~]# ls -l /root/

[root@A ~]# ls /root

[root@A ~]# ls -l /root #显示目录下详细信息

[root@A ~]# ls -l /boot #显示目录下详细信息

[root@A ~]# ls -l -h /boot #显示目录下详细信息,加上单位(K,M,G)

[root@A ~]# ls -lh /boot #显示目录下详细信息,加上单位

[root@A ~]# 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 :将光标后面的字符清除

[root@A ~]# ls /etc/sysconfig/network-scripts/ifcfg-eth0

[root@A ~]# ls -l Esc + .

[root@A ~]# ls -lh Esc + .

[root@A ~]# cat Esc + .

[root@A ~]# 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 复制过去

[root@A ~]# ls /dev/cdrom
/dev/cdrom
[root@A ~]# ls -l /dev/cdrom
lrwxrwxrwx. 1 root root 3 10月 28 15:57 /dev/cdrom -> sr0

2.Linux中挂载点就是一个目录

3.使用mount命令,提供设备访问点(挂载点)
mount挂载是个临时挂载

– 格式: mount 设备路径 挂载点目录

[root@A ~]# mkdir /abc #创建目录
[root@A ~]# ls /

[root@A ~]# ls /abc #查看目录内容为空

[root@A ~]# mount /dev/cdrom /abc #挂载设备命令
[root@A ~]# ls /abc #查看目录内容为光盘内容

[root@A ~]# ls /abc/P(tab) #查看光盘里包的内容

4.卸载
– 格式: umount 挂载点目录
[root@A ~]# umount /abc
[root@A ~]# ls /abc/

注意:挂载点不要放在根/下,卸载不了,因为永远在根/下
最好自己创建挂载点

常见提示:
1.当前在挂载点内
[root@A abc]# umount /abc/
umount: /abc:目标忙。

或者别的终端也挂载了,再开个终端也会挂载不了

2.挂载速度很慢,没有把光盘文件放入到光驱中
[root@A /]# mount /dev/cdrom /abc/
mount: 在 /dev/sr0 上找不到媒体

挂载点不要挂载在/root下,因为root原来会有很多文件,如果将光盘内容挂载进去,会把里面原有的隐藏掉

###############################################
重定向命令的输出
覆盖重定向 >
追加重定向 >>
把前面命令的输出结果,写入到文本文件中,再显示出来
重定向有个功能,当需要写入的文件不存在时,会给你创建一个

[root@A /]# ifconfig > /opt/test.txt #首先必须保证根下有opt/text.txt这个文件,直接这样创建
[root@A /]# cat /opt/test.txt//显示ifconfig内容

[root@A /]# hostname > /opt/test.txt
[root@A /]# cat /opt/test.txt//将上面的ifconfig内容覆盖掉,显示hostname内容

[root@A /]# hostname >> /opt/test.txt
[root@A /]# cat /opt/test.txt//在上面的hostname重新添加一个相同hostname内容

[root@A /]# ifconfig >> /opt/test.txt
[root@A /]# cat /opt/test.txt

[root@A /]# hostname > /opt/test.txt
[root@A /]# cat /opt/test.txt

[root@A /]# echo 12345678

[root@A /]# echo 12345678 >> /opt/test.txt
[root@A /]# cat /opt/test.txt

[root@A /]# echo hello >> /opt/test.txt
[root@A /]# cat /opt/test.txt

[root@A /]# echo hahaxixi > /opt/test.txt
[root@A /]# cat /opt/test.txt

[root@A /]# > /opt/test.txt #清空 文本文件 全部内容
[root@A /]# cat /opt/test.txt

####################################################
目录文件的管理

cd — Change Directory
– 用途:切换工作目录
– 格式:cd [目标文件夹位置]

相对路径: 不从根目录开始的路径
绝对路径: 从根目录开始的路径

.. 表示父目录,返回上一目录
. 表示当前目录

[root@A /]# cd /etc/pki/
[root@A pki]# cd ..
[root@A etc]# cd ..
[root@A /]# pwd

[root@A /]# cd /etc/pki/
[root@A pki]# cd ../..
[root@A /]# pwd

[root@A /]# cd /etc/pki/
[root@A pki]# ls

[root@A pki]# cd CA #相对路径
[root@A CA]# pwd

[root@A CA]# cd /
[root@A /]# cd /etc/pki/CA #绝对路径
[root@A CA]# pwd

家目录:用来存放用户个性化设置的目录
~: 代表家目录
~user 表示 用户user的家目录

#useradd xxx//添加普通用户
#cd ~xxx//去往该用户的家目录

/root: 管理员的家目录
/home : 存放所有普通用户的家目录//home不是普通用户的家目录,而是存放其用户家目录的地方

[root@A /]# useradd nsd01 #创建nsd01用户
[root@A /]# cd ~nsd01 #去往用户nsd01的家目录
[root@A nsd01]# pwd
/home/nsd01 #普通用户nsd01的家目录nsd01在home下

[root@A nsd01]# cd ~lisi #去往用户lisi的家目录
[root@A lisi]# pwd
/home/lisi #普通用户lisi的家目录lisi在home下

[root@A lisi]# useradd dc
[root@A lisi]# cd ~dc #去往用户dc的家目录
[root@A dc]# pwd
######################################################
ls — List
– 格式:ls [选项]... [目录或文件名]

常用命令选项
– -l:以长格式显示
– -A:包括名称以 . 开头的隐藏文档
– -d:显示目录本身(而不是内容)的属性,一般不单独使用,和-l连用
– -h:提供易读的容量单位(K、M等),只看空目录的容量,不包括目录下内容的容量,所以没什么意义,所以一般很少用到 -lhd

d和h一般和l连用

[root@A /]# ls -l /root #显示/root目录下详细内容

[root@A /]# ls -ld /root #显示root此目录本身的详细属性

[root@A /]# ls -lh /root #显示/root目录下详细内容带单位

[root@A /]# ls /root

[root@A /]# ls -A /root
[root@A /]# du -sh /boot #统计目录及包含的内容的大小

###################################################
使用通配符
– * : 任意多个任意字符
– ? : 单个字符

[root@A /]# ls /etc/*.conf//表示该目录下以.conf结尾的所有文档
[root@A /]# ls /etc/*tab//
[root@A /]# ls /dev/tty*//表示该目录下所有以tty开头的文档

[root@A /]# ls /dev/tty?//表示tty开头的后面所有一位的文档
[root@A /]# ls /dev/tty??
[root@A /]# ls /dev/tty???

针对不确定的文档名称,以特殊字符表示
– [a-z]:多个字符或连续范围中的一个,若无则忽略
– {a,min,xy}:多组不同的字符串,全匹配

[root@A /]# ls /dev/tty[3-8]
[root@A /]# ls /dev/tty[7-9]

[root@A /]# ls /dev/tty{1,3,5,7,9}

[root@A /]# ls /dev/tty{1,3,5,7,9,S0}

[root@A /]# ls /dev/tty{1,3,5,7,9,S0,haha}

请列出/dev/tty20 至 /dev/tty30 ?

[root@A /]# ls /dev/tty{2[0-9],30}
or
/dev/tty{2?,30}
注意:[]里只能表示0-9单个字符
比如:tty[20-30]只显示tty2,tty0,tty3,tty0
#################################################
命令的别名,简化复杂命令的输入
格式:alias 别名='定义的指令'
alias别名只是临时的,下次开机会失效

[root@A /]# ls -ld /root/
[root@A /]# myls
bash: myls: 未找到命令...

[root@A /]# alias myls='ls -ld' #定义指令ls -ld别名为myls,指令要用''括起来
[root@A /]# myls /root/ #实际就是ls -ld /root/,因为之前就讲ls -ls定义为myls别名

[root@A /]# myls /

[root@A /]# myls /home/

[root@A /]# alias #显示当前定义的有效别名

[root@A /]# unalias myls #删除别名
[root@A /]# myls /root/ #执行失败
bash: myls: 未找到命令...

注意:定义别名最好不要用关键字,比如pwd,cd,poweroff等
e.g:
将pwd定义为‘hostname’的别名,则再输入pwd会执行这个别名的功能,即alias的权限远高基本命令和基本程序的,linux只会听从管理员root的权限

##################################################

创建目录: mkdir

[root@A /]# mkdir /root/haha /mnt/xixi /opt/hehe /tmp/lele
创建多个目录,中间用空格隔开
[root@A /]# ls /root

[root@A /]# ls /mnt

[root@A /]# ls /opt

[root@A /]# ls /tmp

[root@A /]# mkdir -p /opt/aa/bb/cc/dd
创建子目录在前面加 -p(表示连父目录一起创建)
[root@A /]# ls /opt/

[root@A /]# ls /opt/aa

[root@A /]# ls /opt/aa/bb/

[root@A /]# ls /opt/aa/bb/cc/

创建文本文件: touch(文本文件)

[root@A /]# touch /opt/1.txt

[root@A /]# echo 123 > /opt/2.txt #文件2.txt里还有123内容

[root@A /]# touch /opt/test #test是个文件不是目录!

###############################################
rm — Remove
– 格式:rm [选项]... 文件或目录...

常用命令选项
– -r递归删除(目录连同底下的子目录一起删除)、-f:强制删除

单独rm会有提示你是否删除 y是,不敲默认否

rm其实是rm -i的别名

[root@A opt]# touch /opt/1.txt
[root@A opt]# touch /opt/2.txt
[root@A opt]# mkdir /opt/test

[root@A opt]# rm -rf /opt/1.txt

[root@A opt]# ls /opt

[root@A opt]# rm -rf /opt/*
[root@A opt]# ls /opt

###################################################
mv 移动/改名
mv — Move
– 格式: mv 原文件 目标路径

[root@A /]# echo 123 > /opt/1.txt
[root@A /]# mkdir /opt/nsd01
[root@A /]# ls /opt/

[root@A /]# ls /opt/nsd01
[root@A /]# mv /opt/1.txt /opt/nsd01
[root@A /]# ls /opt/
[root@A /]# ls /opt/nsd01/

重命名: 路径不变的移动
[root@A /]# ls /opt/

[root@A /]# mv /opt/nsd01/ /opt/test #将opt下的nsd01移动到opt下,重命名为test,nsd01没有了
[root@A /]# ls /opt/

[root@A /]# mv /opt/test/ /opt/haha
[root@A /]# ls /opt/
[root@A /]# mkdir /opt/test #创建test目录
[root@A /]# mv /opt/1.txt /opt/2.txt /root/3.txt /opt/test/ #不管前面有多少个文件,只会将最后一个当作目标目录,将前面的移动到最后一个目录里

#############################################
cp — Copy
– 格式:cp [选项]... 原文件... 目标路径
cp命令,对象不同,选项也不同,如果对象是文件,就不需加任何选项,加 -r也没关系

常用命令选项
– -r:对象是目录,递归,复制目录时必须有此选项
– -p:保持原文件的权 限、修改时间等属性不变

cp 也支持多参数拷贝

点 .:经常和cp连用,将文件拷贝到当前目录下

[root@A /]# rm -rf /opt/*
[root@A /]# ls /opt/
[root@A /]# cp /etc/passwd /opt/
[root@A /]# cp /etc/fstab /opt/
[root@A /]# ls /opt/

[root@A /]# cp -r /boot/ /opt/
[root@A /]# ls /opt/

[root@A /]# cd /opt #进入/opt
[root@A opt]# cp /etc/inittab . #复制/etc/inittab到/opt本身目录下 后面加 .
[root@A opt]# ls

[root@A /]# rm -rf /opt/*
[root@A /]# ls /opt
[root@A /]# cp -r /boot/ /opt/
[root@A /]# ls /opt

[root@A /]# cp -r /boot/ /opt/ #重新复制相同目录会提示是否覆盖,
按Ctrl+c结束 是由 -i决定的,因为cp是cp -i的别名,系统默认设置好的, “cp -if”强制覆盖也没用,因为alias里的-i的优先级高于 -f(只有cp命令才高于-f,其他的优先级-f高于其他)

可以取消别名 unalias='cp',但是为了安全起见,最好不要取消,万一有些东西重要,不能覆盖,这时可以用 \\ 来临时取消别名定义,强制覆盖

[root@A /]# \\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会将其当作自己目录下,而不是普通用户下
举例:
[root@hdq /]# cp -r /home/hdq /opt/
[root@hdq /]# ls /opt/
boot hdq
[root@hdq /]# ls -ld /opt/hdq
drwx------. 3 root root 74 10月 28 17:45 /opt/hdq
此时复制过来的home的hdq的所有者就是root

要将所有者的属性不变,则需要命令cp -rp进行拷贝

[root@A /]# ls -ld /home/lisi/

[root@A /]# cp -rp /home/lisi/ /mnt/ #保持属性不变进行拷贝

[root@A /]# ls -ld /mnt/lisi/

[root@hdq /]# cp etc/passwd /opt/
[root@hdq /]# ls opt/
hdq passwd
[root@hdq /]# cp etc/passwd /opt/123 #重新拷贝一份再重命名
[root@hdq /]# ls /opt/
123 hdq passwd

######################################################

使用vim创建/修改文件

vim文本编辑器 :可以修改文本文件的内容
-若目标文件不存在,则新建空文件夹并编辑
-若目标文件已存在,则打开此文件夹并编辑

命令模式(只能看) 输入模式(输入) 末行模式(保存退出)

[root@A /]# vim /opt/haxi.txt(新建此文件) #命令模式

i 键
命--------------------->输入模式(Esc 键)


式--------------------->末行模式(Esc 键)
:键

在末行模式下 输入 :wq 保存退出
在末行模式下 输入 :q! 不保存退出

举例:
[root@hdq /]# vim /opt/xixi.txt #进入vim编辑界面(命令模式)
kobe bryant
huangdaoqi
....
~
~
~
~
[root@hdq /]# cat /opt/xixi.txt #退出查看

kobe bryant
huangdaoqi

##################################################
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息