本篇文章主要的知识点是关于如下: 1. Linux系统中的文件操作 2. vim 编辑器 3. Linux系统中的用户和登录
第一章 Linux下的文件操作
1. 显示文件或文件夹
ls -显示当前文件夹下的文件及文件夹
ls 文件夹名/文件名 -如果是文件夹名字会显示出文件夹下的所有文件及文件夹,如果是文件则仅仅将文件名显示在下方
ls -l -列出所有的文件,包含文件的属性和权限,没有隐藏文件
ls -a -查看全部文件,包括隐藏文件
ls -al -显示所有文件包括隐藏文件
2. 查看文件内容
cat 文件名 -一次性把文件中的内容全部输出出来
head 文件名 -查看头10行文件的内容
tail 文件名 -查看末尾10行文件的内容
less 文件名 -可以翻页查看内容,使用↑↓可以实现翻页
head和tail 后面均可加参数,例:head -n 2 文件名,意思是显示头两行的内容,tail则是显示后两行的内容
3. Linux下的文件位置学习
pwd -可以查看 我 当前所在的位置
cd 文件名 -进入文件夹
cd .. -返回上一级文件夹
cd / -返回到 /
mkdir 文件夹名 -在当前目录下创建一个文件夹
mkdir 文件夹名/文件夹名/... -在指定的目录下创建文件夹
4. 基础命令操作和快捷键
4.1 对文件或文件夹的复制,移动,删除
有的时候文件的名字会很长,要想看他里面的东西会很浪费时间,所以linux提供了Tab补全功能。
已有文件夹名 abcdefghight
想要进入该名字长的文件夹 cd a 然后按Tab键会自动给与补全后面的名字,非常的实用。
还可以补全 里面的文件夹或文件 ,如下图:
当我正在输入ls时不想输后面的 内容, Ctrl + C 然后取消
top -持续查看系统各项指标 ,使用Ctrl + C取消
上下箭头可以查看自己刚才输入过的命令
有时候命令比较多,使用上下箭头找起来非常的繁琐,Ctrl + R组合键也是可以找之前用过的命令,不一样的是可以根据首字母来过滤查找
[root@localhost /]# 在这种情况下按 Ctrl + R 组合键 然后输入刚才用过的命令中的相关的字母就可以查找到,如下图:
文件的复制、移动和删除
复制
cp 要被复制的文件 被送到的位置 -文件的复制
cp -r 要被复制的文件夹 被送到的位置 -文件夹的复制,不是复制文件夹,而是只将文件夹下的内
test/* *是一个通配符,代表是“所有”
有的时候系统会提示让输入 y 确认操作,如果文件很多需要每一个都写一个 y 比较繁琐,所以在命令前面加上 \ 可以避免这种情况,例如:[root@localhost /]# \cp -r test/* java/
删除
rm 文件名 -删除文件
rm -r 文件夹名 -删除文件夹名
移动
mv 需移动的文件/文件名 移动到的位置 -移动操作中移动文件/文件夹都不要加 -r
4.2 查找文件,隐藏文件的概念
查找文件
find . -name 文件/文件夹名 -.代表当前目录下
find /etc/ -name "ifcfg*" -exec cp -v {} /root/aaaa.aa/
find 查找,-exec后面接上要执行的命令,{}代表的是前面被find找到的所有结果
等同于:
cp -v /etc/sysconfig/netword/ifcfg-* /root/aaaa.aa/
隐藏文件
Linux的隐藏文件就是说使用 ls 看不到的文件
创建一个隐藏文件 : touch .文件名 -就是在文件名前面加一个 . 即可
4.3 帮助信息,路径信息
4.3.1 帮助信息
fdisk -l -查看本地的硬盘信息
帮助信息
man ls -显示ls命令的手册 可以通过 /-F 进行,F是命令的首字母–help -等同于man
4.3.2 路径信息
Linux的结构是一个树的根状结构,登录之后,目录的起点就是在家目录即 “ / ”表示根。
绝对路径
从 / 开始,最终找到一个文件/文件夹所经过的这一段路线,叫做绝对路径,例如:/root/java/Java1/aa
相对路径
从当前的位置出发去访问文件,而不是从 / 出发。例如:当前在Java目录下,访问aa ls java1/aa
第二章 Linux必会的编辑器:Vim
1. vim编辑器的简单操作流程
vim 需要编辑的文件名
vim后进入的叫做控制模式,按 i 之后叫做编辑模式
编辑完成后按下键盘上的 :键,然后输入 wq 保存退出,然后回到命令行,编辑保存完成。
如果说vim后没有按 i 键(控制模式),然会 x 键可以删除当前光标处的字符。
2. 光标跳跃快捷键
快捷键功能
shift+^快速到行首shift+$快速到行尾shift+E向后大跳 大跳是按空格,其他忽略,所以跳的更大shift+B向前大跳E向后小跳B向前小跳,小跳是以单词为单位,遇到特殊符号(- . 空格)就会跳跃,gg跳到文本最开头shift+G跳到文本最末尾Ctrl+F,Ctrl+B快速翻页YY复制光标所在行,在控制模式下P将复制的内容粘贴到光标所在行,在控制模式下/ 或者 ? 要查找的字符/字符 从上往下查找,?字符 从下往上查找,…通配符表示一个字符,*通配符表示多个字符%s///g在控制模式下,在前面两个 // 中间写上文本中要替换的字符,后面 // 中间写上替换为
Vim 缓存文件的处理
如果编辑过程中突然断电,而文件没有保存下来,Vim有一种保护机制,当重新打开使用 vim文件名是会由一个 文件名.swp的文件
然后在使用的时候由需要的选项可以恢复,恢复完毕后需要删除.swp文件 rm .文件名.swp
3. 小巧编辑器:nano
这个编辑器跟vim编辑器一样可以编辑文件不过这个不需要选择模式,可以直接输入内容
nano 文件名
Ctrl+O 保存内容
Ctrl+X 退出
Ctrl+G 打开帮助手册
第三章 Linux的用户和登录
3.1. Linux下的用户分类
3.1.1 无敌的root用户
在linux中,创建另一个新的用户需要操作系统的最高权限,就是root用户
[root@localhost /]# whoami --查看自己的用户身份,只输出账号名
[root@localhost /]# id [用户名] --输出更多关于账号的id和组的信息
3.1.2 自己创建的用户
[root@localhost /]# useradd 用户名 --创建用户,如果说用户已经存在则不能重复创建,会提示:useradd: user 'usertest' already exists
[root@localhost /]# passwd [用户名] --修改密码,不加用户名是修改当前用户密码
[root@localhost /]# su 用户名 --切换当前登录的用户
3.1.3 系统用户的存在
Linux操作系统中存在三种类型的账号,每一种都有自己的单独用处
root:至高无上的权限普通用户系统账号(nginx,ntp):不是给人用的,是给程序用的,这种账号默认是无法登录的,这两个账号不是自创的,而是在安装一些软件时,软件程序自动在Linux中创建的,一般情况下,这种账号不能拿来直接使用的,而是某些软件在运行时,由他们自己来使用。
3.2 Linux 用户账号的属性
3.2.1 第一个配置文件
Linux的账号管理系统就是遵从着配置文件,(通过vim修改passwd可以新增一个用户),所以说配置文件才是核心,而平时用的命令,其实也是围绕着这样的文件来工作。
3.2.2 用户和用户组的关系
- Linux中有组 (group) 和 附属组 (groups)
- Linux下一个用户必须最少属于一个组,如果一个用户不属于任何组是不被允许的
- Linux的用户第一个属于的组或者说第一个开始默认就属于的组叫做 主组。
- Linux下用户还可以属于其他的组,可以同时属于N多个组,但是这些组只是这个用户的附属组。
- 没有组的用户是不被Linux接受的
[root@localhost /]# vim /etc/group --可以在group配置文件中修改属组的信息
3.2.3 用户家目录
- 在创建一个新用户的 时候会在home文件夹下面创建对应的用户名的文件夹,如果使用 在 配置文件passwd中创建的用户需要手动在home文件下创建一个文件夹,否则无法切换且登录
3.2.4 从用户登录角度认识 bash
登录Linux其实就是登录了一个叫做bash的shell,也就是俗称的Linux的命令行。
passwd 配置文件的最后一项可以查看登录的方式,vi,bash,nologin等
3.2.5 使用sudo来切换用户
之前一直使用 su 命令来切换用户登录,这种方式属于永久登录,相当于注销当前用户,换一个用户来使用。
sudo 是一个很有意思的命令,它可以临时切换成别的用户来执行任务,完成后立刻回到之前的用户。
[root@server01 ~]# sudo -u linuxuser ls /bin/bash
/bin/bash
[root@server01 ~]# sudo -u linuxuser ls
ls: cannot open directory :Permission denied
-u以什么用户临时运行,ls /bin/bash是要做的事情
Permission denied报错是因为当前目录是root,linuxuser没有权限访问
一个普通用户想查看硬盘,但/sbin/fdisk命令只有root用户才能使用,所以普通用户可以通过临时sudo root以root的身份来执行一次这个命令,用完奉还身份,不过需要root给予授权才可以。
给一个普通用户sudo到root的授权,附加这一行的意思是给linuxuser用户使用sudo的权利,而且可以用任何身份,运行任何命令,而且还不需要输入密码,对应中间的all=(all),nopasswd:all
[root@server01 ~]# visudo修改sudo配置文件
在本文中搜索并找到这一段内容
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
加上这一行内容
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
linuxuser ALL=(ALL) NOPASSWD: ALL 给予linuxuser授权
切换到root就可以临时执行成功了
3.2.6 Linux用户的密码管理
用root用户打开 shadow文件,看到很多的字母和数字,这个就是密码。
3.2.7 远程用户和本地用户的引入
本地登录:就是装着Linux的计算机/服务器,接上键盘显示器就可以输入账号密码登录的。远程登录:没办法接键盘、显示器,只能通过网络的方式来远程登录。
不管是本地登录,还是远程登录,用的都是Linux的本地账号密码,也就是说同一个root管理员账号,本地登录也可以,远程登录也可以。
如果两个人用的都是root管理员,输入的账号密码一样,不过并不知道对方的存在,互不干扰,这其实就是突出了Linux的一大优势,就是真正的多用户管理模式。