Linux01-基本命令行操作
一、环境
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来开启、查看、重置虚拟机。
[aaa@qq.com ~]$ rht-vmctl start server
[aaa@qq.com ~]$ rht-vmctl view server
[aaa@qq.com ~]$ 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,设备文件,用于访问硬件。
2.2 Bash基本操作
显示当前路径pwd,列出指定目录的内容ls,切换目录cd。
[aaa@qq.com ~]$ pwd
/home/student
[aaa@qq.com ~]$ 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
[aaa@qq.com ~]$ cd /usr/bin/
[aaa@qq.com bin]$ pwd
/usr/bin
ls参数-l长列表格式、-a显示隐藏文件、-R递归显示等。
[aaa@qq.com ~]$ ls -a
. .. .bash_logout .bash_profile .bashrc .cache .config .ssh
[aaa@qq.com ~]$ 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
[aaa@qq.com ~]$ ls -R ./.config/
./.config/:
abrt gnome-initial-setup-done monitors.xml
./.config/abrt:
[aaa@qq.com ~]$
创建目录mkdir,创建文件touch,复制cp,移动mv,删除rm,查看文件的前n行head、后n行tail,回显分屏显示less。
在Bash中可以进行模式匹配,我个人理解为bash下的正则表达式。
模式 | 匹配项 |
* | 由零个或多个字符组成的任何字符串 |
? | 任何一个字符 |
~ | 当前用户家目录 |
~username | 用户username的家目录 |
[abc...] | 括起来的类中的任何一个字符 |
[!abc...]或[^abc...] | 不在括起来的类中的任何一个字符 |
{xyz,abc} | 离散扩展 |
{a..z}或{1..9} | 连续扩展abcdef...uvwxyz,连续扩展123456789,可以嵌套 |
[aaa@qq.com ~]$ mkdir d{1..5}
[aaa@qq.com ~]$ touch file_{TXT,EXE}_{1..10}.txt
[aaa@qq.com d1]$ echo {Mon,Tue,Fri}day
Monday Tueday Friday
[aaa@qq.com d1]$ echo {a..d}{1..3}
a1 a2 a3 b1 b2 b3 c1 c2 c3 d1 d2 d3
[aaa@qq.com d1]$ echo file{a{1..3},b,d}.txt
filea1.txt filea2.txt filea3.txt fileb.txt filed.txt
bash中可以进行变量的替换,用$符号;用单引号''或转义字符\能避免被替换。
[aaa@qq.com d1]$ host=kevin
[aaa@qq.com d1]$ echo "***hostname is ${host}***"
***hostname is kevin***
[aaa@qq.com d1]$ echo '***hostname is ${host}***'
***hostname is ${host}***
[aaa@qq.com d1]$ echo "***hostname is \${host}***"
***hostname is ${host}***