目录
一、环境
二、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是的目录结构是一个以/为顶部的树状目录结构。有几个重要的目录/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等等。
linux核心的思想:一切都是文件。这样只管理两种属性:一个是文件、 一个是目录。简单、高效、不冗余。比如设备也是一个设备文件,fdisk /dev/sda ------ >/dev/sda1,设备要使用就一定要挂载,设备和目录建立一个映射关系。
显示当前路径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可以分为登录shell和非登录shell。
ssh就是secure shell,对应的后台进程是sshd,终端就是shell的具体实现。
linux 默认用的是bash shell, 可以用其他shell;linux 内核一定要bash shell;所以用bash就对了。
shell可以进行个性化设置,环境变量 , 权限等。su命令可以用来切换登录用户,su - 命令中的选项“-”表示运行登录shell,那么以下脚本会按照顺序执行,他们的意义是:
在切换shell的时候,一定要加上“-”,这样切换用户才能运行自己的shell。