系统:centos7
ps:输入文件时可以按tab键进行补全(或者按两次tab键进行类似文件的查询)
1.Linux系统命令提示符组成
[root@localhost ~]#
root Linux操作系统的管理员 显示当前登录的系统用户
@ 分隔符
localhost 主机名称
~ 显示当前所在的路径(当前在哪个目录下)
~ 表示家目录 /root/ 默认登录操作系统所在的位置
# 表示用户的提示符 # 表示管理员用户 $表示普通用户
1.2.命令语法格式
(1)命令 直接回车
(2)命令 空格 [参数选项] # 每个参数表示不同的功能
(3)命令 空格 [参数选项] 空格 文件/目录
注意空格不可缺 新手经常犯此类错误 将命令打在一起 或者本该在一起的用空格分开
2.linux基础命令
2.1 pwd
pwd 查看当前路径 (print working directory)
[root@localhost ~]# pwd
/root # 默认的(出生点)在家里面/目录 root目录
cd 切换目录 (change directory)(就像在window里面双击目录打开)
cd # 回到主目录 (初始目录 波浪号)
cd - # 切换回上一次所在的工作目录。
cd ~ # cd + 文件位置 (切换到该文件位置)
cd .. # 切换到该文件的上一级 (如目前在 /etc/yum.repos.d/ 目录下 使用此命令将到 /etc 目录下)
案例1.使用相对路径 一级一级的到/dev目录\
[root@localhost etc]# cd
[root@localhost ~]# cd /
[root@localhost /]# cd dev
[root@localhost dev]# pwd
/dev
案例2.使用绝对路径 直接进入到/usr目录
[root@localhost dev]# cd /usr
[root@localhost usr]# pwd
/usr
案例3.深入目录 使用绝对路径/etc/sysconfig/networ-scripts/
[root@localhost usr]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]#
案例4.回到家目录 (多方法)
[root@localhost network-scripts]# cd /root
[root@localhost ~]# pwd
/root
[root@localhost network-scripts]# cd ~
[root@localhost ~]#
[root@localhost network-scripts]# cd
[root@localhost ~]#
[root@localhost ~]# cd -
/etc/sysconfig/network-scripts
[root@localhost network-scripts]#
2.2 ls
ls 查看文件或者目录
-l 文件的详细信息
ls -l = ll(ls的缩写可以直接如此使用)
-a 显示隐藏文件
ls 直接回车 显示当前目录下所有的内容
ls 文件 查看文件是否存在
ls 目录 查看指定目录下的所有的文件
案例1. 显示当前目录下的所有的文件
[root@localhost network-scripts]# cd /
[root@localhost /]# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
案例2. 查看指定目录下的文件(截取部分)
[root@localhost /]# ll /dev
总用量 0
crw-rw----. 1 root video 10, 175 6月 12 10:20 agpgart
crw-------. 1 root root 10, 235 6月 12 10:20 autofs
drwxr-xr-x. 2 root root 180 6月 12 10:20 block
drwxr-xr-x. 2 root root 80 6月 12 10:20 bsg
案例3.查看文件的详细信息
[root@localhost /]# ll /etc/passwd
-rw-r--r--. 1 root root 3522 5月 30 21:05 /etc/passwd
案例4.查看多个文件的详细信息
[root@localhost /]# ll /etc/shadow /etc/passwd
-rw-r--r--. 1 root root 3522 5月 30 21:05 /etc/passwd
----------. 1 root root 1595 5月 30 21:05 /etc/shadow
再尝试查看etc目录下的passwd文件和dev目录下的shadow文件
[root@localhost /]# ll /dev/shadow /etc/passwd
ls: 无法访问/dev/shadow: 没有那个文件或目录
-rw-r--r--. 1 root root 3522 5月 30 21:05 /etc/passwd
一次显示/etc/passwd详细信息和/dev目录下所有文件的详细信息(截取部分)
[root@localhost /]# ll /etc/passwd /dev
-rw-r--r--. 1 root root 3522 5月 30 21:05 /etc/passwd/dev:
总用量 0
crw-rw----. 1 root video 10, 175 6月 12 10:20 agpgart
crw-------. 1 root root 10, 235 6月 12 10:20 autofs
drwxr-xr-x. 2 root root 180 6月 12 10:20 block
错误目录尝试
[root@localhost /]# ls /etc/passsssssss
ls: 无法访问/etc/passsssssss: 没有那个文件或目录
2.3 .touch
语法结构:
# 创建普通文件 如果文件存在则只修改文件的时间 不会影响文件的内容
touch 普通文件 #默认在当前文件夹
touch file1 file2 #可以同时创建多个文件
touch /etc/wbbb #在指定的目录下创建文件wbbb
案例1.在当前目录创建wbbb #注意当前位置
[root@localhost ~]# touch wbbb
[root@localhost ~]# ll
总用量 8
-rw-------. 1 root root 2057 5月 30 21:06 anaconda-ks.cfg
-rw-r--r--. 1 root root 2105 5月 30 21:07 initial-setup-ks.cfg
-rw-r--r--. 1 root root 0 6月 12 10:59 wbbb
案例2.在当前目录一次性创建多个文件(截取部分)
[root@localhost ~]# touch 1.txt touch 2.txt
[root@localhost ~]# ll
总用量 8
-rw-r--r--. 1 root root 0 6月 12 11:01 1.txt
-rw-r--r--. 1 root root 0 6月 12 11:01 2.txt
案例3.在指定的目录下创建单个文件 /mnt/wbbb.txt 相对路径: 进入到/mnt目录然后创建wbbb
[root@localhost ~]# cd /mnt
[root@localhost mnt]# touch wbbb.txt
[root@localhost mnt]# ll
总用量 0
drwxr-xr-x. 2 root root 6 5月 30 21:14 hgfs
-rw-r--r--. 1 root root 0 6月 12 11:05 wbbb.txt
绝对路径(方便)
可以在任何位置创建想要位置的文件
[root@localhost mnt]# touch /mnt/wbbb
[root@localhost mnt]# ll
总用量 0
drwxr-xr-x. 2 root root 6 5月 30 21:14 hgfs
-rw-r--r--. 1 root root 0 6月 12 11:06 wbbb
-rw-r--r--. 1 root root 0 6月 12 11:05 wbbb.txt
案例5.在上一级创建wbbb.txt(截取部分)
[root@localhost mnt]# touch ../wbbb.txt
[root@localhost mnt]# cd ..
[root@localhost /]# ll
-rw-r--r--. 1 root root 0 6月 12 11:07 wbbb.txt
注意: 在目录下创建文件,目录必须存在的,不支持同时创建不存在的目录
2.4 mkdir
mkdir 创建目录 (make directory)
mkdir 111 #mkdir 加目录名字
mkdir -p 1/2 #mkdir 加目录名字可以递归创建(叠加创建 )
#递归创建1文件下的2 (没有1时同时创建1)
mkdir /mnt/目录名称 # 指定在某个目录下创建
案例1.在当前家位置创建test1目录
[root@localhost ~]# mkdir 111
[root@localhost ~]# ll
总用量 8
drwxr-xr-x. 2 root root 6 6月 12 11:22 111
案例2.在111下一次创建多个目录 222 333 444
[root@localhost ~]# cd 111/
[root@localhost 111]# mkdir 222 333 444
[root@localhost 111]# ll
总用量 0
drwxr-xr-x. 2 root root 6 6月 12 11:23 222
drwxr-xr-x. 2 root root 6 6月 12 11:23 333
drwxr-xr-x. 2 root root 6 6月 12 11:23 444
案例4.在多个目录下创建不同的目录
[root@localhost 111]# mkdir 222/111 333/222
[root@localhost 111]# ll 222 333
222:
总用量 0
drwxr-xr-x. 2 root root 6 6月 12 11:29 111333:
总用量 0
drwxr-xr-x. 2 root root 6 6月 12 11:29 222
案例5.递归创建目录
[root@localhost 111]# cd
[root@localhost ~]# mkdir -p 111/222/333
注意: 创建目录可以递归,创建文件不可以递归
2.5 tree
.tree 树形结构显示目录
-L 显示层级 -L 1 (只显示第一层)
[root@localhost ~]# tree
bash: tree: 未找到命令...
yum install tree -y #没有的话下载一下(搜一下如何配置阿里云镜像源)
[root@localhost ~]# tree 111/
111/
├── 222
│ ├── 111
│ └── 333
├── 333
│ └── 222
└── 444
2.6 cat
cat # 查看文件的内容,合并多个文件
-n # 显示行号 number
语法结构:
cat 文件
cat /目录/文件
cat file1 file2
案例1.查看/etc/hosts文件中的内容
[root@localhost ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
案例2.查看当前a.txt中的文件 啥都不显示则为空
[root@localhost ~]# cat wbbb
案例3.显示行号:
[root@localhost ~]# cat -n /etc/hosts
1 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
2 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
2.7.clear
clear #清屏也可以使用ctrl + l (非常的好使)
2.8 cp
cp # 复制文件 类似windows的 ctrl+c copy
语法结构:
cp 源文件 目标位置
cp 源文件 新文件的名称
cp file1 file2 目录/
cp 目录 目标位置
-r 复制目录,递归拷贝目录及目录下所有的文件
案例1.复制wbbb.txt 到/opt目录下 名称不变
[root@练习 111]# cd
[root@练习 ~]# ls
111 anaconda-ks.cfg initial-setup-ks.cfg
[root@练习 ~]# touch wbbb.txt[root@练习 ~]# cp wbbb.txt 111/
[root@练习 ~]# ls 111/
1fuck 1.txt 2fuck 2.txt 3fuck 3.txt fuck1 fuck3 wbbb.txt
1.log 1.TXT 2.log 2.TXT 3.log 3.TXT fuck2 s.txt
如果再次把wbbb.txt文件复制到111目录下 会提示是否覆盖(上一次的wbbb.txt文件)
[root@练习 ~]# cp wbbb.txt 111/
cp:是否覆盖"111/wbbb.txt"?
输入 n (no) 不覆盖
输入y (yes) 覆盖
ctrl + c 或者 ctrl + d 停止复制(覆盖)的动作
案例2.复制当前的wbbb.txt 到当前的位置名字为wbbb.txt.bak(截取部分)
[root@练习 ~]# cp wbbb.txt wbbb.txt.bak
[root@练习 ~]# ls
111 anaconda-ks.cfg initial-setup-ks.cfg wbbb.txt wbbb.txt.bak
案例3.拷贝wbbb目录到/111目录下
[root@练习 ~]# rm -rf wbbb
[root@练习 ~]# rm -rf wbbb.txt
[root@练习 ~]# rm -rf wbbb.txt.bak
[root@练习 ~]# ls
111 anaconda-ks.cfg initial-setup-ks.cfg
[root@练习 ~]# mkdir wbbb
[root@练习 ~]# ls
111 anaconda-ks.cfg initial-setup-ks.cfg wbbb
[root@练习 ~]# cp wbbb/ 111/
cp: 略过目录"wbbb/"#Linux系统中大部分命令无法直接操作目录太危险
[root@练习 ~]# cp -r wbbb/ 111/
[root@练习 ~]# ls 111/
1fuck 1.txt 2fuck 2.txt 3fuck 3.txt fuck1 fuck3 wbbb
#加上-r就可以了
2.9 mv
mv 移动 move windows的ctrl+x(剪切)
语法结构:
mv 源文件 目标位置
mv file1 file2 目标文件
mv 源文件名称 新文件的名称
案例1.移动qqq.txt文件到/tmp目录下
[root@练习 ~]# touch qqq
[root@练习 ~]# touch qqq.txt
[root@练习 ~]# mv qqq.txt 111/
[root@练习 ~]# ls 111/
1fuck 1.txt 2fuck 2.txt 3fuck 3.txt fuck1 fuck3 s.txt wbbb.txt
1.log 1.TXT 2.log 2.TXT 3.log 3.TXT fuck2 qqq.txt
案例2.移动多个文件到/tmp目录下
[root@练习 ~]# rm -rf /1
111 1G.txt
[root@练习 ~]# rm -rf 111/
[root@练习 ~]# ls
anaconda-ks.cfg qqq wbbb.txt
initial-setup-ks.cfg wbbb wbbb.txt.bak
[root@练习 ~]# mkdir 111
[root@练习 ~]# mv qqq wbbb 111/
[root@练习 ~]# ls 111/
qqq wbbb
案例3.强制覆盖不提示
[root@练习 ~]# mkdir wbbb
[root@练习 ~]# \mv wbbb 111/
案例4.移动目录
[root@练习 ~]# mkdir 111
[root@练习 ~]# mv 111 wbbb
[root@练习 ~]# ls wbbb
111 qqq wbbb
2.10 rm
rm # 删除文件或目录 remove
语法结构:
rm 文件
rm file1 file2
rm 目录
-f 强制删除文件不提示
-rf 强制删除目录不提示
案例1.删除当前的bak文件
[root@练习 ~]# ls
anaconda-ks.cfg initial-setup-ks.cfg wbbb wbbb.txt wbbb.txt.bak
[root@练习 ~]# rm -f wbbb.txt.bak
案例2.删除多个文件
[root@练习 ~]# rm -f wbbb/wbbb.txt wbbb.txt
[root@练习 ~]# ls
anaconda-ks.cfg initial-setup-ks.cfg wbbb
案例3.删除目录wbbb不提示
[root@练习 ~]# rm -rf wbbb
[root@练习 ~]# ls
anaconda-ks.cfg initial-setup-ks.cfg
2.11 vim
vim命令 文件编辑器 vi的高级版本
语法结构:
vim 文件名称 # 文件可以存在,如果不存在则创建
vim /路径/文件名称 (如配置文件空白注意是否文件名字错误)
vim编辑文件的流程:
第一步: vim 文件名称 进入到视图模式 只能看(只能用滚轮或者鼠标)
第二步: 按a或者i 进入到编辑模式 可以输入内容
第三步: esc 返回到视图模式
第四步: 输入:wq 保存并且退出 w (write) q (quit)
ps: 如果文件修改错误懒得改可以 q! (不保存强制退出回到未作编辑的状态)
2.12 echo
echo命令 输出字符串到屏幕上或者文件中
语法格式:
echo 字符串 # 输出到屏幕
echo 字符串 > 文件 # 输出到文件
案例1.echo输出姓名到屏幕上
[root@练习 ~]# echo wuboli
wuboli
[root@练习 ~]# echo fuck vs bin
fuck vs bin
案例2.使用特殊字符
\n表示回车 换行符 \t表示tab键 空格 tab键
[root@练习 ~]# echo -e "fuck \n vs \n bin"
fuck
vs
bin
[root@练习 ~]# echo -e "fuck\nvs\nbin"
fuck
vs
bin
案例2.数字序列的使用方法
[root@练习 ~]# echo {1..5}
1 2 3 4 5
[root@练习 ~]# echo {1..10..2}
1 3 5 7 9
[root@练习 ~]# echo {1..100..2}
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99
[root@练习 ~]# echo {01..10}
01 02 03 04 05 06 07 08 09 10
案例3.字母序列
[root@练习 ~]# echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
[root@练习 ~]# echo {a..z..2}
a c e g i k m o q s u w y
ps:后面的..2意思就是隔两个(几个 数字可以随意更改)
案例4.拼接(截取部分)
[root@练习 ~]# echo W{1..5}
W1 W2 W3 W4 W5
[root@练习 ~]# echo {1..5..2}W
1W 3W 5W
[root@练习 ~]# mkdir {1..5..2}W
[root@练习 ~]# ls
1W 3W 5W
案例5.批量创建文件
[root@练习 ~]# mkdir wbl
[root@练习 ~]# cd wbl/
[root@练习 wbl]# mkdir {1..3}.txt
[root@练习 wbl]# ls
1.txt 2.txt 3.txt
案例6.批量创建目录 / 文件
[root@练习 wbl]# mkdir test
[root@练习 wbl]# touch test/{1..3}.txt
[root@练习 wbl]# ls test/
1.txt 2.txt 3.txt[root@练习 wbl]# mkdir test/{1..3}
[root@练习 wbl]# ls test/
1 1.txt 2 2.txt 3 3.txt
ps:这个{}里面其实还可以塞非序列文字,用 , 隔开 也可以输出
ps:目前就先到这,后面会持续更新。