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等。

Linux01-基本操作与Shell_第1张图片

在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下的正则表达式。

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,那么以下脚本会按照顺序执行,他们的意义是:

  1.  /etc/profile          全局的环境变量
  2.  ~/.bash_profile   用户自定义的环境变量
  3.  ~/.bashrc            个性化设置   alias 命令的别名  
  4.  /etc/bashrc         全局的个性化设置

在切换shell的时候,一定要加上“-”,这样切换用户才能运行自己的shell。

 

 

 

 

 

 

 

你可能感兴趣的:(#,Linux基础,Linux,linux,centos,redhat,shell)