linux学习笔记
linux学习笔记
vi和vim编辑器
- vi 文本编辑器
- vim 增强版vi,具有程序编程能力等。
三种模式
命令模式
刚启动vim,就进入命令模式。
此时敲下键盘被vim识别为命令
常用命令:
切换模式
i
切换到输入模式,以输入字符。:
切换到底线命令模式,以在最底一行输入命令。
移动光标
nG
n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)gg
移动到这个档案的第一行,相当于 1G 啊!n<Enter>
n 为数字。光标向下移动 n 行
搜索替换
/word
向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用)?word
向光标之上寻找一个字符串名称为 word 的字符串。n
向上寻找N
向下寻找
删除
nx
n 为数字,连续向后删除 n 个字符。dd
删除游标所在的那一整行ndd
n 为数字。删除光标所在的向下 n 行d1G
删除光标所在到第一行的所有数据dG
删除光标所在到最后一行的所有数据
复制
yy
复制游标所在的那一行nyy
n 为数字。复制光标所在的向下 n 行y1G
复制游标所在行到第一行的所有数据yG
复制游标所在行到最后一行的所有数据
粘贴
p, P
p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行!J
将光标所在行与下一行的数据结合成同一行u
复原前一个动作。- [Ctrl]+r 重做上一个动作。
插入模式
在命令模式下按下i就进入了输入模式。
ESC,退出输入模式,切换到命令模式
底行命令模式
在命令模式下按下 :(英文冒号) 就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底行命令模式中,基本的命令有:
:q
退出程序:q!
使用 ! 为强制离开不储存。:w
保存文件:wq
储存后离开,若为 :wq! 则为强制储存后离开:! command
暂时离开 vi 到指令行模式下执行 command 的显示结果!例如
『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息!
按ESC键可随时退出底线命令模式。
行号
在底行模式下:
:set nu
显示行号,设定之后,会在每一行的前缀显示该行的行号:set nonu
与 set nu 相反,为取消行号!
三种模式的转换
关机和重启
sync
把内存的数据同步到磁盘,执行关机或重启命令前先执行此命令
关机
shutdown
shutdown -h now 立刻关机 shutdown -h 1 1分钟后关机
halt
systemctl pweroff
init 0
重启
- reboot
- shutdown -r now
用户登录和注销
登录
su username
切换用户
注销
用户离开Linux(UNIX)系统时,应进行注销(logout )操作。注销后的用户终端可提供给其他用户使用。
“注销”也通知了正在进行中的系统记账程序停止对该用户的记账工作。有多种方式完成用户注销,如:
logout
在命令行输入logout表示退出登录exit
用终止当前进程执行的方式退出用户登录的进程Ctrl-d
用退出shell主进程的方式注销用户
用户注销后系统回到“Login”提示符下等待下一次用户的登录。通常在用户下次进行登录时,系统会提供一些报告给用户查阅,例如用户最近一次注册的时间和使用的终端信息。
实用指令
指定运行级别
运行级别说明
- 0 : 关机
- 1 : 单用户(找回丢失密码)
- 2 : 多用户状态没有网络服务
- 3 : 多用户状态有网络服务
- 4 : 系统未使用保留给用户
- 5 : 图形界面
- 6 : 系统重启
帮助指令
man - 获得帮助信息
man 命令或配置文件
help 指令
获得shell内置命令的帮助信息
help 命令
文件目录类
pwd
显示当前工作目录的绝对路径
ls
ls [选项] [目录或是文件]
常用选项:
- -a:显示当前目录所有的文件和目录,包括隐藏的
- -l: 以列表的方式显示信息
cd
切换到指定目录
cd~ / cd : 回到自己的家目录
cd.. : 回到当前工作目录的上一级目录
mkdir
创建目录
-p
:创建多级目录
rmdir
删除空目录,目录下有内容时无法删除
touch
创建空文件
cp
拷贝文件到指定目录
cp [选项] source(源路径) dest(目标路径)
-r
:递归复制整个文件夹
mv
移动文件
mv oldNameFiel newNameFile
rm
移除文件或目录
rm [选项] 要删除的文件或目录
常用选项-r
:递归删除整个文件夹-f
:强制删除不提示
cat
查看文件内容
-n
:显示行号
more
基于vi编辑器的文本过滤器,以全屏幕方式按页显示文本文件内容
常用操作
Enter
向下n行,需要定义。默认为1行空格键
向下滚动一屏Ctrl+B
返回上一屏=
输出当前行的行号:f
输出文件名和当前行的行号V
调用vi编辑器!
命令 调用Shell,并执行命令q
退出more
less
与more相似,适合查看大型文件
echo
输出内容到控制台
echo [选项] [输出内容]
head
显示文件开头部分,默认显示前10行
head -n 5
显示前5行
tail
输出文件中尾部的内容,默认10行
tali -n 5
:查看文件尾5行
tail -f
:实时追踪该文档的所有更新
>指令和>>指令
>
:输出重定向(覆盖)>>
:追加(文件尾)
基本语法
ls -l > 文件
:列表内容写入文件中(覆盖写)ls -al >> 文件
:列表内容追加写入文件(文件尾处)cat file1 > file2
:将文件1的内容覆盖到文件2
ln
软链接也称为符号链接,存放链接其他文件的路径
基本语法:
给源文件创建一个软链接
ln -s [源文件或目录] [软链接名]
注:当使用pwd指令查看目录时,看到的仍是软链接所在目录
history
查看已经执行过的历史命令
history n
:查看最近使用的n行命令!5
:执行历史编号为5的命令
时间日期类
date
显示当前日期
基本语法
date + %Y
:显示当前年份date + %m
:显示当前月份date + %d
:显示当前是哪一天date "%Y-%m-%d %H:%M:%S"
:显示年月日时分秒
设置系统当前时间
date -s 字符串时间
cal
显示日历
搜索查找类
find
find指令从指定目录向下递归其各个子目录,将满足条件的文件或者目录显示在终端
常用选项
-name
:按照指定的文件名查找模式查找文件-user
:查找属于指定用户名的所有文件-size
:按照指定文件大小查找文件
应用实例
按文件名:根据名称查找/home目录下的hello.txt文件
find /home -name hello.txt
按拥有者:查找/opt目录下,用户名为nobody的文件
find /opt -user nobody
查找整个linux系统下大于200M的文件(+n大于 -n小于 n等于,单位有K,M,G)
find / -size +200M
grep指令和管道符号 |
- grep 过滤查找
- 管道符“**|**”,表示将前一个命令的处理结果输出传递给后面的命令处理
语法:
grep [选项] 查找内容 源文件
常用选项:
-n
:显示匹配行及行号-i
:忽略字母大小写
压缩和解压类
gzip和gunzip
gzip用于压缩文件,gunzip用于解压文件
基本语法:
gzip:压缩文件,只能将文件压缩为*.gz文件
gunzip:解压缩文件命令
zip和unzip
zip用于压文件,unzip用于解压
基本语法:
zip <-r(递归压缩,压缩目录)> xx.zip 要压缩的内容
unzip <-d 目录(指定解压后文件的存放目录)> xx.zip
tar
打包指令,打包后的文件是 .tar 文件
基本语法:
打包目录,压缩后的文件格式.tar
tar [选项] xx.tar 打包的内容
常用选项:
-c
:产生.tar打包文件-v
:显示详细信息-f
:指定压缩后的文件名-z
:打包同时压缩,此时产生的文件后缀名为.tar.gz
-x
:解包.tar文件
用户管理
用户
添加用户
useradd username
注:
用户创建成功后,会自动创建和用户同名的家目录 /home/username
useradd -d dir username 给新创建的用户指定家目录
修改口令
passwd username
删除用户
userdel username(保留家目录)
userdel -r username(同时删除家目录)
修改用户名
usermod -l new-name old-name
锁定用户使其不能登录
usermod -L username
查询用户信息指令
基本语法
id username
切换用户
su username
查看当前用户/登录用户
whoami
who am i
用户组
新增组
groupadd groupname
删除组
groupdel groupname
修改用户的组
usermod -g groupname username
用户和组相关文件
/etc/passwd 文件
用户的配置文件,记录用户的各种信息
每行的含义:
用户名:口令:用户标识号:组标识号:注释行描叙:主目录:登录shell
/etc/shadow 文件
组的配置文件,记录linux包含的组的信息
每行的意义:
组名:口令:组标识号:组内用户列表
组管理和权限管理
linux组的基本介绍
在linux中,每个用户必须属于一个组,不能独立于组外。在Linux中每个文件有所有者,所在组,其他组。
文件/目录 所有者
一般为文件的创建者,谁创建了该文件,就自然成为该文件的所有者。
查看文件的所有者
指令:ls -l
的第一个用户为文件所有者
修改文件所有者
指令:chown 用户名 文件名
组的创建
基本指令
groupadd 组名
将用户放大指定组
useradd -g groupname username
文件/目录 所在组
当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组。
查看文件/目录所在组
基本指令:
ls -ahl
修改文件/目录所在组
基本指令
chgrp 组名 文件名
其他组
除文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组
改变用户所在组
在添加用户时,可以指定将该用户添加到那个组,使用root的管理权限可以改变某个用户所在的组。
改变用户所在组
usermod -g 新组名 用户名
usermod -d 目录名 用户名 改变该用户登陆的初始目录
权限的基本介绍
ls -l 中的显示内容如下
0-9位说明
第0位确定文件类型(d,-,l,c,b)
l
是链接,相当于windows的快捷方式d
是目录,相当于windows的文件夹c
是字符设备文件,如:鼠标、键盘b
是块设备,如:硬盘
第1-3位
确定所有者(该文件的所有者),拥有该文件的权限 – user
第4-6位
确定所属组(同用户组的)拥有该文件的权限 – group
第7-9位
确定其他用户拥有该文件的权限 – other
rwx权限
rwx作用到文件
r
代表可读:可以读取,查看w
代表可写:可以修改,但不代表可以删除文件,删除一个文件的前提是对该文件所在的目录有写权限,才能删除该文件x
代表执行:可以被执行
rwx作用到目录
r
代表可读:可以读取,ls查看目录内容w
代表可写:可以修改,对目录内创建+删除+重命名目录x
代表可执行:进入该目录
修改权限—-chmod
修改文件或目录的权限
通过+,-,=变更权限
+:赋予某权限
-:去除某权限
- u:所有者
- g:所有组
- o:其他人
- a:所有人(u,g,o的总和)
用法示例
chmod u=rwx,g=rx,o=x
文件/目录名chmod o+w
文件/目录名chmod a-x
文件/目录名
通过数字变更权限
r=4
,w=2
,x=1
用法:
`chmod u=rwx,g=rx,o=x` 文件/目录名
等同于
chmod 751 文件/目录名
修改文件所有者—-chown
用法
改变所有者
chown newowner 文件/目录
改变所有者和所在组
chown newowner:newgroup 文件目录
-R
:如果是目录。则使其下所有子文件或目录递归生效
修改文件/目录所在组—-chgrp
改变所在组:
chgrp newgroup 文件/目录