一、目录文件
1.文件目录
(1)Windows系统:以多根的方式组织文件(如:C:\、D:\、E:\)
Linux系统:以单根的方式组织文件
注意:在Windows系统中编辑过的文件,在Linux系统中不能执行(原因:因为在Windows系统下编辑过的文件,放到Linux系统中无法识别格式,一般是换行符不兼容导致的)
(2)ls命令:查看根目录下的文件
[root@localhost ~]# ls / bin dev dir10 file01.txt lib media opt root sbin sys usr boot dir01 etc home lib64 mnt proc run srv tmp var示例
注意:该命令输出结果的不同颜色代表不同的文件类型,系统默认的为:蓝色:目录;绿色:可执行文件;浅蓝色:链接文件;红色:压缩文件;黄色:设备文件。用户可根据自己的喜好自定义各种文件颜色。
(3)根目录下常见目录介绍
/ | 根目录,只包含目录,不包含具体文件 |
/etc | 主要包含系统管理文件和配置文件 |
/bin | 存放可执行的文件,如:ls、mkdir、rm等 |
/home | 普通用户的工作目录,每个用户都有一个/home目录 |
/usr | 占空间最大的目录,包含所有的用户程序(/usr/bin)、库文件(/usr/lib)、文档(/usr/share/doc)等 |
/dev | 存放设备文件,包括块设备文件(如磁盘对应文件)、字符设备文件(如键盘对应文件)等 |
/root | 超级用户,即管理员的工作目录 |
/lib | 主要存放动态链接共享库文件,类似于Windows中的.dll文件,该目录中的文件一般以.a、.dll、.so结尾(后缀不代表文件类型),也会存放与内核模块相关的文件 |
/boot | 存放操作系统启动时需要用到的文件,如内核文件、引导程序文件等 |
/mnt | 存储挂载存储设备的挂载目录 |
/proc | 存放系统内存的映射,可直接通过访问该目录来获取系统信息 |
/opt |
存放附加的应用程序软件包 |
/tmp | 存放临时文件,重启系统后该目录的文件不会被保存。每个用户都能创建该目录,但不能删除其他用户的/tmp目录 |
/swap | 存放虚拟内存交换时所用文件 |
2.文件路径
(1)概念:用户在磁盘中查找文件时,所历经的文件夹线路称为文件路径。
(2)在Linux系统中,用户可以通过tree命令显示路径结构。
[root@localhost ~]# tree . ├── abc.txt ├── anaconda-ks.cfg ├── ciji.txt ├── date.txt ├── error.txt ├── file01 ├── file01.txt ├── file02 ├── file02.txt ├── file03.txt ├── file04.txt ├── initial-setup-ks.cfg ├── list.txt ├── qf.txt ├── user.txt ├── \345\205\254\345\205\261 ├── \346\250\241\346\235\277 ├── \350\247\206\351\242\221 ├── \345\233\276\347\211\207 ├── \346\226\207\346\241\243 ├── \344\270\213\350\275\275 ├── \351\237\263\344\271\220 └── \346\241\214\351\235\242 8 directories, 15 files示例
(3)绝对路径:从根目录(/)开始的路经
[root@localhost ~]# cd /usr/share/doc/ [root@localhost doc]# pwd /usr/share/doc示例
(4)相对路径:相对于当前工作目录的路径
[root@localhost ~]# cd /usr/share/doc/ [root@localhost doc]# cd ../man [root@localhost man]# pwd /usr/share/man示例
(5)“..” :表示当前目录的上层目录
“.” :表示当前目录
“/” :表示当前目录的下层目录
二、基本命令
1.目录操作
(1)mkdir命令:创建一个空白目录
mkdir -p命令:创建一个多层目录
[root@localhost ~]# mkdir abc [root@localhost ~]# ls abc date.txt file02 initial-setup-ks.cfg 公共 文档 abc.txt error.txt file02.txt list.txt 模板 下载 anaconda-ks.cfg file01 file03.txt qf.txt 视频 音乐 ciji.txt file01.txt file04.txt user.txt 图片 桌面 [root@localhost ~]# mkdir -p aba/abb/abc [root@localhost ~]# cd aba/abb/abc [root@localhost abc]# pwd /root/aba/abb/abc示例
(2)pwd命令:显示当前工作目录的绝对目录
pwd -P命令:显示当前工作目录的实际目录
[root@localhost ~]# cd /lib [root@localhost lib]# pwd /lib [root@localhost lib]# pwd -P /usr/lib示例
(3)ls命令:列出当前目录的内容或指定目录
ls -a命令:查看隐藏的目录与文件
ls -l命令:查看目录与文件属性(可简写为ll)
[root@localhost ~]# mkdir .add [root@localhost ~]# ls aba date.txt file02.txt qf.txt 图片 abc error.txt file03.txt user.txt 文档 abc.txt file01 file04.txt 公共 下载 anaconda-ks.cfg file01.txt initial-setup-ks.cfg 模板 音乐 ciji.txt file02 list.txt 视频 桌面 [root@localhost ~]# ls -a . .bash_profile .esd_auth list.txt 视频 .. .bashrc file01 .local 图片 aba .cache file01.txt qf.txt 文档 abc ciji.txt file02 .tcshrc 下载 abc.txt .config file02.txt user.txt 音乐 .add .cshrc file03.txt .viminfo 桌面 anaconda-ks.cfg date.txt file04.txt .Xauthority .bash_history .dbus .ICEauthority 公共 .bash_logout error.txt initial-setup-ks.cfg 模板 [root@localhost ~]# ls -l 总用量 2088 drwxr-xr-x. 3 root root 17 11月 3 16:12 aba drwxr-xr-x. 2 root root 6 11月 3 16:11 abc -rw-r--r--. 1 root root 0 10月 25 13:52 abc.txt -rw-------. 1 root root 1531 9月 13 16:23 anaconda-ks.cfg -rw-r--r--. 1 root root 13 10月 25 15:14 ciji.txt -rw-r--r--. 1 root root 86 11月 1 14:32 date.txt -rw-r--r--. 1 root root 57 11月 1 14:34 error.txt -rw-r--r--. 1 root root 0 10月 25 14:57 file01 -rw-r--r--. 1 root root 12 11月 1 15:20 file01.txt -rw-r--r--. 1 root root 0 10月 25 14:57 file02 -rw-r--r--. 1 root root 2097152 11月 1 15:14 file02.txt -rw-r--r--. 1 root root 4 11月 1 15:20 file03.txt -rw-r--r--. 1 root root 12 11月 1 15:24 file04.txt -rw-r--r--. 1 root root 1579 9月 13 16:24 initial-setup-ks.cfg -rw-r--r--. 1 root root 119 11月 1 14:55 list.txt -rw-r--r--. 1 root root 9 9月 20 12:03 qf.txt -rw-r--r--. 1 root root 0 11月 1 15:14 user.txt drwxr-xr-x. 2 root root 6 9月 13 16:26 公共 drwxr-xr-x. 2 root root 6 9月 13 16:26 模板 drwxr-xr-x. 2 root root 6 9月 13 16:26 视频 drwxr-xr-x. 2 root root 6 9月 13 16:26 图片 drwxr-xr-x. 2 root root 6 9月 13 16:26 文档 drwxr-xr-x. 2 root root 6 9月 13 16:26 下载 drwxr-xr-x. 2 root root 6 9月 13 16:26 音乐 drwxr-xr-x. 2 root root 6 9月 13 16:26 桌面示例
(4)cd命令:切换目录
cd - 命令:返回上次目录
cd不加任何路径表示直接回到root目录
[root@localhost ~]# cd /root/aba/abb/abc [root@localhost abc]# cd [root@localhost ~]# cd - /root/aba/abb/abc [root@localhost abc]#示例
(5)rmdir命令:删除空目录
rmdir -p命令:连同上层空目录一起删除
[root@localhost lib]# mkdir abc [root@localhost lib]# ls abc fontconfig jvm modules sendmail.postfix alsa games jvm-commmon modules-load.d sse2 binfmt.d grub jvm-exports mozilla sysctl.d crda java jvm-private NetworkManager systemd cups java-1.5.0 kbd os-release tmpfiles.d debug java-1.6.0 kdump polkit-1 tuned dracut java-1.7.0 kernel python2.7 udev firewalld java-1.8.0 locale rpm yum-plugins firmware java-ext modprobe.d sendmail [root@localhost lib]# rmdir abc [root@localhost lib]# ls alsa games jvm-commmon modules-load.d sse2 binfmt.d grub jvm-exports mozilla sysctl.d crda java jvm-private NetworkManager systemd cups java-1.5.0 kbd os-release tmpfiles.d debug java-1.6.0 kdump polkit-1 tuned dracut java-1.7.0 kernel python2.7 udev firewalld java-1.8.0 locale rpm yum-plugins firmware java-ext modprobe.d sendmail fontconfig jvm modules sendmail.postfix [root@localhost lib]# pwd /lib示例
[root@localhost ~]# mkdir -p abc/abd [root@localhost ~]# cd /root/abc/abd [root@localhost abd]# pwd /root/abc/abd [root@localhost abd]# cd [root@localhost ~]# rmdir -p abc/abd [root@localhost ~]# ls aba date.txt file02 initial-setup-ks.cfg 公共 文档 abc.txt error.txt file02.txt list.txt 模板 下载 anaconda-ks.cfg file01 file03.txt qf.txt 视频 音乐 ciji.txt file01.txt file04.txt user.txt 图片 桌面示例
2.文件目录
(1)touch命令:创建一个空白文件,也可以设置文件、属性
touch -c命令:如果创建的文件已经存在,使用“-c”参数删除
touch -d命令:修改文件时间
echo命令:写入新的内容到某文件中
>>:追加符号,如:echo命令写入新的内容到某文件末尾时用“>>”追加
>:将某些内容写入某个文件,如果文件不存在,则会创建它
[root@localhost ~]# touch qf.txt [root@localhost ~]# ll qf.txt -rw-r--r--. 1 root root 9 11月 5 10:43 qf.txt [root@localhost ~]# echo "www.qfedu.com" >> qf.txt [root@localhost ~]# ll qf.txt -rw-r--r--. 1 root root 23 11月 5 10:44 qf.txt [root@localhost ~]# touch -d "2018-03-30 12:00" qf.txt [root@localhost ~]# ls -l qf.txt -rw-r--r--. 1 root root 23 3月 30 2018 qf.txt示例
[root@localhost ~]# touch -c qf.txt [root@localhost ~]# ll qf.txt -rw-r--r--. 1 root root 23 11月 5 10:46 qf.txt [root@localhost ~]# echo "www.qfedu.com" > cj.txt [root@localhost ~]# ll cj.txt -rw-r--r--. 1 root root 14 11月 5 10:47 cj.txt示例
(2)cat命令:查看内容较少的文件内容
cat -n命令:查看文件内容时可显示行号
cat -A命令:查看文件内容时显示不可显示控制字符(换行符/制表符)
[root@localhost ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 [root@localhost ~]# cat -n /etc/hosts 1 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 2 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 [root@localhost ~]# cat -A /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4$ ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6$示例
(3)more命令:查看内容较长的文件,以逐页的方式显示文件内容(空格键:向下翻一页;b键:向上翻一页)
[root@localhost ~]# more /etc/profile # /etc/profile # System wide environment and startup programs, for login setup # Functions and aliases go in /etc/bashrc # It's NOT a good idea to change this file unless you know what you # are doing. It's much better to create a custom.sh shell script in # /etc/profile.d/ to make custom changes to your environment, as this # will prevent the need for merging in future updates. pathmunge () { case ":${PATH}:" in *:"$1":*) ;; *) if [ "$2" = "after" ] ; then PATH=$PATH:$1 else PATH=$1:$PATH fi esac } --More--(%33)示例
(4)less命令:对文件或其他输出进行分页显示,查找文件内容比more更容易(用pageup、pagedown与方向键来上下翻页看文件,最后按q键退出)
# /etc/profile # System wide environment and startup programs, for login setup # Functions and aliases go in /etc/bashrc # It's NOT a good idea to change this file unless you know what you # are doing. It's much better to create a custom.sh shell script in # /etc/profile.d/ to make custom changes to your environment, as this # will prevent the need for merging in future updates. pathmunge () { case ":${PATH}:" in *:"$1":*) ;; *) if [ "$2" = "after" ] ; then PATH=$PATH:$1 else PATH=$1:$PATH fi esac } if [ -x /usr/bin/id ]; then if [ -z "$EUID" ]; then # ksh workaround EUID=`/usr/bin/id -u` UID=`/usr/bin/id -ru` fi USER="`/usr/bin/id -un`" LOGNAME=$USER MAIL="/var/spool/mail/$USER" fi # Path manipulation if [ "$EUID" = "0" ]; then pathmunge /usr/sbin pathmunge /usr/local/sbin else /etc/profile示例
(5)head命令:查看文件前几行内容
head -n命令:显示文件的前n行
[root@localhost ~]# head /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin [root@localhost ~]# head -3 /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin示例
(6)tail命令:查看文件后几行内容
tail -n命令:显示文件的后几行
tail -f命令:查看动态文件
[root@localhost ~]# tail -l /etc/passwd user02:x:1002:1004::/home/user02:/bin/bash user05:x:1004:1006::/home/user05:/bin/bash user03:x:1005:1005::/home/user03:/sbin/nologin user01:x:1006:2002::/home/user01:/bin/bash tom:x:1007:2004::/home/tom:/bin/bash quwe01:x:1008:2005::/home/quwe01:/bin/bash quwe02:x:1009:2006::/home/quwe02:/bin/bash linux01:x:1010:1010::/home/linux01:/bin/bash linux02:x:1011:1011::/home/linux02:/bin/bash linux03:x:1012:1012::/home/linux03:/bin/bash [root@localhost ~]# tail -3 /etc/passwd linux01:x:1010:1010::/home/linux01:/bin/bash linux02:x:1011:1011::/home/linux02:/bin/bash linux03:x:1012:1012::/home/linux03:/bin/bash示例
(7)grep命令:对文件内容进行过滤、搜索关键词
例如:# grep ‘root' /etc/passwd 显示含有root的行
# grep ‘^root' /etc/passwd 显示以root开头的行
# grep ‘bash’ /etc/passwd 显示以bash结尾的行
[root@localhost ~]# grep 'root' /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin [root@localhost ~]# grep '^root' /etc/passwd root:x:0:0:root:/root:/bin/bash [root@localhost ~]# grep 'bash$' /etc/passwd root:x:0:0:root:/root:/bin/bash ciji:x:1000:1000:ciji:/home/ciji:/bin/bash qf01:x:1001:1001::/home/qf01:/bin/bash user02:x:1002:1004::/home/user02:/bin/bash user05:x:1004:1006::/home/user05:/bin/bash user01:x:1006:2002::/home/user01:/bin/bash tom:x:1007:2004::/home/tom:/bin/bash quwe01:x:1008:2005::/home/quwe01:/bin/bash quwe02:x:1009:2006::/home/quwe02:/bin/bash linux01:x:1010:1010::/home/linux01:/bin/bash linux02:x:1011:1011::/home/linux02:/bin/bash linux03:x:1012:1012::/home/linux03:/bin/bash示例
(8)cp命令:复制文件 cp file(源文件) file2(目标文件)
(cp命令除了复制单个文件之外,还可复制整个目录,创建链接文件,对比新旧文件而予以更新)
[root@localhost ~]# touch abc.txt [root@localhost ~]# echo "aaa" >> abc.txt [root@localhost ~]# cat abc.txt aaa [root@localhost ~]# touch abc1.txt [root@localhost ~]# echo "abb" > abc1.txt [root@localhost ~]# cat abc1.txt abb [root@localhost ~]# cp abc.txt abc1.txt cp:是否覆盖"abc1.txt"? y [root@localhost ~]# cat abc.txt aaa [root@localhost ~]# cat abc1.txt aaa示例
(9)mv命令:移动或者重命名文件或目录 mv file(源文件) file2(目标文件)
[root@localhost ~]# ls aba ciji.txt error.txt file01.txt file02.txt file04.txt list.txt user.txt 模板 图片 下载 桌面 anaconda-ks.cfg date.txt file01 file02 file03.txt initial-setup-ks.cfg qf.txt 公共 视频 文档 音乐 [root@localhost ~]# mv error.txt file01.txt mv:是否覆盖"file01.txt"? y [root@localhost ~]# ls aba ciji.txt file01 file02 file03.txt initial-setup-ks.cfg qf.txt 公共 视频 文档 音乐 anaconda-ks.cfg date.txt file01.txt file02.txt file04.txt list.txt user.txt 模板 图片 下载 桌面示例
(10)rm命令:删除文件 rm file2(目标文件或目录)
rm -r命令:删除目录
rm -rf命令:可跳过验证直接执行删除操作
[root@localhost ~]# ls aba date.txt file02.txt qf.txt 图片 abc.txt error.txt file03.txt user.txt 文档 anaconda-ks.cfg file01 file04.txt 公共 下载 ciji.txt file01.txt initial-setup-ks.cfg 模板 音乐 cj.txt file02 list.txt 视频 桌面 [root@localhost ~]# rm cj.txt rm:是否删除普通文件 "cj.txt"?y [root@localhost ~]# ls aba date.txt file02 initial-setup-ks.cfg 公共 文档 abc.txt error.txt file02.txt list.txt 模板 下载 anaconda-ks.cfg file01 file03.txt qf.txt 视频 音乐 ciji.txt file01.txt file04.txt user.txt 图片 桌面示例
三、Vim编辑器
1、三种模式
(1)命令模式:控制光标,对文件进行复制、粘贴、删除、查询等操作
(2)编辑命令:进行文本录入与更改
(3)末行模式:文档保存与退出,设置编辑环境
末行模式下,“qw”:保存退出;“q!”:强制退出
2、常用命令
(1)光标定位常用命令:
命令 | 说明 |
h、j、k、l | 光标上下左右移动。也可用键盘自带方向键 |
0和$ | 光标移动到行首、行尾 |
gg和G | 光标移动到第一行首个字符的位置和光标移动到最后一行首个字符的位置 |
/字符串 | 快速定位到字符串所在的行 |
/^d |
定位首字母为d的行 |
/txt$ | 定位结尾为txt的行 |
(2)文本编辑常用命令:
命令 | 说明 |
yy | 复制当前行 |
dd | 删除当前行 |
p | 粘贴 |
x | 删除光标所在字符 |
D | 从光标处删除到行尾 |
u | 撤销 |
^r | 重做 |
r | 可以用来修改一个字符 |
(3)从命令模式进入其他模式常用命令:
命令 | 说明 |
o | 进入编辑模式,光标下面另起一行 |
a | 进入编辑模式,光标后一位 |
i | 进入编辑模式,光标当前位置 |
: | 进入末行模式 |
V | 进入可视行模式 |
v | 进入可视模式 |
^v | 进入可视块模式 |
R | 进入替换模式 |
(4)末行模式常用命令:
命令 | 说明 |
:w | 保存 |
:q | 退出 |
:wq | 保存并退出 |
:w! | 强制保存 |
:q! | 不保存强制退出 |
:wq! | 强制保存退出 |
:set nu | 显示行号 |
:set nonu | 不显示行号 |
:整数 | 跳到该行 |
:s/abc/abd | 该行第一个abc替换成abd |
:s/abc/abd/g | 该行所有abc替换为abd |
标签:bin,文件,abc,管理,bash,txt,root,localhost From: https://www.cnblogs.com/Antler-Bi8bo/p/17806318.html