Linux基础(包括centos7安装、linux基础命令、vi编辑器)
一、安装CentOS7
需要:1、VMware Workstation;2、CentOS7镜像
1、安装镜像
2、虚拟机配置
开启虚拟机,鼠标从vm中移出来用快捷键ctrl+alt
点击开始安装,设置密码,等待安装完成,,重启。
3、注意事项
如果没有获取到虚拟机的ip地址,就是由于启动服务器是未加载网卡,导致ip地址初始化失败而造成的,就应该修改网络初始化配置,设定网卡在系统启动时初始化。
以下显示正常
4、安装SSH连接工具-finalshell
- 安装
- 连接linux
二、Linux常用命令
注意事项:
1、在敲出文件/目录/命令的前几个字母后,按下tab键会自动补全,再按一下 tab 键,系统会提示可能存在的命令;
2、输入命令后 加上**-help或–help**会显示帮助文档
1、安装等
- yum -y install [xxx] :安装,且回答全部为是。yum -y install tree,安装tree命令。
- 打包压缩:tar 与 gzip 命令结合可以使用实现文件 打包和压缩;tar 只负责打包文件,但不压缩,用 gzip 压缩 tar 打包后的文件,其扩展名一般用 xxx.tar.gz
# 打包文件
tar -cvf 打包文件.tar 被打包的文件/路径...
# 解包文件
tar -xvf 打包文件.tar
# 压缩文件
tar -zcvf 打包文件.tar.gz 被压缩的文件/路径...
# 解压缩文件
tar -zxvf 打包文件.tar.gz
# 解压缩到指定路径
tar -zxvf 打包文件.tar.gz -C 目标路径
2、目录
-
pwd:显示当前目录。
[root@localhost home]# pwd /home
-
tree:以树形结构显示当前以及子目录以及文件,部分linux系统需要安装。
- -a 显示所有的包括隐藏(以.开头的是隐藏文件);-d 显示目录
[root@localhost home]# tree
.
└── test_order
└── test.c
1 directory, 1 file
[root@localhost home]# tree -a /root
/root
├── anaconda-ks.cfg
├── .bash_history
├── .bash_logout
├── .bash_profile
├── .bashrc
├── .cache
│ └── abrt
│ └── lastnotification
├── .config
│ └── abrt
├── .cshrc
├── .tcshrc
└── test_order
└── test.c
5 directories, 9 files
[root@localhost home]# tree /root
/root
├── anaconda-ks.cfg
└── test_order
└── test.c
1 directory, 2 files
[root@localhost home]# tree -d /root
/root
└── test_order
1 directory
[root@localhost home]# tree -ad /root
/root
├── .cache
│ └── abrt
├── .config
│ └── abrt
└── test_order
5 directories
- cd 切换目录
- cd 切换到当前目录的主目录
- cd ~ 切换到当前用户的主目录(/home/用户目录)
- cd . 保持在当前目录不变
- cd … 切换到上级目录
- cd - 可以在最近两次工作目录之间来回切换
3、查找
- find [路径] -name “*.py”:查找该路径下后缀名为py的文件
[root@localhost home]# find -name "*.c"
./test_order/test.c
[root@localhost home]# find /root -name "*.c"
/root/test_order/test.c
[root@localhost home]# find /home -name "*.c"
/home/test_order/test.c
4、查看相关
-
ls
-
-l:展示详细信息
[root@localhost home]# ls test_order [root@localhost home]# cd test_order/ [root@localhost test_order]# ls test.c [root@localhost test_order]# ls -l 总用量 0 -rw-r--r--. 1 root root 0 11月 17 09:17 test.c [root@localhost test_order]# ls -li 总用量 0 17340868 -rw-r--r--. 1 root root 0 11月 17 09:17 test.c [root@localhost test_order]#
-
查看文件
-
tail:tail [options] [file]
-
-f :持续追踪文件变化,既可以动态地查看文件的最新内容
-
-n [NUM]:表示输出文件的最后 NUM 行内容,默认10
-
查看文件的最后 10 行内容:
tail file.txt
查看文件的最后 20 行内容:
tail -n 20 file.txt
持续查看文件的最新内容:
tail -f file.txt
-
-
cat:用来 查看文件内容、创建文件、文件合并、追加文件内容 等功能;cat 会一次显示所有的内容,适合 查看内容较少 的文本文件
-
more:more 命令可以用于分屏显示文件内容,每次只显示一页内容;适合于 查看内容较多的文本文件
操作键 | 功能 |
---|---|
空格键 | 显示手册页的下一屏 |
Enter | 键 一次滚动手册页的一行 |
b | 回滚一屏 |
f | 前滚一屏 |
q | 退出 |
/word | 搜索 word 字符串 |
- grep:Linux 系统中 grep 命令是一种强大的文本搜索工具;grep 允许对文本文件进行 模式查找,所谓模式查找,又被称为正则表达式。
选项 | 含义 |
---|---|
-n | 显示匹配行及行号 |
-v | 显示不包含匹配文本的所有行(相当于求反) |
-i | 忽略大小写 |
常用的两种模式查找
参数 | 含义 |
---|---|
^a | 行首,搜寻以 a 开头的行 |
ke$ | 行尾,搜寻以 ke 结束的行 |
4、软链接
- ln -s file1 file3:给file1创建一个软链接file3
软链接(也称为符号链接或symlink)是指一个特殊类型的文件,它包含了另一个文件或目录的路径信息。也就是说,软链接是一个指向另一个对象的快捷方式,它不共享相同的内容,属性和权限。软链接可以跨越不同的分区和文件系统创建。被链接的文件最好用绝对路径。
[root@localhost test_order]# ln -s /home/test_order/test.c /home/new.txt
[root@localhost test_order]# ls
test.c
[root@localhost test_order]# cd ..
[root@localhost home]# ls
new.txt test_order
[root@localhost home]# ls -l
总用量 0
lrwxrwxrwx. 1 root root 23 11月 17 09:43 new.txt -> /home/test_order/test.c
drwxr-xr-x. 2 root root 20 11月 17 09:17 test_order
[root@localhost home]# ls -li
总用量 0
765566 lrwxrwxrwx. 1 root root 23 11月 17 09:43 new.txt -> /home/test_order/test.c
17340867 drwxr-xr-x. 2 root root 20 11月 17 09:17 test_order
在Linux系统中,可以使用
rm
命令来删除软链接。例如,如果要删除file3
这个软链接,可以执行rm file3。这样,就会删除file3
这个文件名,但是不会影响file1
或者其所在的路径。只有当原文件被移动或删除时,软链接才会失效。例如: mv file1 file4。这样,就会移动file1
到另一个位置,并且使得file3
无法找到正确的路径。
5、创建删除
- mkdir 创建一个新目录
- -p 递归创建目录
[root@localhost home]# mkdir test_mkdir/test1
mkdir: 无法创建目录"test_mkdir/test1": 没有那个文件或目录
[root@localhost home]# mkdir -p test_mkdir/test1
[root@localhost home]# tree
.
├── test_mkdir
│ └── test1
└── test_order
└── test.c
3 directories, 1 file
- touch:创建文件或修改文件时间,如果文件 不存在,可以创建一个空白文件;如果文件 已经存在,可以修改文件的末次修改日期
[root@localhost test_order]# ls -l
总用量 0
-rw-r--r--. 1 root root 0 11月 17 09:17 test.c
[root@localhost test_order]# touch test.c
[root@localhost test_order]# ls -l
总用量 0
-rw-r--r--. 1 root root 0 11月 17 10:00 test.c
[root@localhost test_order]# touch test.cpp
[root@localhost test_order]# ls -l
总用量 0
-rw-r--r--. 1 root root 0 11月 17 10:00 test.c
-rw-r--r--. 1 root root 0 11月 17 10:00 test.cpp
- rm 删除文件或目录
- -f:强制删除,忽略不存在的文件,无需提示
- -r:递归地删除目录下的内容,删除文件夹 时必须加此参数
6、拷贝移动
-
cp 源文件 目标文件
- -r 若给出的源文件是目录文件,则 cp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名
[root@localhost home]# cp /home/test_order ./test_cp cp: 略过目录"/home/test_order" [root@localhost home]# ls test_mkdir test_order [root@localhost home]# cp -r /home/test_order ./test_cp [root@localhost home]# tree . ├── test_cp │ ├── test.c │ └── test.cpp ├── test_mkdir │ └── test1 └── test_order ├── test.c └── test.cpp 4 directories, 4 files
-
mv 源文件 目标文件:移动文件或目录,或者重命名文件或目录
7、其它
1、重定向
Linux 允许将命令执行结果 重定向到一个 文件;将本应显示在终端上的内容 输出/追加 到指定文件中。其中
> 表示输出,会覆盖文件原有的内容
>> 表示追加,会将内容追加到已有文件的末尾
2、管道
- Linux 允许将 一个命令的输出 可以通过管道 做为 另一个命令的输入
- 可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里 | 的左右分为两端,
左端塞东西(写),右端取东西(读)
常用的管道命令有:
- more :分屏显示内容
- grep :在命令执行结果的基础上查询指定的文本
8、远程登录和复制文件
1、ssh
最简单的用法只需要指定用户名和主机名参数即可,主机名可以是 IP 地址或者域名。
$ ssh user@hostname
SSH 默认连接到目标主机1的 22 端口上,可以使用-p选项指定端口号
$ ssh -p 10022 user@hostname
直接连接并在后面加上要执行的命令就可以了
$ ssh pi@10.42.0.47 ls -l
9、文本处理
grep
命令格式:grep [options] [pattern] file 其中options可以放在后面任意位置
命令 参数 匹配模式 文件数据
-i : Linux大小写敏感,忽略字符大小写
-o : 仅显示匹配的字符串本身
-v : 显示没有被匹配的行
-E :支持使用扩展的正则表达式元字符
-q : 静默模式,不输出任何信息
-n : 显示行号
-F : 相当于fgrep,匹配固定字符串的内容。
1. grep '^a' test.txt -i -n #查找以a开头的行,显示行号并且忽略大小写。
'a$' #查找以a结尾的行
'a*' #查找a出现一次或者多次行号
2. grep -v '^$' test.txt #反向输出所有非空格内容(过滤空行)
3. grep "\.$" test.txt -n #输出以.为结束的行,\为转义字符,.为特殊字符。
'^.*c' #以任意内容开头, 直到c结束
4. grep "[abc]" test.txt -n -o #匹配abc字符中的任意一个,得到它的行数和行号,只显示被匹配的关键字。
"[^a]" -c #匹配除a以外的字符,显示被匹配了多少行。
"[a+]" -n #+号表示匹配前一个字符1一次或多次.
"[go?d]" -n #匹配god或者good
5. grep -E "(ab)+c" test.txt -n #匹配ab出现一次或者多次以c结尾的行,并显示行号。
"go(|o|od)d" #|或的意思,()将一个或多个字符捆绑一起, 当作一个整体进行处理。
"(ab){1,3}" #匹配ab字符一到三次。
sed
awk
三、命令别名
~表示root目录
[root@localhost ~]# vi ~/.bashrc
[root@localhost ~]#
[root@localhost ~]# source ~/.bashrc //让命令生效
[root@localhost ~]#
[root@localhost ~]# dps
CONTAINER ID IMAGE PORTS STATUS NAMES
d23e74f2b636 nginx 0.0.0.0:80->80/tcp, :::80->80/tcp Up 21 minutes nginx
[root@localhost ~]# dps
CONTAINER ID IMAGE PORTS STATUS NAMES
d23e74f2b636 nginx 0.0.0.0:80->80/tcp, :::80->80/tcp Up 21 minutes nginx
[root@localhost ~]#
四、vi编辑器
- 命令行模式
按键 | 说明 |
---|---|
:w | 保存。(w)rite |
:w! | 强制保存(即使文件只读) |
:q | 退出编辑器。(q)uit |
:q! | 强制退出编辑器(不保存所做的编辑) |
:wq | 保存并退出 |
:wq! | 强制保存并退出 |
:x | 保存并退出,同 :wq |
:x! | 强制保存并退出,同 :wq! |