linux基础
一. linux的控制台
- linux控制台是什么
以后学习和工作的主要工具, 接受用户输入的命令
怎么打开
a. 鼠标 桌面空白位置, 右键, 打开终端 b. 快捷键 默认没有直接打开终端的快捷键, 需要自己去设置 左键最右上角 --> 选择最下左进入setting --> 左最下的Devices --> Keyboard --> 右边最下面的 + 号 Name: Open Terminal <-- 快捷键的名字 Command: /bin/gnome-terminal <-- 要执行的命令 Shortcut: ctrl + alt + t <-- 点击之后按这3个组合建
3. 把语言环境设置成中文
locale LANG=en_US.UTF-8 <-- 语言环境是英文 sudo locale -a zh_CN.utf8 <-- 查看是否有这个结果,这个是简体中文 如果没有就安装中文简体包 sudo yum install kde-l10n-Chinese sudo vim /etc/locale.conf #LANG="en_US.UTF-8" --> 注释掉 LANG="zh_CN.UTF8" --> 改成中文 reboot --> 重启 重启结束后 选择以后不再提示 , 保留原来的名字
基础使用
a. 调整窗口字体大小 Ctrl + Shift + = 放大字体 Ctrl + - 缩小字体 b. 多加一个窗口 Ctrl + Shift + n 新建一个终端 Ctrl + Shift + t 在终端里新建一个标签 c. 其他的基本操作 Alt + [1 - 9] 标签之间切换 d. 关闭终端 exit
终端配置(字体,大小,颜色,透明度)
右键 --> 配置文件 --> 配置文件首选项 终端字体推荐使用: dejavu sans mono bold 14 颜色推荐取消第一个选项, 选择黑底白字 透明度不推荐超过上方左边方框的右边框
关机和重启
重启命令: reboot init 6 关机命令: init 0
修改命令提示符
vim ~/.bashrc 在最后添加一行:
1 | 样式1 |
二. linux 基本命令
linux命令严格区分大小写
命令 shell 命令解析器
当前SHELL环境变量:
1 | echo $SHELL |
1. 命令是什么
linux命令是对Linux系统进行管理的命令。
对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,
还是用户等,都是文件,Linux系统管理的命令是它正常运行的核心,与Windows的DOS命令类似。
linux 是一切基于文件的
命令的格式
所有英文书写必须使用半角(宽字符: 光标移上去显示两个位置)
命令和参数严格区分大小写
命令使用语法: 命令名 参数1 参数2 … 参数n
命令名与参数之间分隔符为空格(自动处理重复分隔符)
参数之间分隔符为空格(自动处理重复分隔符)
man mv
[] 可有可无
... 前面内容可以有多个(不限个数)
man ip
| 多选一
{} 此符号表示为分组
命令的参数
处理参数里带空格字符问题: 使用双引号, 单引号, \ 来解决
命令参数的分类:
选项 以-或–开头的参数, 控制命令的功能
**长选项 – **
可读性高, –后跟单词
**短选项 - **
便捷性高, -后跟单个字符, 如果跟多个字符代表多个短选项
选项值
无值选项 -l / list
有值选项 -t utf8 / –to=utf8
可选值选项 –color=auto / –color
普通参数(多为路径) 命令处理的源
2. 命令的分类
linux命令在系统中有两种类型:内部命令和外部命令。
内部命令 Shell在内部代码中实现的命令
man type 查看bash Shell自带的命令
外部命令 Shell以外的命令
用type命令查看内部命令还是外部命令
type cd 提示cd is a shell builtin则说明是内部命令
type mount 提示mount is /bin/bash 告诉外部命令的位置
3. 帮助命令
a. man 注重于应用,也是最常用的帮助方法
man 的帮助文档存放的位置
/usr/share/man
man 的帮助文档分类
man 1 ls 查看ls命令的第一节手册
1 普通用户命令
2 系统核心调用的函数工具
3 常用的一些函数与函数库
4 设备文件的说明
5 配置文件与一些其它格式的文件
6 游戏相关
7 网络协议相关
8 管理员可操作的命令
9 系统内核相关的文件
在 man 帮助里:
/c 搜索c关键字
n 下一个关键字
N 上一个关键字
q 退出
b. info 注重于介绍,不常用
帮助文档存放位置
/usr/share/info
info 进入页面
进入帮助界面
? info命令帮助
空格键 向下翻一页
tab 在结点之间移动,有结点的地方通常会以*显示,将光标移动结点位置按回车可进入结点
b 移动光标到该文章的第一个结点处
e 移动光标到该文章的最后一个结点处
n 前往下一个info页
p 前往上一个info页
u 向上移动一层
s(/) 在info里搜索
h 显示帮助菜单
q 退出
4. 目录命令
pwd 查看当前所在目录的路径
cd 切换当前所在目录
是change directory的简写
绝对路径
cd /root/Desktop 指从根目录开始的路径
相对路径
cd root/ 指以当前目录开始的路径
. 代表当前所在目录
.. 代表当前的父目录
- 代表上一次所在的目录
~ 代表当前登录用户的家目录
/ 代表根目录
mkdir 创建一个目录
在当前目录下创建test目录
mkdir test
mkdir ./test
cd ~
在根目录下tmp目录里创建test目录
mkdir /tmp/test
在当前目录下创建file1到file100的目录
mkdir file1 mkdir file2 ... mkdir file100
或者
mkdir file{1..100}
字母也是可以的 mkdir file{a..z}
在当前目录下创建file{1..100}目录,需要用双引号引起来
mkdir "file{1..100}"
在当前目录下创建a/b/c目录树 (PPP1)
mkdir -p a/b/c
在当前目录创建feile1到file100的目录树
mkdir file{1..100}/nginx/ssl -p
mkdir file/cq{a..z}/nginx/ssl -p
rmdir 只能删除空目录
rmdir test 删除当前目录的test目录,test必须是空目录
rmdir /tmp/test 删除/tmp下的test目录
rmdir file{1..100} 删除file1到file100的目录
rmdir "file{1..100}" 删除file{1..100}目录
5. 文件命令
ls 列出当前文件夹下的所有文件和文件夹
ls -a 列出当前目录下所有文件,包含隐藏文件
ls -l 以详细列表形式列出当前目录下的所有文件
ls -R 列出当前目录所有文件,包含子目录内所有文件
文件类型:
c 字符设备文件
端口的接口设备
b 块设备
用来挂载硬盘分区, 一般不自己去创建
l 链接文件
ln -s 源文件 链接文件 软连接(指向文件系统的节点)
ln 源文件 链接文件 硬链接(指向硬盘位置)
s socket文件
这类文件经常用于网络数据连接,可以启动一个程序来监听客户端
客户端就可以通过socket文件来进行数据通信
p 管道文件
解决进程之间的通信
d 目录文件
- 普通文件
-rwxr-xr-x. 1 root root 2475 9月 8 18:10 iptables.sh
- 文件类型
rwxr-xr-x 文件权限
1 文件的链接数
root 文件的所属用户
root 文件的所属用户组
2457 文件的大小
9月 8 18:10 文件的最后修改时间
iptables.sh 文件名
常用搭配:
显示所有文件包括隐藏文件列表
ls -al
显示按日期时间排序后的文件列表
ls -lt
显示计算大小为KB/m/G为单位的文件列表
ls -lh
显示当前文件夹详细信息
ls -ld
touch 新建文件
创建file空文件,如果file存在则更新file的存取和修改时间,
但是不会覆盖里面的内容
touch file
如果file不存在,则不创建文件
touch -c file
更新file时间和file1相同
touch -r file1 file
更新file的存取时间
touch -a file
更新file的修改时间
touch -m file
同时创建file2,file3,file4三个空文件
touch file2 file3 file4
touch file{2,3,4}
创建file{2,3,4}一个空文件
touch "file{2,3,4}"
cp 复制文件/文件夹
把file文件复制到dirs目录下
cp file dirs
把dir1目录复制到dir2目录下
cp dir1 dir2 -r
把file文件复制到dirs目录下,保留文件的原来属性
cp -a file dir2
强制复制文件夹,不提示
cp -rf file dir2
把dir1目录复制到dir2目录下,并且显示复制过程
cp -rvf dir1 dir2
把file1..6复制到dir2目录下,直接覆盖不提示
\cp -a file* dir2
选项:
-a 保留文件的原来属性
-r 复制目录
-i 提示是否覆盖, 默认直接覆盖
-u 更新, 比对时间,源文件比目标文件的时间新才会覆盖
-v 显示复制进度
-t 指定目标路径(应用复制多个文件或目录的场景)
-f 不提示,直接执行
mv 移动和重命名文件(PPP3)
把file1..6移动到dir2目录下,直接覆盖不提示
\mv file* dir2/
把file文件移动到dirs目录下
mv file dirs/
把file文件重命名为file2
mv file file2
把dir1目录下所有文件移动到dir2目录下,并且根据文件时间来决定要不要移动
mv -u dir1/* dir2/
rename 批量文件重命名
ls
file1.conf file2.conf file3.conf file4.conf file5.conf file6.conf
1 | rename .conf .html *.conf |
把所有后缀以.conf的文件名里出现.conf就改成.html(PPP4)
只有当前目录下面的文件名中有.conf才会去改变名字, 若出现多个,
命令执行一次只会改变一个.conf
rm 删除文件[夹]
删除所有file开头的文件夹
rm file* -rf
删除所有.txt结尾的文件
rm *.txt
提示是否确定删除
rm -i file
不提示,强行删除
rm -f file
删除目录
rm -r file
删除文件夹的软链接而不删除源文件
常用参数 rfv
6. 文件阅读命令
cat 文件查看命令
查看/etc/passwd内容
cat /etc/passwd
查看/etc/passwd内容并且编号
cat -n /etc/passwd
查看/etc/passwd内容并且给非空行编号
cat -b /etc/passwd
碰到多个连续的空行, 合并成一个空行
cat -s /etc/passwd
head
查看/etc/passwd前10行内容
head /etc/passwd
查看/etc/passwd前30行内容
head -n 30 /etc/passwd
查看/etc/passwd前30个字符的内容
head -c 30 /etc/passwd
tail
查看/etc/passwd后10行内容
tail /etc/passwd
查看/etc/passwd后30行内容
tail -n 30 /etc/passwd
查看/etc/passwd后30个字符的内容
tail -c 30 /etc/passwd
实时查看/etc/passwd文件内容
tail -f /var/log/nginx/access.log
less
查看/etc/passwd文件内容,和more不同的是可以上下滚动
less /etc/passwd
显示每行的行号
less -N /etc/passwd
显示类似more的百分比
less -m /etc/passwd
按q退出
more
逐屏查看/etc/passwd文件内容
more /etc/passwd
7. 重定向 (实用)
标准输入 代码 0 默认设备为键盘
标准输出 代码 1 默认设备为屏幕
错误输出 代码 2 默认设备为屏幕
标准正确输出重定向到output.txt
ls -hl /etc/passwd > output.txt
标准正确输出追加重定向到output.txt
ls -hl /etc/passwd >> output.txt
标准错误输出重定向到error.txt
ls -hl ddd 2> error.txt
标准错误输出重定向到黑洞
ls -hl dddd 2> /dev/null
标准正确输出和标准错误输出全都重定向到黑洞
ls ddddd /etc/passwd &> /dev/null
> 和 >> 的区别
> 输出重定向, 清空文件再写
>> 输出重定向,从最后的一个有效字符的下一行开始拼接文件, 追加
< 输入重定向, 后面跟文件,将文件内容作为前面命令的标准输入
wc -l < /etc/passwd 把/etc/passwd作为wc -l的输入源
<< 输入重定向, 后面跟结束标识符, 将结束标识符前面内容作为命令的标准输入
wc -l << EOF
< hello world
< hello linux
< bye
< EOF
把标识符EOF之间的内容作为前面命令的输入, 第一个标识符和<<
之间要有空格(可以不加, 但是为了美观, 加上去),
第二个标识符那一行的前面不能有任何的有效字符,
后面也不能加任何的有效字符(换行符除外)
<<< 输入重定向, 后面跟字符串,将字符串作为命令的标准输入
cat <<< “hello world” 把hello world字符串作为cat的输入源
cat <<< “hello word” > hallo.txt 把hello world 输入到hello.txt文件里面
wc -l <<< “hello world” 把hello world字符串作为wc -l的输入源
假如后面的输入源字符串需要有多行的话,就需要在字符串的外面加””
wc -l <<< “hello world
> hello linux
> hello shell
> “
后面的”只要一出现就会结束输入,和标识符的规则不一样
8. 管道(PPP7)
cat /etc/passwd | less | 之前的命令执行的结果做|后命令的参数
格式: 命令1 | 命令2 | 命令3 ... | 命令n
将管道符号前面命令标准输出重定向管道符号后面命令标准输入
多重管道能一直起作用的前提是输入和输出不能断
cat /etc/passwd | wc -l
三. Linux文件系统目录介绍
/ 根目录,系统所有的目录都是从根目录开始
/bin 存放的是系统可执行的二进制文件,即常用命令
/sbin 存放的是管理员可执行的二进制文件
/home 普通用户的家目录
/root 超级管理员root用户的家目录
/boot 系统启动时引导目录
/etc 存放系统配置文件
/dev 存放设备文件
/var 存放在执行过程中经常变化的数据,例如日志、邮件等
/lib 存放系统使用的函数库,程序运行过程中会调用这些库
/usr 存放用户安装的一些软件的各种目录
/tmp 临时目录,存放各程序执行时产生临时文件
/lost+found 存放分区出现问题时的一些遗失片断,只有在单独分区里才会存在
/proc 虚拟目录,它实时记录当前系统的各种状态
/opt 存放扩展软件包的地方
/sys Linux设备模型文件夹,用于统一表示和操作计算机上的所有设备
/run centos自动挂载的文件夹
/media 默认用来挂载光盘等介质目录
/mnt 默认也是用来挂载
/misc 默认用于autofs挂载目录
四. VIM编辑器的使用
vi vim (增强版vi,现在各版本的linux都带有vim)
安装/升级vim
sudo yum install vim
三种模式
普通模式(default) 快捷操作(定位, 删除 替换 查找)
可视模式
编辑模式
插入模式
替换模式
命令行模式 文档操作/扩展操作
vim newfile 新建一vim空白文件进行编辑
普通模式切换编辑模式: i/a/A/I/s/S/R/o/O/C
编辑模式切换普通模式: ESC
普通模式切换命令行模式: 冒号(:)
命令行模式切换普通模式: ESC
普通模式
定位
h/j/k/l 左下上右
ctrl + d/u/f/b 换页
b/w/e/B/W/E 单词定位
0 零 将光标定位到开头位置
^ 将光标定位到开头有效字符位置
$ 将光标定位到行尾
G 将光标定位到最后一行
gg 将光标定位到第一行
命令行模式
:10 定位到第10行
:set nu 显示行号
:set nonu 不显示行号
vim 1_passwd +21 在打开文件的时候就跳到文件的21行
配置文件(配置vim初始功能)
全局配置 /etc/vimrc
用户配置 ~/.vimrc
将以下内容写入配置文件, 重启vim即可实现
set nu
选取(可视模式)
v 按字符进行选取
V 按行进行选取
ctrl + v 按列进行选取
ggVG 全选
查找
/ 查找
/hello 按回车进行高亮查找关键词
n/N 进行上下定位查找关键词
进入命令行输入 noh 取消高亮
删除
s 删除一个字符进入插入模式
S 删除一行进入插入模式
dd 删除一行
x 删除一个字符
撤消/重做
u 撤消
ctrl + r 重做撤消操作
复制/剪切/粘贴
yy 复制一行
yw 复制一个单词(要求光标在单词开头)
p 粘贴到光标后面
P 粘贴到光标前面
数字前缀
10yy 复制10行
10dd 删除10行
命令行操作
:w 保存
:q 退出
:wq 保存退出
:w! 强制保存
:q! 强制退出
:qall 退出所有编辑文档
:w /tmp/new.file 另存为到/tmp/new.file
:e /etc/passwd 打开文件
缓存区管理
列表缓存区 :ls
切换缓存区 :bn / :bp
标签管理
新建标签 :tabnew /tmp/hello.txt
切换标签 gt/gT
:r 1.txt 将1.txt内容导入本编辑文档
:r! ls 将ls的标准输出导入本编辑文档
:vsp /tmp/hello.txt 竖向分屏编辑
:sp /tmp/hello.txt 横向分屏编辑
ctrl + w + w
替换
:1,$s/root/ROOT/g
:10,20s/root/ROOT/g
:%s/k365f/k365h/g
先选取再按:s/root/ROOT/g
openoffice
办公软件
eog
图片查看器
gedit
文本编辑器
evince
PDF浏览器
cal
日历
date 日期时间
date -s 修改日期和时间
date -d 计算日期
date +"%Y" 查看当前年
date +"%F" 查看当前年月日
date + "%m" 查看当前月
date + "%d" 查看当前日
bc 命令行计算器
yum insstall -y bc
bc
bc <<< "(5+4)/3"
bc <<< "scale=3;10/3"
bc <<< "ibase=2;101"
bc <<< "ibase=2;obase=16;1010"
echo 输出命令(脚本)
echo "hello world"
echo -e "hello \nworld\n"
echo -n "hello world" 取消换行输出
echo "$HOME" 输出变量值
read 输入命令(脚本)
read
如果没有指定变量,则写入REPLY变量
echo $REPLY
read v
获取用户输入的内容
echo $v
openssl 加密
/dev/null 空洞文件, 用于写
/dev/zero 用于读,永久都是二进制的零
/dev/urandom 用于读,永久都是随机二进制
五. tmux 开源的终端管理工具
安装:
centos7:
sudo yum install tmux -y
配置文件 ~/.tmux.conf
sudo mount 192.168.0.89:/soul /mnt
cd /mnt/software
cp tmux.conf ~/.tmux.conf
会话 - 解决客户端连接断开, 重连能还原最后操作界面
创建会话
在独立bash Shell中输入: tmux
或
tmux new-session -s 会话名称
查看会话列表
tmux list-session
分离会话(会话挂起)
在tmux终端内:
ctrl + b d
或
ctrl + b D
唤醒会话
tmux attach -t 会话名称
选择会话
ctrl + b s
通过上下键进行按回车进行选择
关闭会话
将tmux所有终端退出,即关闭会话
tmux kill-session -t 会话名称
重命名会话名称
ctrl + b $
窗口 一个会话当中至少要有一个窗口(标签显示)
创建窗口
ctrl + b c
关闭窗口
退出bash即关闭窗口
或
ctrl + b &
列表窗口
ctrl + b w
选择窗口
选择第一个窗口: ctrl + b 0
选择第二个窗口: ctrl + b 1
...
定制化的配置
alt + 1 ~ 9
窗格 一个窗口至少要有一个窗格(分屏显示)
创建窗格
竖分屏 ctrl + b |
横分屏 ctrl + b -
关闭窗格
ctrl + b x
选择窗格(切换)
ctrl + b h/j/k/l
滚动窗口(剪切板操作)
复制:
进入vi操作复制模式
ctrl + b y
在复制模式下按v选取再按y可进行复制(退出复制模式)
粘贴:
ctrl + b p
依赖配置及xclip工具
sudo yum install xclip -y
ip a s
ctrl + b y
V
y
ctrl + b p
简单挂载
查看192.168.0.183有哪些共享文件夹
showmount -e 192.168.0.183
把192.168.0.89下面的/soul 挂在到本机的/mnt目录
sudo mount 192.168.0.183:/soul /mnt
切换工作目录到/mnt
cd /mnt
ls
cd linux/2_linuxBasics
ls
vi 2_detail.txt
取消挂载
切换工作目录到根
cd /
取消挂载
sudo umount /mnt
强制取消挂载
sudo umount /mnt -l
ntfs U盘挂载
sudo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
sudo yum install ntfs-3g -y
- 本文标题:linux基础
- 本文作者:yichen
- 本文链接:https://yc6.cool/2020/08/03/linux基础/
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
1.sed的常用命令的使用
2.linux根下目录文件介绍
3.vim的使用
4.linux中丢失grub.cfg引导文件修复
5.linux系统管理
6.linux磁盘管理
7.磁盘命令lvm
8.linux软件管理