1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > linux基础--认识文件以及vi编辑器

linux基础--认识文件以及vi编辑器

时间:2022-04-08 17:49:16

相关推荐

linux基础--认识文件以及vi编辑器

linux文件

快捷键

编辑命令:Ctrl + a :移到命令行首Ctrl + e :移到命令行尾Ctrl + u :从光标处删除至命令行首Ctrl + k :从光标处删除至命令行尾Ctrl + w :从光标处删除至字首Ctrl + d :删除光标处的字符Ctrl + h :删除光标前的字符重新执行命令:Ctrl + p:历史中的上一条命令ESC + .:打印之前执行过的命令的最后一部分 以空格为分隔符控制命令:Ctrl + l:清屏Ctrl + c:终止命令Tab键: 自动补全

历史命令

上下箭头

history

1.Linux目录结构

在linux系统中一切皆文件

1.1 WINDOWS/LINUX 对比
Windows: 以多根的方式组织文件 C:\ D:\ E:\

Linux: 以单根的方式组织文件"/"

1.2 简介

/目录结构:FSH (Filesystem Hierarchy Standard):标准的目录结构[root@linux-server ~]# ls /bin dev home lib64 mnt proc run srv tmp varboot etc lib media opt root sbin sys usr

1.3
1.4 目录功能

bin 普通用户使用的命令 /bin/ls, /bin/datesbin 管理员使用的命令 /sbin/service 案例:[root@linux-server ~]# which ls[root@linux-server ~]# which useradd/usr/sbin/useradddev 设备文件 /dev/sda,/dev/sda1[root@linux-server ~]# ll /dev/sd*brw-rw----. 1 root disk 8, 0 Oct 31 14:16 /dev/sdabrw-rw----. 1 root disk 8, 1 Oct 31 14:16 /dev/sda1brw-rw----. 1 root disk 8, 2 Oct 31 14:16 /dev/sda2[root@linux-server ~]# tty/dev/pts/0 #这是我们的终端。/root #root用户的家目录/home #存储普通用户家目录 lost+found 这个目录平时是空的,存储系统非正常关机而留下“无家可归”的文件/usr #系统文件,相当于C:\Windows/usr/local #软件安装的目录,相当于C:\Program/usr/bin #普通用户使用的应用程序/usr/sbin #管理员使用的应用程序/usr/lib 库文件Glibc 32bit/usr/lib64 库文件Glibc 64bit/boot 存放的系统启动相关的文件,例如kernel/etc #配置文件(系统相关如网络/etc/sysconfig/network)/tmp 临时文件(系统:程序产生的临时文件)/opt 空目录/var #存放的是一些变化文件,比如数据库,日志,邮件..../proc 虚拟文件系统,系统程序文件所处目录 。虚拟文件系统:只要关机就会没有。==设备(主要指存储设备)挂载目录==/mnt #系统提供这个目录是让用户临时挂载其他的文件系统

路径详解

所谓路径即目录组成结构一个linux路径由"/"和目录(文件)名称两部分组成比如:/etc/passwd如果"/"出现在路径开头,则其表示根目录,在路径中间出现"/",其含义是某一个目录下,那么上面所示路径的意思就是"根目录下的etc目录下的passwd文件"如果路径最后出现"/",则表示这是一个目录

路径分类

绝对路径:从根开始的路径是绝对路径。案例:/home/alice/file1 /etc/grub.conf相对路径:凡是非根开始的路径 比如:etc var/ftp/pub ./test.sh使用pwd命令查看当前所在的绝对路径:比如:[root@qfedu etc]# pwd/etc

绝对路径实例:

[root@linux-server ~]# touch /opt/file1

相对路径示例

[root@linux-server ~]# pwd/root[root@linux-server ~]# mkdir abc #创建目录[root@linux-server ~]# touch abc/file3

查看历史命令

[root@linux-server ~]# history[root@linux-server ~]# clear #清屏快捷键:ctrl+l #---清屏

2.文件管理

2.1 文件类型(理解即可)

- 普通文件(文本文件,二进制文件,压缩文件,电影,图片。。。)d 目录文件(蓝色)b 设备文件 block device 设备文件,如硬盘,U盘;c 设备文件 字符设备文件,比如我们的终端tty1,打印机。l symbolic link 即符号链接文件,又称软链接文件 (浅蓝色)s socket 即套接字文件,用于实现两个进程进行通信p 管道文件

2.2示例1

查看各式各样的文件类型。你能找出几种呢?

[root@linux-server ~]# ll -d /etc/hosts /bin/ls /home /dev/sda /dev/tty1 /etc/grub2.cfg /dev/log /run/dmeventd-client-rwxr-xr-x. 1 root root 117656 Nov 6 /bin/lssrw-rw-rw-. 1 root root0 Oct 31 14:16 /dev/logbrw-rw----. 1 root disk 8, 0 Oct 31 14:16 /dev/sdacrw--w----. 1 root tty 4, 1 Oct 31 14:42 /dev/tty1lrwxrwxrwx. 1 root root22 Oct 31 12:11 /etc/grub2.cfg -> ../boot/grub2/grub.cfg-rw-r--r--. 1 root root 158 Jun 7 /etc/hostsdrwxr-xr-x. 2 root root6 Nov 5 /homeprw-------. 1 root root0 Oct 31 14:16 /run/dmeventd-client

注意

通过颜色判断文件的类型是不一定正确的!!!

3.文件管理命令

3.1 切换目录—cd

# .表示当前目录# cd .. 回到上一级目录等同于相对路径# cd 或者 cd ~直接回到家目录# cd /home/alice 切换目录=绝对路径# cd - 回到原来目录

2.2 创建文件

[root@linux-server ~]# touch file1.txt //无则创建,如果存在修改时间[root@linux-server ~]# touch /home/file10.txt[root@linux-server ~]# touch /home/{zhuzhu,gougou} //{}集合[root@linux-server ~]# touch /home/file{1..20} //批量创建

echo 加内容 > 加文件名 #覆盖:把之前的内容替换掉# echo 123 > a.txtecho 加内容 >> 加文件名#追加:保留之前的内容,在后面添加新内容# echo 345345 >> a.txt当使用echo 123 >> a.txt 这个命令的时候在文件不存在的时候会创建该文件并将内容追加到改文件中

2.3 创建目录

语法:mkdir -v 详细 -p 递归 目录

# mkdir dir1创建两个目录:# mkdir /home/dir2 /home/dir3# mkdir /home/{dir4,dir5} # mkdir -v /home/{dir6,dir7} #-v :verbose 冗长的。显示创建时的详细信息# mkdir -p /home/dir8/111/222 #-p 创建连级目录,一级一级的创建

2.4.复制

==复制 cp -r 目录 -v 详细 -f 强制 -n 静默

Usage: cp [OPTION]… [-T] SOURCE DEST

# mkdir /home/dir{1,2} #创建目录# cp -v anaconda-ks.cfg /home/dir1/ #-v 显示详细信息# cp anaconda-ks.cfg /home/dir1/test.txt #复制并改文件名# cp -r /etc /home/dir1 #-r 拷贝目录使用,连同目录里面的文件一块拷贝语法: cp -r 源文件1 源文件2 源文件N 目标目录 #将多个文件拷贝到同一个目录# cp -r /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/passwd /etc/hosts .# cp -r /etc /tmp

2.5 移动

1.创建一个新文件file1

[root@linux-server ~]# touch /root/file1

2.把file1文件移动到/tmp目录中。

[root@linux-server ~]# mv /root/file1 /tmp/[root@linux-server ~]# ls /tmp/file1 /tmp/file1

3.把file1文件更名为file2

[root@linux-server ~]# mv /tmp/file1 /tmp/file2

4.观察file1文件已经更名为file2

[root@linux-server ~]# cd /tmp/[root@linux-server tmp]# lsfile2

2.6 删除

==删除 rm -r 递归删除目录 -f force强制 -v 详细过程 *通配符

实例1:删除/home/dir1

# cd /home/# rm -rf dir1/-r 递归,删除目录时-f force强制-v 详细过程

示例2:

[root@linux-server ~]# mkdir /home/dir10[root@linux-server ~]# touch /home/dir10/{file2,file3,.file4}[root@linux-server ~]# rm -rf /home/dir10/* //不包括隐藏文件[root@linux-server ~]# ls /home/dir10/ -a . .. .file4

示例3:

[root@linux-server ~]# touch {1..10}.txt[root@linux-server ~]# touch file{1..20}.txt #创建file1-10的txt文件[root@linux-server ~]# rm -rf file1*

2.7 查看文件内容

cat—查看一个文件的全部内容

[root@linux-server ~]# cat /etc/passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologin...参数:-n 显示行号-A 包括控制字符(换行符/制表符)

head头部

[root@linux-server ~]# head /etc/passwd //默查看前十行[root@linux-server ~]# head -2 /etc/passwd //默认查看前两行

tail尾部

[root@linux-server ~]# tail /etc/passwd //默认查看文件的后十行[root@linux-server ~]# tail -1 /etc/passwd //查看文件最后一行[root@linux-server ~]# tail /var/log/messages[root@linux-server ~]# tail -f /var/log/secure //-f 动态查看文件的尾部[root@linux-server ~]# tailf /var/log/secure //功能同上

grep过滤关键字 grep 针对文件内容进行过滤

过滤文件中带有root的内容:[root@linux-server ~]# grep 'root' /etc/passwd过滤以root开头的行:^ --以什么开头[root@linux-server ~]# grep '^root' /etc/passwd过滤以bash结尾的行:$ --以什么结尾[root@linux-server ~]# grep 'bash$' /etc/passwd

less --分页显示

[root@linux-server ~]# less /etc/makedumpfile.conf.sample1.空格键是翻页 回车键是翻行2.上下箭头可以来回翻3. /关键字#搜索 (n按关键字往下翻 N按关键字往上翻)4.快捷键:q -quit 退出

more --分页显示文件内容

[root@ ~]# more 文件名 空格键是翻页 回车键是翻行

文件管理实战

在服务器上进行文件的基本管理操作

touchmkdircprmmvcatheadtaillessmore

练习

1.在/opt/test/dir1/test/目录下面创建20个test.txt文件2.在/mnt/目录中创建dir2目录3.将/opt/test/dir1/test/目录拷贝到/mnt/dir2目录中4.将/mnt/dir2/test/目录中的test2.txt 改名为file3005.将/mnt/dir2/test/目录中以txt结尾的文件删除。查看留下的文件

文件编辑器

千淘万漉虽辛苦,吹尽狂沙始到金

1、打开文件

[root@ ~]# vim 文件名

2、工作模式

vi与vim的三个模式

命令行模式–编辑模式–可是块模式

进入编辑模式

i #在光标所在处进入编辑模式a #在当前光标后面进入编辑模式A #在行尾进入编辑模式o #在光标的下一行进入编辑模式大O #在光标的上一行进入编辑模式# 从编辑模式进入命令模式:ESC

命令模式

光标定位键盘:hjkl#上下左右0 $ #行首行尾gg #页首--文本顶端G(shift+g) #页尾--文本底部3G #进入第三行/string#查找字符,n下一个,N上一个 (n N 可以循环的)

文本编辑

yy#复制 3yy#从光标开始复制3行。在最后粘贴ygg#从当前光标复制到页首yG#从光标开始复制到页尾dd#删除一行3dd#从光标开始删除3行dgg#从光标开始删除到页首 dG#从光标开始删除到页尾d^#删除当前光标之前的内容p #粘贴到本行的下一行大P#粘贴到本行的上一行x #删除光标所在的字符D #从光标处删除到行尾u #undo撤销r #可以用来修改一个字符

扩展命令(尾行)模式:

shift+: #进入尾行模式(扩展命令模式):10 #进入第10行 :w#保存 :q#退出 :wq #保存并退出 :q! #不保存并退出 :wq! 强制保存退出

进入其他模式

ctrl+v#进入可视块模式shift+v #进入可视行模式

查找替换

语法----> :范围 s/old/new/选项 :s/world/nice/ #替换当前光标所在行:3s/sbin/nice/ #替换指定行:1,5 s/nologin/soso/ #从1-5行的nologin 替换为soso:%s/bin/soso/#替换所有行:%s/sbin/nice/g #替换行内所有关键字注释:%表示替换所有行 g表示行内所有关键字将文件另存(另存为)语法----> :w 存储到当前文件:w /tmp/aaa.txt #另存为/tmp/aaa.txt :1,3 w /tmp/2.txt #从1-3行的内容另存为/tmp/2.txt

设置环境 :

:set nu #设置行号 :set list #显示控制字符:set nonu #取消设置行号

2.9 文件基本信息

时间类型

访问时间:atime,查看内容 修改时间:mtime,修改内容改变时间:ctime,文件属性,比如权限,mv改名

查询示例

[root@linux-server ~]# ls -l passwd -rw-r--r--. 1 root root 839 Oct 31 21:29 passwd[root@linux-server ~]# stat passwd File: ‘passwd’Size: 839 Blocks: 8IO Block: 4096 regular fileDevice: fd00h/64768dInode: 33583688 Links: 1Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)Context: unconfined_u:object_r:admin_home_t:s0Access: -10-31 21:29:40.750993492 +0800Modify: -10-31 21:29:36.449993550 +0800Change: -10-31 21:29:36.452993550 +0800Birth: -

ls -l 文件名 仅看的是文件的修改时间

Linux用户管理

理解用户和组的意义

Linux的一大特性:

​ 多用户、多任务。

所谓多用户多任务就是指可以在同一时间,有多个用户登录同一个系统执行不同的任务而互不影响。

假设现在有三个用户:root、lbb、mvv,三个用户同一时间登录了同一个系统,root去修改配置文件了,lbb去创建目录了,mvv去访问数据库了,每个用户互不干扰的独立执行自己的任务,并且每个用户不能够越线去访问其他用户正在操作的目录或执行其他用户下的任务,由此可见,不同的用户是拥有各自不同的权限的,Linux通过权限的划分和管理来实现多用户、多任务的运行机制。

Linux中的用户及其角色划分

账户为分三类:超级用户(管理员):享有最高权限,具备系统中的所有权限(一般为root),UID为0系统用户 :别称“伪用户”,无法登录系统,其主要作用是支撑系统运行,方便系统管理。uid号码小于1000.普通用户:有权限限制,只能对自己目录下的文件进行操作,可以登录系统。uid 大于1000,登陆shell是bin/bash。任何一个账户在创建的同时都会在系统里面创建一个同名的组。

1 用户概览

1.1. 用户/组基本概念!

====================================================

Users and groups:

系统上的每个进程(运行的程序)都是作为特定用户运行的

. Every file is owned by a particular user.

每个文件是由一个特定的用户拥有 .

. Access to files and directories are restricted by user.

访问文件和目录受到用户的限制

2 用户管理

=======================================================

2.1 用户组

创建组[root@linux-server ~]# groupadd hr //创建一个用户组叫hr[root@linux-server ~]# groupadd market //创建一个用户组叫market[root@linux-server ~]# groupadd net01 -g 2000 //创建组叫net01,并指定gid为2000[root@linux-server ~]# grep 'net01' /etc/group //查看/etc/group中组net01信息net01:x:2000:修改组[root@linux-server ~]#groupmod 参数 组名-g:修改组的gid-n:修改组名[root@linux-server ~]#groupmod -g 2000 grp1[root@linux-server ~]#groupmod -n 新组名 grp1删除组[root@linux-server ~]# groupdel net01 #删除组net01注意:用户的主属组不能删除

/etc/group ----->查看组的文件

/etc/group文件详解:

查看组[root@linux-server ~]#cat /etc/group组名:代表组密码:gid:组员

2.2 用户

==创建用户 未指定选项==

[root@linux-server ~]# useradd user01 //创建用户

/etc/passwd ---->查看账户是否存在的文件/home/ ---->用户的家目录,每创建一个用户会在/home目录下面创建对应的家目录/etc/shadow --->用户的密码文件

/etc/passwd文件详解–案例:

此文件里面除了密码字段能删除不能直接修改之外,其他字段全部都能直接修改

[root@linux-server ~]# cat /etc/passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologin分隔符::第一列:用户名第二列:密码第三列:用户标识号--->(uid)是一个整数,系统内部用它来标识用户。通常用户标识号的取值范围是0~65535。0是超级用户root的标识号第四列:gid第五列:描述信息。第六列:家目录第七列:是用户登陆到界面的第一个命令,开启一个shell。登陆shell

1.判断用户是否存在:[root@linux-server ~]# id user01 //查看用户的uid、gid、和所在组uid=1001(user01) gid=1003(user01) groups=1003(user01)主属组附属组uid 系统用来识别账户的user identifygid 系统用来识别组的group identify2.查看现在所使用的的账户:[root@linux-server ~]# whoami 查看我现在所使用的账户

2.3.创建用户(带有选项)

[root@linux-server ~]# useradd user02 -u 503 //指定uid为503[root@linux-server ~]# useradd user05 -s /sbin/nologin //创建用户并指定shell[root@linux-server ~]# useradd user07 -G it,fd //创建用户,指定附加组[root@linux-server ~]# useradd -g 1003 user8 #指定用户的主属组为1003组。 [root@linux-server ~]# useradd user10 -u 4000 -s /sbin/nologin

2.4删除用户

[root@linux-server ~]# userdel -r user02 //删除用户user2,同时删除用户家目录

2.5用户密码

[root@linux-server ~]# passwd alice #root用户可以给任何用户设置密码[root@linux-server ~]# passwd #root用户给自己设置密码[root@linux-server ~]# su - alice[alice@linux-server ~]$ passwd #普通用户只能给自己修改密码,而且必须提供原密码

2.6用户操作

1.修改用户名:-l[root@linux-server ~]# usermod -l NEW_name user8[root@linux-server ~]# id user8id: user8:无此用户2.修改GID:-g[root@linux-server ~]# id user10uid=1000(user10) gid=1000(tom) groups=1000(tom)[root@linux-server ~]# usermod user10 -g new_gid #gid需要提前存在3.修改UID-u[root@linux-server ~]# usermod -u new_id jack[root@linux-server ~]# id jackuid=1005(jack) gid=1004(jack) groups=1004(jack)4.修改用户的登录shell-s[root@linux-server ~]# usermod -s /sbin/nologin user07 #修改用户的登录shell

组成员管理

注意:只针对已存在的用户

1.给组添加账户-a[root@linux-server ~]# gpasswd -a user10 grp2Adding user user10 to group grp22.同时添加多个用户到组-M:members成员的缩写[root@linux-server ~]# gpasswd -M tom,alice it3.从组删除用户-d[root@linux-server ~]# gpasswd -d user07 hrRemoving user user07 from group hr

vim、用户和组管理实战

1、熟练vim编辑器2、使用命令对Linux用户进行管理操作useradd usermodsu userdel3、使用命令对Linux组进行管理操作groupadd groupmod groupdel

练习

目的:修改一些重要文件前一定要先备份,文件结尾用.bak .back1.将/etc/sysconfig/network-scripts/ifcfg-ens33 复制到/tmp下并且重新命名为ifcfg-ens33.bak============2 在/etc/yum.repos.d/ 下创建 yumlist的文件夹。并且在此文件夹下创建 yum.repo文件3 进入 yum.repo文件 编辑文件内容 hello world4 将 hello world 复制10行后保存文件。5 将hello全部替换为 welcome6 快捷键删除第二行到页尾的文件内容,操作后不要保存,请直接退出7 将yum.repo文件 移动到/tmp下8 在/tmp/yum.repo里显示行号9./etc/passwd 第二段是干什么的?以什么分割?10.给服务器添加3个账号 xiaozhang xiaoli xiaowang11.修改普通用户xiaowang 和root的密码12.创建用户jack和tom属于hr,wc组13.创建用户tony,属于hr,不属于wc组,并且将3个人的密码修改为 qianfeng14.将/etc/passwd前10行 内容写到 /tmp/passwd下。 然后将4-6行的 root换成haha

im编辑器

2、使用命令对Linux用户进行管理操作

useradd

usermod

su

userdel

3、使用命令对Linux组进行管理操作

groupadd

groupmod

groupdel

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。