Linux
小总结:
帮助命令:man和help
递归操作(需要区分):
创建多级目录
mkdir -p kawaii/haha/good
递归复制整个文件夹
cp -r kawaii/hello/ ./
递归删除目录中所有内容和此目录
rm -rf liangshan/
查看文件的内容三种方法:
1、查看文件内容并显示行号
cat -n songliang.txt
2、采用more查看文件(space向下翻一页,Enter向下翻一行,=输出当前行的行号,q离开)
more smartd.conf
3、less 要查看的文件(可以用/查找字串)
less 某个文件
下面进入正题:
Linux的定义: Linux是一套免费使用的多用户、多任务、支持多线程的类似Unix的操作系统。
Linux文件与目录结构
常用目录:
/bin :放置的是可以被root 与一般账号所使用的指令,如:cat、chmod(修改权限)、chown、date、mv、mkdir、cp、bash等
/boot :放置Linux核心档案和开机所需设定档等
/dev :放置装置和周边设备的档案
/etc :放置系统主要的配置文件,一般使用者可以查看,只有root才能修改,如:账号密码档、服务的起始档
/home :使用者家目录(home directory),家目录有两种代号: 代表当前使用者的家目录,而guest代表用户名为guest的家目录
/lib:放置着系统基本的动态连接共享库,类似windows里的dll文件
/media:放置着可移除的装置,如软驱、光驱 等装置
/mnt:临时挂载某些额外的装置。
/opt:放置第三方协议软件,如oracle数据库、浏览器
/root:系统管理员root用户的家目录
/sbin:包含开机、修复、还原系统需要的系统程序,/usr/sbin存放超级管理用户访问的应用程序,本机安装的其他软件产生的系统执行档放置到/usr/local/sbin目录
/srv(service):是一些服务启动之后需要访问的数据目录,如www服务需要的网页资料可以放置在/srv/www里
/tmp:一般使用者暂时放置档案的地方
/proc:是一个虚拟目录,是系统内存的映射,访问这个目录可以获取系统信息
/sys:是一个虚拟的档案系统
VI/VIM编辑器
定义:是类Unix操作系统中最通用的文本编辑器
一般模式
以vi打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、粘贴』来处理你的文件数据。
语法 功能描述
yy
复制光标当前一行
y数字y
复制一段(从第几行到第几行)
p
箭头移动到目的行粘贴
u
撤销上一步(undo)
dd
删除光标当前行
d数字d
删除光标(含)后多少行
x
删除一个字母,相当于del,向后删
X
删除一个字母,相当于Backspace,向前删
yw
复制一个词
dw
删除一个词
shift+^
移动到行头 shift加上箭头
shift+$
移动到行尾
gg
移动到页头
G
移动到页尾
数字+G(先输入数字,在按G)
移动到目标行
编辑模式
在一般模式中可以进行删除、复制、粘贴等的动作,但是无法编辑文件内容!要等到你按下『i, I, o, O, a, A, r, R』等任何一个字母之后才会进入编辑模式。
注意了!通常在Linux中,按下这些按键时,在画面的左下方会出现『INSERT或 REPLACE』的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下『Esc』这个按键即可退出编辑模式。
指令模式
在一般模式当中,输入『:或/或?』3个中的任何一个按钮,就可以将光标移动到最底下那一行。
在这个模式当中, 可以提供你的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等动作是在此模式中达成的!
命令与功能:
:w 保存
:q 退出
:! 强制执行
/ 要查找的词
n 查找下一个,N 往上查找
? 要查找的词
n 是查找上一个,N 是往下查找
:set nu 显示行号
:set nonu 关闭行号
ZZ(shift+zz) 没有修改文件直接退出,如果修改了文件保存后退出
强制保存退出 :wq!
1、帮助命令:
man获得帮助信息
man [命令]
help获得shell内置命令的帮助信息
例如:ls --help ll命令就等于ls -l
常用快捷键与功能
ctrl + c
停止进程
ctrl+l
清屏;彻底清屏是:reset
ctrl + q
退出
善于用tab键提示(更重要的是可以防止敲错)
上下键可以查找执行过的命令
ctrl +alt
linux和Windows之间切换
2、文件目录命令
pwd 显示当前工作目录的绝对路径
pwd:print working directory 打印当前工作目录的绝对路径
基本语法:pwd
ls 列出目录的内容
ls:list 列出目录内容
基本语法:ls 选项 目录或文件
选项说明与功能:
-a 全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)
-l 长数据串列出,包含文件的属性与权限等等数据;(常用)
ls -l
显示说明 每行列出的信息依次是:
文件类型与权限 链接数 文件属主 文件属组 文件大小用byte来表示 建立或最近修改的时间 名字
cd 切换目录
cd:Change Directory切换路径
基本语法:cd [参数]
参数说明:
cd 绝对路径
切换路径
cd相对路径
切换路径
cd ~或者cd
回到自己的家目录
cd -
回到上一次所在目录
cd ..
回到当前目录的上一级目录
使用绝对路径切换到root目录
cd /root/
使用相对路径切换到“Public”目录
cd Public/
表示回到自己的家目录,亦即是 /root 这个目录
cd ~
cd- 回到上一次所在目录
cd -
表示回到当前目录的上一级目录,亦即是“/root/Public”的上一级目录的意思
cd …
mkdir 创建一个新的目录
mkdir:Make directory 建立目录
基本语法:mkdir [选项] 要创建的目录
选项说明
-p 创建多层目录
案例操作
创建一个目录
mkdir kawaii
创建多级目录
mkdir -p kawaii/haha/good
rmdir 删除一个空的目录
rmdir:Remove directory 移动目录
基本语法:rmdir 要删除的空目录
案例操作:
删除一个空的文件夹
rmdir kawaii/haha/good
touch 创建空文件
基本语法:touch 文件名称
案例操作:touch test.txt
cp 复制文件(复制内容)或目录
基本语法:cp [选项] source dest
选项说明:-r 递归复制整个文件夹
参数说明:source - 源文件,dest - 目标文件
案例操作:
复制文件
cp kawaii/hellokitty.txt hk.txt
递归复制整个文件夹
cp -r kawaii/hello/ ./
rm 移除文件或目录
基本语法:rm [选项] deleteFile
选项说明:
-r
递归删除目录中所有内容
-f
强制执行删除操作,而不提示用于进行确认。
-v
显示指令的详细执行过程
案例操作:
删除目录中的内容
rm shuihu/liangshan/songjiang.txt
递归删除目录中所有内容和此目录
rm -rf liangshan/
mv 移动文件与目录或重命名
基本语法:
mv oldNameFile newNameFile (重命名)
mv movefile /targetFolder (移动文件,相当于剪切操作)
案例操作:
重命名
mv shuihu/liangshan/songjiang.txt shuihu/liangshan/likui.txt
移动文件
mv shuihu/liangshan/likui.txt ./
cat 查看文件内容
查看文件内容,从第一行开始显示。
基本语法:cat [选项] 要查看的文件
选项说明:-n 显示所有行的行号,包括空行
经验技巧:一般查看比较小的文件,一屏幕能显示全的。
案例操作:
查看文件内容并显示行号
cat -n songliang.txt
more 文件内容分屏查看器
more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more指令中内置了若干快捷键,详见操作说明。
基本语法:more 要查看的文件
操作说明:
空白键 (space)
代表向下翻一页;
Enter
代表向下翻『一行』;
q
代表立刻离开 more ,不再显示该文件内容。
Ctrl+F
向下滚动一屏
Ctrl+B
返回上一屏
=
输出当前行的行号
:f
输出文件名和当前行的行号
案例操作:
采用more查看文件
more smartd.conf
less 分屏显示文件内容
less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
基本语法:less 要查看的文件(可以用/查找字串)
操作说明:
空白键
向下翻动一页;
[pagedown]
向下翻动一页
[pageup]
向上翻动一页;
/字串
向下搜寻『字串』的功能;n:向下查找;N:向上查找;
?字串
向上搜寻『字串』的功能;n:向上查找;N:向下查找;
q
离开 less 这个程序;
echo
echo 输出内容到控制台
基本语法:echo 选项 输出内容
选项:-e 支持反斜线控制的字符转换
控制字符
\
输出\本身
\n
换行符
\t
制表符,也就是Tab键
案例操作:
echo “hello\tworld” 结果为hello\tworld
echo -e “hello\tworld” 结果为hello world
head 显示文件头部内容
head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容。
基本语法:
head 文件 查看文件头10行内容
head -n 5 文件 查看文件头5行内容,5可以是任意行数
案例操作:
head -n 2 smartd.conf
tail 输出文件尾部内容
tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的后10行内容。
基本语法:
tail 文件 # 查看文件后10行内容
tail -n 5 文件 # 查看文件后5行内容,5可以是任意数字行数
tail -f 文件 # 实时追踪该文档的所有更新
选项说明:
-n<行数>
输出文件尾部n行内容
-f
显示文件最新追加的内容,监视文件变化
案例操作:
查看文件头1行内容
tail -n 1 smartd.conf
实时追踪文档所有更新
tail -f hello.txt
覆盖 > 和 >> 追加
基本语法:
cat 文件1 > 文件2
cat 文件1 >> 文件2
echo ‘内容’ >> 文件
案例操作:
将ls查看信息写入到文件中
ls -l > file.txt
将ls查看信息追加到文件中
ls -l >> file.txt
采用echo将hello单词追加到文件中
echo hello >> file.txt
ln 软链接
软链接也成为符号链接,类似于windows里的快捷方式,有自己的数据块,主要存放了链接其他文件的路径。
基本语法:
ln -s 原文件或目录 软链接名 # 给原文件创建一个软链接
经验技巧:
删除软连接:rm -rf 软链接名,而不是rm -rf 软链接名/
查询:通过ll可以查看,列表属性第1位是1,尾部会有位置指向。
案例操作:
创建软连接
ln -s hello.txt hi.txt
删除软链接
rm -rf hi.txt
进入软链接实际物理路径
ln -s …/hello.txt hi.txt
cd -P hi.txt
history 查看已经执行过历史命令
基本语法:
history (功能描述:查看已经执行过历史命令)
案例操作:
查看已经执行过的历史命令
history
之后可以输入!+指令号 执行历史命令
时间日期命令
基本语法:
date [OPTION] … [+FORMAT]
选项说明:
-d<时间字符串>
显示指定的“时间字符串”表示的时间,而非当前时间
-s<日期时间>
设置系统日期时间
参数说明:
<+日期时间格式>
指定显示时使用的日期时间格式
date 显示当前时间
基本语法:
date 显示当前时间
date+%Y 显示当前年份
date+%m 显示当前月份
date+%d 显示当前是哪一天
date “+%Y-%m-%d %H:%M:%S” 显示年月日时分秒
案例操作:
显示当前时间信息
date
显示当前时间年月日
date +%Y%m%d
显示当前时间年月日时分秒
date “+%Y-%m-%d %H:%M:%S”
date 显示非当前时间
基本语法:
(1)date -d ‘1 days ago’ (功能描述:显示前一天时间)
(2)date -d ‘-1 days ago’ (功能描述:显示明天时间)
date 设置系统时间
基本语法:date -s 字符串时间
案例操作:
设置系统当前时间
date -s “2020-06-19 20:52:10”
cal 查看日历
基本语法:cal 选项 # 不加选项,显示本月日历
选项说明:
具体某一年
显示这一年的日历
案例操作:
查看当前月的日历
cal
查看2020年日历
cal 2020
用户管理命令
useradd 添加新用户
基本语法:
useradd 用户名 (功能描述:添加新用户)
useradd -g 组名 用户名 (功能描述:添加新用户到某个组)
案例操作:
添加一个用户
useradd tangseng
passwd 设置用户密码
基本语法:
passwd 用户名 # 设置用户密码
案例操作:
设置用户的密码
passwd tangseng
id 查看用户是否存在
基本语法:
id 用户名
操作案例:
查看用户是否存在
id tangseng
cat /etc/passwd 查看创建了哪些用户
基本语法:cat /etc/passwdsu 切换用户
su:switch user 切换用户
基本语法:
su 用户名称 切换用户,只能获得用户执行权限,不能获得环境变量
su - 用户名称 获得执行权限和环境变量
案例操作:
切换用户
su tangseng
echo $PATH
exit
su - tangseng
echo $PATH
userdel 删除用户
基本语法:
userdel 用户名 (功能描述:删除用户但保存用户主目录)
userdel -r 用户名 (功能描述:用户和用户主目录,都删除)
案例操作:
删除用户但保存用户主目录
userdel tangseng
ll /home/
删除用户和用户主目录,都删除
useradd zhubajie
ll /home/
userdel -r zhubajie
ll /home/
who 查看登录用户信息
1.基本语法
(1)whoami (功能描述:显示自身用户名称)
(2)who am i (功能描述:显示登录用户的用户名)
2.案例操作
(1)显示自身用户名称
whoami
(2)显示登录用户的用户名
who am isudo 设置普通用户具有root权限
1.添加tianliang用户,并对其设置密码。
useradd tianliang
passwd tianliang
2.修改配置文件
vi /etc/sudoers
修改 /etc/sudoers 文件,找到下面一行(91行),在root下面添加一行,如下所示:
Allow root to run any commandsanywhere
root ALL=(ALL) ALL
tianliang ALL=(ALL) ALL
或者配置成采用sudo命令时,不需要输入密码
Allow root to run any commandsanywhere
root ALL=(ALL) ALL
tianliang ALL=(ALL) NOPASSWD:ALL
修改完毕,现在可以用tianliang帐号登录,然后用命令 sudo ,即可获得root权限进行操作。
3.案例操作
用普通用户在/opt目录下创建一个文件夹
sudo mkdir module
chown tianliang:tianliang module/
用户分类(root用户、虚拟用户、普通真实用户)
Linux是多用户、多任务操作系统,按照用户角色划分
root用户:系统唯一,是真实的,可以登陆系统,可以操作系统任何文件和命令,拥有最高权限。
虚拟用户:这类用户也被称之为伪用户或假用户,与真实用户区分开来,这类用户不具有登陆系统的能力,但却是系统运行不可缺少的用户,比如bin、daemon、adm、ftp、ssh、mail等。这类用户都是系统自身拥有的,而非用户人为添加的,当然我们也可以添加虚拟用户。
普通真实用户:这类用户能登陆系统,但只能操作自己家目录的内容。权限有限,这类用户都是系统管理员自行添加的。本节内容用到的用户为普通用户,用来完成自身需求操作的系统使用账户。在/etc/passwd中可以看到各种账户的存在。
用户组
定义:具有相同特征的用户的集合体。
特点或作用:如果要让多个用户具有相同的权限,可以把用户定义到同一用户组,然后修改文件或目录的权限让这一用户组具有一定的操作权限。
常用命令
- 创建用户
useradd tianliang //新建tianliang用户
passwd tianliang //给tianliang用户设置密码 - 显示用户信息
id user //查看用户的uid、gid、groups属性 - 创建用户组
groupadd tlgroup//新建tlgroup工作组
useradd -g tlgroup tianliang //新建tianliang用户并增加到tlgroup用户组。
其中-g所属组 -d家目录 -s所用的shell - 给已有的用户增加工作组
usermod -g tlgroup tianliang //修改用户的gid,即修改所属组
gpasswd -a tianliang tlgroup //将用户追加到组tlgroup中
usermod -G tlgroup tianliang //将用户追加到组tlgroup中,tlgroup为非主组 - 删除用户账号
userdel tianliang//永久删除该用户,不清除其/home/tianliang目录 - 彻底删除用户:是否删除该用户的家目录等相关文件来区分
userdel -r tianliang //删除tianliang用户及其家目录下的所有数据 - 从用户组中删除用户
gpasswd -d tianliang tlgroup //从组tlgroup中删除掉tianliang用户 - 删除用户组
groupdel tlgroup //删除组,但当该组是某个用户的主组的时候,不能删除 - /etc/passwd文件解析
该文件存储的是操作系统用户信息,该文件为所有用户可见,包含7个字段信息,通过cat /etc/passwd查看如下
文件权限命令
1.权限介绍
Linux针对文件权限分为三组:用户,用户组,其他。我们使用命令ls -l或者ll,以列表的格式化形式,即可查看文件或者目录对应的权限信息。
文件列表信息的字符意义,文件权限共10个字符,其意义分别为:
第一个字符,文件类型
d:表示文件目录
-:表示文件
|:表示连接文件
b:表示设备文件里的可供存储的接口设备
c:表示设备文件里面的串行端口设备,如键盘
第2~4个字符:用户权限
第5~7个字符:用户组权限
第8~10个字符,其他用户权限
对于文件权限可分为3种
2.常用命令
chmod
chmod:更改文件、文件夹权限。权限设置分2种,分别可以使用数字和符号。
语法:chmod [-R] 权限文件/目录
选项与参数:-R递归的持续更改,连同子目录下的所有文件一起更改
数字修改法
使用ll input.txt查看文件原来权限,使用chmod 755 input.txt更改权限,修改后,使用ll input.txt再次查看文件权限。
符号修改法
使用ll input.txt查看原始权限,使用chmod u=rwx,g=rwx,o=rwxinput.txt,修改后再次使用ll input.txt查看文件权限。
chown
chown:更改文件所有者。此命令是change owner的简称,不过要被改变的用户要在/etc/passwd文件内存在才行,否则会报错,一般为root用户调用较多。
语法:chown [-R] 用户文件/目录 或者 chown [-R] 用户:组名 文件/目录选项与参数:-R递归参数(recursive)的级联更改,连同子目录下的所有文件一起更改。
更改文件的用户名和所属组:chown test:test input.txt
更改文件夹的所属用户名:chown -R test data
更改文件夹所属的用户组:chown -R :test data
chgrp
chgrp:更改文件所属用户组。此命令是change group的简称,要求被改变的组名要在/etc/group文件内存在才行,否则会报错。
语法:chgrp [-R] 用户组 文件/目录
选项与参数:-R 递归的级联更改,连同子目录下的所有文件一起更改。
递归更改文件夹所属用户组:chgrp -R test data