Linux01-基本操作与Shell
目录
一、环境
二、Linux目录结构及基本操作
2.1 Linux目录结构
2.2 基本操作
三、shell
3.1 shell的意义
3.2 su -
一、环境
2019年搞下RHCE的证书,但是一直没有整理Linux学习的笔记,为了不让到手的知识被遗忘,从今天起整理Linux学习笔记。复习,备忘。
所有实验环境都是Redhat的标准练习环境。
虚拟机fondation0,用来承载、访问练习用的虚拟机中的虚拟机,用户kiosk,密码redhat,通过IP地址10.10.10.100/24访问。子网172.25.0.0/24中配置两台虚拟机中的虚拟机desktop0和server0。
虚拟机中的虚拟机desktop0.example.com,IP地址172.25.0.10,用户root、student,密码redhat。
虚拟机中的虚拟机server0.example.com,IP地址172.25.0.11,用户root、student,密码redhat。
在foundation0上用rht-vmctl来开启、查看、重置虚拟机。
[kiosk@foundation0 ~]$ rht-vmctl start server
[kiosk@foundation0 ~]$ rht-vmctl view server
[kiosk@foundation0 ~]$ rht-vmctl reset server
二、Linux目录结构及基本操作
2.1 Linux目录结构
Linux是的目录结构是一个以/为顶部的树状目录结构。有几个重要的目录/bin、/sbin、/usr、/boot、/dev、/etc、/home、/root、/tmp、/var、/lib、/lib64、/mnt、/proc、/run等。
在Redhat中,有几个目录是软连接关系,并不是真实存在的目录。/bin->/usr/bin、/sbin->/usr/sbin、/lib->/usr、/lib64->/usr/lib64、/usr/tmp->/var/tmp等等。
- /usr,意思是Unix System Resource是Unix系统资源的意思,这里面放了安装的软件、共享;
- /bin->/usr/bin,这个bin就是可执行的二进制文件,也就是用户命令;
- /sbin->/usr/sbin,这个sbin就是super bin的意思,也就是系统管理命令,必须以root身份才能执行;
- /etc,存放特定于此系统的配置文件;
- /var,特定于此系统的可变数据,在系统启动之间保持永久性。动态变化的文件,比如数据库、缓存目录、日志文件等;
- /run,运行时数据包括进程ID文件和锁文件,在重启时这个目录被重新创建;
- /home,家目录,普通用户的个人数据和配置文件;比如student的家目录是/home/student;
- /root,超级用户root的家目录;
- /tmp,存放临时文件,默认10天内没被访问、更改的文件将自动从这个目录删除;
- /boot,操作系统启动过程中需要的文件;
- /dev,设备文件,用于访问硬件。
linux核心的思想:一切都是文件。这样只管理两种属性:一个是文件、 一个是目录。简单、高效、不冗余。比如设备也是一个设备文件,fdisk /dev/sda ------ >/dev/sda1,设备要使用就一定要挂载,设备和目录建立一个映射关系。
2.2 基本操作
显示当前路径pwd,列出指定目录的内容ls,切换目录cd。
[student@server0 ~]$ pwd
/home/student
[student@server0 ~]$ ll /usr/
total 236
dr-xr-xr-x. 2 root root 45056 Jan 7 2015 bin
drwxr-xr-x. 2 root root 6 Mar 13 2014 etc
drwxr-xr-x. 2 root root 6 Mar 13 2014 games
drwxr-xr-x. 4 root root 42 Jan 7 2015 include
dr-xr-xr-x. 42 root root 4096 Jan 7 2015 lib
dr-xr-xr-x. 131 root root 65536 Jan 7 2015 lib64
drwxr-xr-x. 35 root root 8192 Jan 7 2015 libexec
drwxr-xr-x. 12 root root 4096 May 7 2014 local
dr-xr-xr-x. 2 root root 20480 Jan 7 2015 sbin
drwxr-xr-x. 232 root root 8192 Jan 7 2015 share
drwxr-xr-x. 4 root root 32 May 7 2014 src
lrwxrwxrwx. 1 root root 10 May 7 2014 tmp -> ../var/tmp
[student@server0 ~]$ cd /usr/bin/
[student@server0 bin]$ pwd
/usr/bin
ls参数-l长列表格式、-a显示隐藏文件、-R递归显示等。
[student@server0 ~]$ ls -a
. .. .bash_logout .bash_profile .bashrc .cache .config .ssh
[student@server0 ~]$ ls -al
total 16
drwx------. 5 student student 4096 Mar 24 00:31 .
drwxr-xr-x. 3 root root 20 Jan 7 2015 ..
-rw-r--r--. 1 student student 18 Jan 29 2014 .bash_logout
-rw-r--r--. 1 student student 193 Jan 29 2014 .bash_profile
-rw-r--r--. 1 student student 231 Jan 29 2014 .bashrc
drwxrwxr-x. 3 student student 17 Mar 24 00:31 .cache
drwxr-xr-x. 3 student student 67 Mar 24 00:31 .config
drwx------. 2 student student 28 Jan 7 2015 .ssh
[student@server0 ~]$ ls -R ./.config/
./.config/:
abrt gnome-initial-setup-done monitors.xml./.config/abrt:
[student@server0 ~]$
创建目录mkdir,创建文件touch,复制cp,移动mv,删除rm,查看文件的前n行head、后n行tail,回显分屏显示less。
cp file1 /tmp/file2
cp -r 递归 -p
mv 重命名或者移动
rm -i -r -f
mkdir -p
touch 创建空文件
rmdir 删除空目录
在bash中可以进行模式匹配,我个人理解为bash下的正则表达式。
模式 | 匹配项 |
* | 由零个或多个字符组成的任何字符串 |
? | 任何一个字符 |
~ | 当前用户家目录 |
~username | 用户username的家目录 |
[abc...] | 括起来的类中的任何一个字符 |
[!abc...]或[^abc...] | 不在括起来的类中的任何一个字符 |
{xyz,abc} | 离散扩展 |
{a..z}或{1..9} | 连续扩展abcdef...uvwxyz,连续扩展123456789,可以嵌套 |
[student@server0 ~]$ mkdir d{1..5}
[student@server0 ~]$ touch file_{TXT,EXE}_{1..10}.txt
[student@server0 d1]$ echo {Mon,Tue,Fri}day
Monday Tueday Friday
[student@server0 d1]$ echo {a..d}{1..3}
a1 a2 a3 b1 b2 b3 c1 c2 c3 d1 d2 d3
[student@server0 d1]$ echo file{a{1..3},b,d}.txt
filea1.txt filea2.txt filea3.txt fileb.txt filed.txt
bash中可以进行变量的替换,用$符号;用单引号''或转义字符\能避免被替换。
[student@server0 d1]$ host=kevin
[student@server0 d1]$ echo "***hostname is ${host}***"
***hostname is kevin***
[student@server0 d1]$ echo '***hostname is ${host}***'
***hostname is ${host}***
[student@server0 d1]$ echo "***hostname is \${host}***"
***hostname is ${host}***
三、shell
3.1 shell的意义
shell可以分为登录shell和非登录shell。
- 登录shell是只在用户登录的时候执行一次的shell,就是我们用的命令行,是交互式的环境,每一个用户都有一个自己的login shell。用户一定要有shell,才能跟系统内核交互,user<—>shell<—>kernel<—>hardware。
- 非登录shell就是脚本语言,不需要用户登录也可以执行的。
ssh就是secure shell,对应的后台进程是sshd,终端就是shell的具体实现。
linux 默认用的是bash shell, 可以用其他shell;linux 内核一定要bash shell;所以用bash就对了。
3.2 su -
shell可以进行个性化设置,环境变量 , 权限等。su命令可以用来切换登录用户,su - 命令中的选项“-”表示运行登录shell,那么以下脚本会按照顺序执行,他们的意义是:
- /etc/profile 全局的环境变量
- ~/.bash_profile 用户自定义的环境变量
- ~/.bashrc 个性化设置 alias 命令的别名
- /etc/bashrc 全局的个性化设置
在切换shell的时候,一定要加上“-”,这样切换用户才能运行自己的shell。
相关文章:

ORB_SLAM2中Tracking线程的三种追踪方式
1、参考关键帧追踪模式 bool Tracking::TrackReferenceKeyFrame()对参考关键帧中的路标点进行跟踪。在Tracking线程中,每传入一帧,都会进行位姿优化。 以上一帧的位姿为当前位姿进行优化。 (1)计算当前帧的词袋 mCurrentFra…

nodejs 中间件 反向代理 接口转发
背景 随着后端业务系统的增加,纵向需求不断扩展,一个业务系统已经无法满足需求了,衍生出多个业务系统,对外暴露的ip、端口就可能有多个,此时不方便外部接口调用,有些特殊行业客户出于安全性考虑不发提供多…

oneinstack
https://oneinstack.com/转载于:https://www.cnblogs.com/diyunpeng/p/9740895.html

最近在做托盘时,发现 CnTrayIcon1的OnClick 事件,不能被其它按钮来执行,蛋疼。...
比如: procedure TForm1.Button1Click(Sender: TObject);begin CnTrayIcon1.OnClick ; // 这句就是不能通过!!end; 有过路的高手,指点学生一下。谢谢转载于:https://www.cnblogs.com/hahy8008/p/6783614.html

Linux02-帮助手册
目录 一、man手册 1.1 man的基本使用 1.2 mandb更新文档 二、/usr/share/doc 三、access.redhat.com 门户 一、man手册 1.1 man的基本使用 man就是mannual的缩写,手册的意思。Linux的命令很多,参数选项更多,人脑一般是记不住的&…

ORB_SLAM2中Tracking线程
Tracking线程是ORB_SLAM2的主线程。在System.cc中,使用构造函数进行了初始化,开启了三个线程。 可执行程序—>System构造函数(初始化三个线程)—>处理输入的帧(TrackMonocular)—>调用Tracking线程…

selenium的基础知识点
from selenium import webdriver from scrapy.selector import Selector#模拟登陆 browser webdriver.Chrome(executable_pathChromedriver.exe) #路径是Chromedriver.exe的存放位置,windows下只要配置好这个环境就不需要了browser.get(http://w) #需要登陆的那个网…

iOS 直播专题2-音视频采集
从设备(手机)的摄像头、MIC中采集音频、视频的原始数据ios的音视频采集可以从AVFoundation框架里采集 视频采集 这里我们选取GPUImage来采集视频,因为这个框架集成了很多视频滤镜,例如美颜 采集流程: 摄像头采集视频代码 GPUImageVideoCamera.m // 从前摄像头或后摄像头…

bzoj 4871: [Shoi2017]摧毁“树状图”
4871: [Shoi2017]摧毁“树状图” Time Limit: 25 Sec Memory Limit: 512 MBSubmit: 53 Solved: 9[Submit][Status][Discuss]Description 自从上次神刀手帮助蚯蚓国增添了上千万人口(蚯口?),蚯蚓国发展得越来越繁荣了!…

Linux03-本地账户和组
目录 一、本地账户/etc/passwd 二、本地组/etc/group 三、切换账户su - 四、增删改本地账户useradd、userdel、usermod 五、账户默认配置文件/etc/login.defs 六、设置密码passwd(5)命令 七、增删改组groupadd、groupdel和groupmod 八、通过sudo以root身份运行命令 九…

ORB_SLAM2单目初始化策略
基本流程 单目初始化程序存储在Initializer.cc中 需要注意,对于双目/RGB-D相机,初始化时,由于可以直接获得相机的深度信息,因此无需求H/F,直接作为关键帧插入就行。 使用RANSACDLT求解H,RANSAC八点…

Powerdesigner逆向工程64位Oracle数据库
Powerdesigner老版本不支持64位Client,新版本弄不到破解码 解决方法,用Powerdesigner32位Oracle Clent访问64位Oracle Server 遇到的坑分享下 安装完64位的Oracle Server ,32位的 Oracle Clent默认的listener.ora文件有PROGRAM和ENVS这两个节点 Plsql(3…

运行jsp时,报错404
The origin server did not find a current reprsentation for the target resource or is not willing to disclose that one exists. 解决: 1. web.xml文件位置是否放错,应该放在WebContent/WEB-INF文件夹中 2. web.xml文件中是否有拼写错误࿰…

iOS 直播专题3-前置处理
前置处理 对视频添加美颜、水印、滤镜等对音频进行混音、消除环境音、声音特效等上一篇iOS 直播专题2-音视频采集提到视频采集采用的是GPUImage框架,这个框架集成了很多滤镜效果 这里主要介绍美颜、水印处理 处理流程: 美颜 这里的美颜效果用的是GPUImageBeautyFilter 功…

ORA-10873解决办法
今天,发现SAP系统的oracle数据库宕掉了。报错ORA-10873,经过查证解决该问题。记录一下,备忘。 一、问题 Oracle版本为12.1.0.2.0,在启动服务器后启动数据库startup,报错ORA-10873。 二、查证 到SAP Support Portal上…

ORB_SLAM2局部建图线程
局部建图线程入口:可执行程序在初始化三个线程的时候,在System.cc的构造函数中进入局部建图线程 mpLocalMapper new LocalMapping(mpMap, //指定使iomanipmSensorMONOCULAR); // TODO 为什么这个要设置成为MONOCULAR??&#…

十一连测day1
这次测试,是福建第三中学的某同学出的,感觉难度还行吧,今天我就浅谈一下这场比赛的时间分配与心得 打开题目,看到了T1,这题是一道计数题吧,感觉心态一下子就崩了,100%的数据点应该是组合数学容斥…

iOS 直播专题5-推流
常用的推流协议有: 协议内容RTP实时流传输协议,但不保证服务质量RTCPRTP数据流协议的一个姐妹协议,为RTP提供服务质量反馈SRTP & SRTCPRTP和RTCP的安全版本,提供数据加密、消息认证功能RTSP控制声音或影像的多媒体数据串流协议RTMPADOBE公司播放器与服务器之间多媒体数…

centos6.5-vsftp搭建
我的机子是默认是没有的vsftp。 yum install -y vsftp 创建账户专为ftp而生。useradd ftp01 更改账户不可登录系统。usermod -s /sbin/nologin ftp01 vsftp默认是可以匿名登录的,也是默认的端口,这些不安全选项都要修改! anonymous_enableYES…

Linux04-文件系统权限与ACL权限
目录 一、文件系统权限 1.1、认识文件系统权限 1.2、管理文件系统权限 1.3、特殊权限 1.4、默认权限 二、ACL权限 2.1、ACL本质是文件系统的一个挂载选项 2.2、更改文件的ACL权限 2.3、设置文件和目录的默认ACL权限 Linux中的权限管理分为两种类型 用户自主访问控制&…

ORB_SLAM2帧Frame
在追踪线程的一开始就会创建一个帧 cv::Mat Tracking::GrabImageMonocular(const cv::Mat &im,const double ×tamp)构造函数 在构造函数中,会对特征点进行提取。 ExtractORB(0,imGray);特征点分配至网格 将图像划分为48*64的网格,然后将…

Servlet的基本架构
Servlet的基本架构: package test;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class Serv…

ORACLE 用户权限管理
Oracle创建用户的语法: CREATE USER username IDENTIFIED BY password OR IDENTIFIED EXETERNALLY OR IDENTIFIED GLOBALLY AS CNuser [DEFAULT TABLESPACE tablespace] [TEMPORARY TABLESPACE temptablespace] [QUOTA [integer K[M] ] [UNLIMITED] ] ON tables…

iOS 直播专题6-流媒体服务器
常用的流媒体服务器有: nginx、SRS、BMS 这里主要介绍nginx、SRS 这里都用docker来运行流媒体服务器 docker 安装 下载Mac版docker stable 直接安装 注册一个docer账号直接登录SRS 安装 SRS guthub地址:https://github.com/ossrs/srs/ 启动上面安装的docker软件后,打开终端…

Linux05-进程管理
目录 一、进程 1.1、进程ID 1.2、列出进程 1.3、进程前后台 二、使用信号控制进程 三、以管理员身份注销用户(踢掉在线用户) 四、监控进程活动 4.1、负载平均值 4.2、实时进程监控 进程是已启动的可执行程序的运行中的实力。它由以下部分组成&a…

Mat常用赋值方式
参考https://blog.csdn.net/wanggao_1990/article/details/53264753 #include <iostream> #include <opencv2/opencv.hpp> #include <unordered_map> using namespace std; using namespace cv; int main(int argc,char** argv) {// 1Mat mat (Mat_<flo…

java modbus协议
概念 Modbus是一种串行通信协议,Modbus协议目前存在用于串口、以太网以及其他支持互联网协议的网络的版本。 大多数Modbus设备通信通过串口EIA-485物理层进行。 通讯格式 地址域功能码数据CRC校验(低字节在前)1字节1字节N字节2字节 在单片机硬件通讯串口行业&…

layui栅格布局问题
在使用layer.open弹出到窗口中,使用布局一直不起作用。 开始到写法如下, 目的是一行分成左右两块,比例为8:4等分。 <div class"layui-fluid"><div class"layui-row layui-col-space10"><div class"layui-col-md…

Unity3d载入外部图片文件
unity里的图片在生成时会压缩成资源文件,有时客户想自己放一些图片用unity显示,就必须载入外部图片。 大体思路:用Application.streamingAssetsPath或Application.dataPath来指定存放图片的相对路径。用DirectoryInfo获得目录。遍历后FileInf…

Linux06-服务、守护进程和systemd
目录 一、简介systemd 二、使用systemd 2.1、systemctl命令与systemd单元 2.2、控制系统服务 一、简介systemd RHEL6及以前,系统启动和服务器进程是由第一个进程 init 管理,init按顺序启动、启动慢。 RHEL7以后系统启动和服务器进程由 systemd系统和…