更新于2020/10/30
linux规划学习
之前学习的linux比较杂而乱,基本是需要什么百度什么,系统的学习并没有总结出较好的笔记和规律。再上这门课的时候,我也不知道自己的基础是什么样子的。既然不知道底细,那么就从零开始快速学习吧
第一次使用linux的基本操作
第一次登陆,我们不能总是使用root,我们需要一个账号相对安全的使用系统
$useradd -m username # 添加用户
$passwd username # 添加密码
接下来我们删除二手系统中的原账号
# 如果你已经切换到了新账号,你会发现你还没有足够的权限删除别人的账号,我们先切换回root账号
$su root
$userdel -r username
我们发现刚创建的账号的权利级别是很低的,要让我们的账号更加有权利,我们就需要把自己加入一个定义好的组
$groups # 先查看所有的组别
$usermod -G groupName username # 添加组
基本的账号创建完毕了,我们就来检查一下自己的系统
$uname (-a) # 查看系统信息,-a可以看到更多的内容
然后我们开始愉快的实验内容,以下命令为基本命令,在常规操作中使用(f,f1,f2等代表文件的路径)
实现效果 | 代码 |
---|---|
你想要看一下目录下面的文件有哪些 | ls -a包括隐藏文件/t按照时间排序/F查看哪些是文件夹/lg或者l都是看详细信息/迭代显示目录内容包括子文件夹中文件以及隐藏文件 或者ll 简单看文件名 |
快速浏览文件内容 | cat f |
复制不需要粘贴 | cp f1 f2 |
删除 | rm (-rf) f 括号内是强制删除 |
查看文件内容属性 | file f |
查找目录中文件,你需要学一下正则表达式 | find path regx |
实在不会了想看帮助 | man codename |
查看进程 | ps |
干掉进程 | kill p |
安装卸载驱动器(虽然我没咋用过) | mount 和umount |
查看日期和时间,还可以设置,注意系统时间可能是某自由国家的时间 | date |
清屏 | clear |
好了,实验做完了,你发现你忘记安装图像化界面的同时发现追番又更新了。此时我们就安装一下图形化(如果你在安装时没有安装图形化洁面的话)
为了演示和验证,我特地删除了我的图形化界面(手动狗头)
这是我删除的过程,了解一下就好
$yum groupremove "X Window System" -y # X Window
$yum groupremove "GNOME Desktop Environment" -y # GNOME
$yum groupremove "KDE (K Desktop Environment)" # KDE
$vi /etc/inittab
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this) --停机
# 1 - Single user mode --单用户模式
# 2 - Multiuser, without NFS (The same as 3, if you do not havenetworking) --多用户模式,不支持NFS
# 3 - Full multiuser mode --多用户模式
# 4 - unused --没有使用
# 5 - X11 --图形界面方式
# 6 - reboot (Do NOT set initdefault to this) --重新启动
#
id:5:initdefault: --默认运行等级是5
#直接把5改成3就可以
安装图形化界面,想要登录管理员的账号,检查yum命令能否使用
$yum grouplist
安装"GNOME Desktop"
$yum grouplist "GNOME Desktop"
安装完成以后呢,直接键入startx
进入图形化界面。
然而我们要方便一点,每次开机都进入图形化界面的化,就需要特地设置一下了
# 命令行改为图形界面模式
$systemctl set-default graphical.target
# 图形界面模式改为命令行模式
$systemctl set-default multi-user.target
# 查看当前启动模式
$systemctl get-default
至此,第一次上机的内容就结束了。
进一步学习Linux
对我个人来说,我是一个不折不扣的颜控,我装了国产最新的优麒麟系统,真是不错哦,感觉非常丝滑【最新版最近十月已经更新传送门】
BASH
在开始学习之前需要知道的事情
- 当你发现linux和windows相差实在是过大时:各种快捷键无法使用,vim编辑器不会剪切,我们先学习一下BASH的快捷键
ctrl+U
,剪切光标之前的命令ctrl+Y
,粘贴上面命令ctrl+R
,在历史命令中搜索ctrl+D
,退出当前终端
提高用户权限
在你好不容易写完一个shell以后保存退出发现权限不够,是不是很讨厌啊,这就来告诉你怎么提高自己的用户权限
- 切换root
- 修改
/etc/sudoers
文件,找到一行为
## ...
root ALL=(ALL) ALL
yourusername ALL=(ALL) ALL # 添加用户
- 保存,此时你的用户就可以使用sudo命令
## 示例操作
$ sudo chmod a+x+w xx.sh
输入输出
- 键盘
/dev/stdin
(标准输入) - 显示器
/dev/sdtout
(标准输出)
变量设定规则
需要知道的规则:
- 变量赋值等号两边不能加空格
- 变量值有空格需要用单/双引号包围
- 赋值单引号只能保证一般字符,而双引号可以保证特殊字符
- 使用
\
将特殊符号变成一般字符 - 环境变量大写
重定向
输入重定向
此处省略
输出重定向
改变原来的输出方向,比如把原来需要显示的数据保存到文件中去
- 标准输出重定向:
命令>文件;命令>>文件
(只能保存无报错信息除非2>
或者2>
),将命令输出结果保存到指定文件中 - 真正保存的方法,将命令和错误结果都保存(:可以过滤某些无意义的输出
命令 > 文件 2>&1
覆盖
命令 >> 文件 2>&1
追加
命令 &> 文件名
命令 &>> 文件名
把正确的输出追加到文件1,把错误的输出追加到文件2
命令>>文件1 2>>文件2
多命令顺序执行
;
只是分隔两个命令
&&
只有当命令1执行了后面的命令才会执行
||
有一个命令执行都行
管道符
例如grep:
-i
忽略大小写
-n
输出行号
-v
反向查找
--color=auto
搜索出关键字用颜色显示
$ netstat -an | grep xx # 先查找所有的网络连接,然后将输出作为输入放到搜索的内容
通配符
通配符 | 作用 |
---|---|
? | 匹配一个任意字符 |
* | all |
[] | 匹配括号内任意一个字符 |
[-] | -代表一个范围 |
[^] | ^取反 |
字符串拼接
varname="$varname"
应用:环境变量叠加:"$PATH":newpath
变量
- 环境变量
- 位置参数变量
$n|n为数字,$0代表命令本身,$1-$9代表第一个到第九个参数,十个以上的参数就要用大括号包含,${10}
$* ?
$@ ?
$# ?
数组
$ vararray[1]="haha"
$ echo "${vararray[1]}"#打印
当你觉得你需要输入的指令太长的时候
$ alias lm='ls -a|more' # 将后面的指令用另一个自定义指令存
$ unalias lm # 取消设置的别名
查看历史记录
$ history #全部指令
$ history n # n是数字,打印最近的n个历史记录
大部分常用
option | desc |
---|---|
${v#key} | 从头开始的数据符合【key】,删除最短数据 |
${v##key} | ,删除最长数据 |
${v%key} | 从尾向前的数据符合【key】,删除最短数据 |
${v%%key} | ,删除最长数据 |
${v/old/new} | 符合【oldString】则【第一个oldString会被newString取代】 |
${v//old/new} | 符合【oldString】则【全部oldString会被newString取代】 |
alias
type
cp
echo
unset
env
* HOME
* SHELL
* HISTSIZE
* MAIL
* PATH
* LANG
* RANDOM
set
export
locale
cat
read
declare
ulimit
dd
history
source
数据流重导向
cut
grep
sort
wc
uniq
tee
tr
col
join
paste
expand
split
xargs
id
find
mkdir
grep进阶
sed
nl
printf
awk
diff
patch
pr
以下为更新前内容,多为操作介绍
Linux系统的一般性操作
建议Ctrl+F
搜索一下关键字,如果没有,即可退出
一般命令格式:
命令 选项 参数1 参数2
主要目录说明:
目录 | 内容 |
---|---|
/bin | 命令 |
/var | 软件 |
/tmp | 零食目录 |
/usr | 用户目录 |
系统指令:
shutdown -h now
关机
shutdown -r now 或者 reboot
重启 【注:now 可以替换成为时间】
ls -l /
查看目录【注:/boot 启动目录 】
uname
查看系统名称
uname -a
查看版本信息
ip addr
查看ip地址
ls [-al]
名称
cd
[目录名称]
pwd
查看当前目录
mkdir [-p] 目录名称
【参数-p
创建系列目录 】
rmdir [-p] 目录名称
【目录非空不能删除 】
clear
清除界面
cd
切换目录
root su
普通用户到
su 用户名
root到普通用户
touch 文件名.类型
cat
查看文件内容参数-n
表示行号
more
文件名表示一点一点输出文件内容
less
可以按照上下上下移动
head
表示显示前面几行
tail
表示显示最后几行
cat
则是全部
cp [-r]来源文件a b c -t 目标文件
复制【注:参数-t
表示统一复制参数-r
可以复制有文件的文件夹到另一个文件夹】
mv来源文件 目标文件
剪切
删除文件:
rm 目标文件
-f
表示直接删除
-r
可以删除目录一个一个询问删除
-rf
表示直接删除目录
关于vim操作:
- 命令模式下输入:
a
进入编辑模式
esc
退出
h j kl
左下上右
a i o
后 前 当前行之下
A I O
行末 行首 上一行插入
dd
剪切当前行
yy
复制
p
下一行粘贴
P
上一行粘贴 - 最后行模式:
:w
保存
:wq
保存退出
:q!
不保存退出
/a
表示匹配a
:set nu
表示增加行号
查找文件:
- 查找命令
which
- 查找文件
whereis
在特定目录 find 指定路径 [-name/user/size]
参数- 不确定名称时’不确定的名称用*替换’
- 表示任意字符
?
的个数表示模糊的字符-name
表示查找文件-user+用户名
- 表示被某个用户创建的文件
find
速度最慢但是最强大
用户管理命令:
- 查看目前用户
who
- 创建用户
useradd [-g群组] 用户名
- 设置密码
passwd 用户名
- 删除用户
userdel [-r] 用户名
【-r
会删除用户名的文件夹】- 查看群组
groups [用户名]
- 创建群组
groupadd 群组名
- 删除文件
groupdel 群组名
- 用户群组修改
usermod [-g群组名] 用户名
- 查看用户pid进程
ps -u 用户名
- 删除用户pid
kill pid的值
- 彻底杀死pid进程
kill -9 pid的值
- 权限的作用
r
读权限w
写权限x
执行权限
修改文件或者目录的权限
- 修改所有者
chown [-R] 用户名 文件或者目录
- 修改所有者和组
chown [-R] 用户名:组名 文件或者目录
- 修改所属组
chgrp [-R] 组名 文件或者目录
- 权限修改
chmod [-R] xyz 文件或者目录
x
所有者权限y
所属组z
其他用户r:4 w:2 x:1
- 可以用上面数字代替权限
x
角色u g o a
代表所有者 所属组- 其他用户、所有角色
y
设置+ - =
增加减少设置z
权限rwx
-R
参数表示目录递归修改权限
压缩和解压缩
tar
压缩文件-c
压缩t
查看内容x
解压缩z
使用gzip方式j
使用bzip2方式J
使用xz方式v
显示过程f
制定压缩包名称
【注: 一般出纳室必须要-cvf/-tvf/xvf
】
比如压缩1.txt和2.txt到1.tar
tar -cvf 1.tar 1.txt 2.txt
解压
tar -xvf 1.tar
查看
tar -tvf 1.tar
源码包安装:
- 编译前配置
./config
- 编译
make
- 编译安装
make install
【注:make clean
删除上一次遗留的object】
rpm <–红帽开发的系统
rpm -i
安装-v
显示详细信息-h
显示进度rpm -q 安装包
查询是否安装rpm -qi 安装包
查询包信息rpm -ql 安装包
查询安装位置rpm -e 安装包
卸载安装包
yum安装管理rpm包
yum list 包
查询可以安装的软件包yum [-y] install 软件包
安装-y
表示自动回答yes
yum [-y] updata 软件包
更新软件包yum [-y] remove 软件包
卸载安装包
【注:复制粘贴快捷键】
ctrl+shift+c
ctrl+shift+v
下载链接内内容:
curl -O 完整链接