"第一阶段 快捷键 1" "第二阶段 文件和目录操作命令 1" "1.1 date / useradd 1" "1.2 echo 调用变量 2" "1.3 whoami 查看用户名 2" "1.4 tab命令补全 2" "1.5 history 历史命令 2" "1.6 alias 别名 3" "1 ......
第一阶段 快捷键 1
第二阶段 文件和目录操作命令 1
1.1 date / useradd 1
1.2 echo 调用变量 2
1.3 whoami 查看用户名 2
1.4 tab命令补全 2
1.5 history 历史命令 2
1.6 alias 别名 3
1.7 ls获取命令帮助help 4
1.8 cd:切换目录change directory 5
1.9 mkdir:创建目录make directory 5
2.0 touch创建文件 6
2.1 tree 树状显示目录文件结构 7
2.2复制命令cp 7
2.3 移动命令mv 8
2.4 删除rm 9
2.5 cat查看文件内容 10
2.6 查看命令more和less 10
2.7 查看文件前n行 head 11
2.8查看尾部tail 11
2.9 grep awk sed三剑客 11
第一部分 快捷键
ctrl + e |
将光标跳转至行末 |
ctrl + w |
以空格为单位,将当前光标位置之前的内容删除 |
.ctrl +u |
将当前光标位置之前的内容全部删除 |
ctrl + l |
清屏 |
ctrl + c |
终止当前命令 |
ctrl + d |
退出,断开当前连接(exit,logout) |
ctrl + z |
挂起,放后台执行 |
ctrl + r |
搜索历史命令 |
ctrl+s |
锁屏 |
ctrl+q |
解锁 |
ctrl+左右 |
按照单词跳转光标 |
esc + . |
瞬间显示出上一条命令,最后的内容,以空格分隔 |
ctrl+y |
将粘贴板上的内容粘贴出来,配合u,k,w使用 |
第二部分文件和目录操作命令
1.1 date / useradd
例如:
命令方式: [root@gong ~]# date #获取当前时间
2019年 06月 14日 星期五 15:47 cst
[root@gong ~]# useradd gjy
\#增加用户名
1.2 echo 调用变量
查看当前命令解释符
[root@gong ~]# echo $ps1
[\u@\h \w]\$
echo:在bash shell中调用变量 $
1.3 whoami 查看用户名
查看当前用户(whoamai:查看当前登录的用户)
[root@centos7 ~]# whoamai
root
root:超级系统用户名,也是当前系统的用户
root之外的都是普通用户
1.4 tab命令补全
例如:、 [root@centos7 ~]# ifc
\#按下tab键会自动补全,若按一下tab没反应,就需要按两下tab键,列出所有if开头的命令
ifcfg ifcconfig
[root@centos7 ~]# ifconfig
[root@centos7 ~]# ls /etc/sysconfig/network-scripts/ifcfg-eth0 #网络配置名称
1.5 history 历史命令
-w |
把历史文件写入文件 |
-c |
清空命令历史记录,不会清空文件 |
-d |
指定一条记录删除 |
-w |
保存历史命令 |
!! |
执行上一条命令 |
!n |
执行历史命令中的第n条命令 |
例如:
查看历史记录:
[root@gong ~]# history
清空历史记录
[root@gong ~]# history -c
\#指定一条历史记录删除
[root@gong ~]# history -d 23
\#保存历史命令
[root@gong ~]# history -w
\#执行上一条命令
[root@gong ~]# !!
\#执行上一条ls相关命令
[root@gong ~]# !ls
\#执行历史命令中的第23条命令
[root@gong ~]# !23
1.6 alias 别名
例如:定义临时别名,查看网络是否可以通,ping 百度,只对当前shell 生效
[root@gong ~]# alias tong="ping baidu.com" #需用双引号,单引号输出的结果是引号内的字符串
ping baidu.com (123.125.114.144) 56(84) bytes of data.
64 bytes from 123.125.114.144: icmp_seq=1 ttl=128 time=44.2 ms
64 bytes from 123.125.114.144: icmp_seq=2 ttl=128 time=47.5 ms
64 bytes from 123.125.114.144: icmp_seq=3 ttl=128 time=46.3 ms
......
查看所有定义的别名
[root@gong ~]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias tong='ping baidu.com'
......
取消别名
[root@gong ~]# unalias oldboy
[root@gong ~]# oldboy
-bash: tong: command not found
永久生效
[root@gong ~]# vim /etc/bashrc
alias oldboy="ping baidu.com"
1.7 ls获取命令帮助help
-l |
以长格式方式显示文件或目录的详细内容 |
-a |
查看目录下的所有文件,包括隐藏文件 |
-d |
只显示目录名,而不显示目录里面的内容 |
-f |
给不同类型的文件加上不同的标记 |
-r |
倒叙 |
-t |
按照文件或目录的修改时间进行排序 |
-i |
显示文件的inode 号码 |
-h |
以人类可读的方式 |
获取ls命令的帮助
[root@gong ~]# ls --help
用法:ls[选项]...[文件]...
[root@gong ~]# man ls
1.8 cd:切换目录change directory
cd - |
切换上次所在目录 |
cd ~ |
切换至当前用户家目录 |
cd . |
代表当前目录,一般在拷贝、移动情况下使用 |
cd .. |
切换至当前目录的上级目录 |
1.9 mkdir:创建目录make directory
-p |
如果目录已存在则不会报错,递归创建 |
-v |
打印出创建过程信息 |
\#创建目录
[root@gong ~]# mkdir dir1
\#创建目录并给权限
[root@gong ~]# mkdir -m777 dir2
\#递归创建目录
[root@gong ~]# mkdir -p dir3/dir4/dir5
\#创建目录并显示信息
[root@gong ~]# mkdir -pv dir4/dir5/dir6
备注:rwx为7,read 读,write写,exec执行
最高权限为777,目录一般权限为755,文件一般权限为644
例如:
条命令建出以下的目录:
/home/zls
/home/abc
/home/abc/1
/home/abc/2
/home/abc/3
/home/abc/1/zls
/home/abc/2/zls
/home/abc/3/zls
/usr/local/abc
/data
/backup
/backup/abc
/abc
/abc/test
/abc/test/1
...
/abc/test/10
解答:
[root@gong ~]# mkdir /{home/{zls,abc/{1..3}/zls},usr/local/abc,data,backup/abc,abc/test/{1..10}} -pv
2.0 touch创建文件
touch
语法:touch[选项]... 文件名...
创建文件,如果文件存在,不会覆盖内容,但是会修改创建时间
linux中,一切皆文件
示例1:
[root@gong ~]# touch file
[root@gong ~]# touch file1 file2
[root@gong ~]# touch /home/zls/file3 file4
[root@gong ~]# touch file{5,6,7}
[root@gong ~]# touch file{10..100}
示例2:
[root@gong ~]# touch abc
[root@gong ~]# touch /oldboy/abc
touch:cannot touch ‘/oldboy/abc’:no such file or directory
**注意:**
1.创建文件,必须要创建在一个存在的目录中
2.和创建目录不同的是,创建相同的文件不会报错
3.创建相同的文件,源文件内容不会被覆盖
4.在linux当中一切皆文件
2.1 tree 树状显示目录文件结构
如果没有安装,则需要先安装:yum -y install tree
起始目录为 .
[root@gong ~]# tree 当前目录的tree结构
[root@gong ~]# tree / /目录下的所有文件,目录
[root@gong ~]# tree /home /home下的文件,目录
[root@gong ~]# tree -l 1 / /目录下的一级目录,开头不是 . ,是指定的层级
[root@gong ~]# tree -l -d 2 /usr/local 只查看/usr/local的二级目录,不看文件
2.2复制命令cp
-r |
递归拷贝,拷贝目录,连里面的东西一并拷贝 |
-p |
保持源文件的属性 |
-a |
拷贝目录并保持属性,和-rp一样 (用的最多 |
-rp |
递归拷贝并保持源文件的属性 |
-v |
显示复制的过程 |
-t |
交换目标和源文件的位置(意义不大) |
语法:
cp [option]... 源文件 目标
cp [option]... source... directory
cp [option]... -t directory source...
[root@oldboyedu ~]# cp oldboy /usr/
cp: omitting directory ‘oldboy’
复制文件的过程:
[root@oldboyedu ~]# cp -v 123 456 789 /opt/
‘123’ -> ‘/opt/123’
‘456’ -> ‘/opt/456’
‘789’ -> ‘/opt/789’
cp可以修改名字,指定的目录不存在,也可以拷贝,但拷贝即改名
[root@gong ~]# cp /etc/sysconfig/network-scripts/{ifcfg-eth0,eth00}
把网卡配置还是配置到这个路径下,改名 eth00
[root@gong ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth0{,.bak}
把网卡配置还是配置到这个路径下,改名ifcfg-eth0.bak(加后缀)
备注:{,.bak}=ifcfg-eth0,ifcfg-eth0.bak
2.3 移动命令mv
mv:移动 move (系统默认操作,alias可以查看,mv=mv-i)
语法:
mv [option]... 源文件 目标
注意:
\#系统默认操作,alias可以查看,mv=mv-i,执行命令时系统会自动询问要不要移动
\mv 就不会询问
绝对路径执行命令:就是执行命令本身,不经过alias
命令前面加上转义符 \,也是执行命令本身,不经过alias
和cp一样
示例:
[root@gong ~]# mv file1 test1 #如果test1目录存在,file1直接放进
[root@gong ~]# touch file1 #创建文件file1
[root@gong ~]# echo 123>file 1 #输入123到file1文件中
[root@gong ~]# cat file1 #查看file1文件内容
总结:
1.如果目标是一个目录,就会把文件放入目录
2.文件,就会被覆盖
2.4 删除rm
rm 删除remove
语法:
-r |
递归删除 |
-f |
强制删除(force) |
-v |
显示删除的过程 |
rm +文件 |
直接可以删除 |
rm+目录 |
不能直接删除,需加参数 rm -r |
删文件就最好不加-f, linux中没有回收站,都是永久删除
禁止使用alias=rm - fr/
要想删除 加\
[root@gong ~]# \rm -fr #前面加\即可直接删除,不会询问
备注:
echo 'alias rm="echo '禁止使用rm'"' >> /etc/bashrc
source /etc/bashrc
再执行rm -fr /...
就会出现禁止使用
2.5 cat查看文件内容
cat:查看
用法: cat[选项]...[文件]
-a |
显示文件的结束符和tab键,,一行结束和空行都加$, $代表某一行的结束,包含-t -e-v |
-e |
显示文件的结束符 |
-t |
显示文件的tab键(^t) |
-b |
查看内容并显示行号,空行不显 |
示例:
[root@gong ~]# cat 123
file1
[root@gong ~]# cat 456
file2
[root@gong ~]# cat 123 456
file1
file2
[root@gong ~]# cat >> zls.txt << eof #eof=end of
eof #eof也可以换成jieshu或者其他,但必须首尾一致
[root@gong ~]# cat zls.txt #能获取到zls.txt的内容
了解:tac zls.txt
把内容反过来了
2.6 查看命令more和less
more
[root@oldboyedu ~]# more /etc/services
不可以操作,回车是下行,空格是翻页
按q退出
less
[root@oldboyedu ~]# less /etc/services
/ +关键字 回车
n: 向下搜索
n:向上搜索(shift + n)
2.7 查看文件前n行 head
用法:
head + 文件名
-n: 显示前n行,n为数字,n后面加数字
默认为前10行
[root@oldboyedu ~]# head /etc/services #默认为前10行
[root@oldboyedu ~]# head -n 20 /etc/services # head -n 20 #查看前20行
[root@oldboyedu ~]# head -20 /etc/services #head -20 #查看前20行
2.8查看尾部tail
用法:
tail+文件名
默认显示后10行
-f: 追踪文件末尾,相当于tailf
tailf=tail -f 是一个单独的命令,追踪日志
-n :显示前n行,n为数字,n后面加数字
(n也可以不写,作用一样)
2.9 grep awk sed三剑客
-n |
显示行号 |
-o |
只显示关键字,不显示行号 |
-b |
显示前n行,n为数字(before) |
-a |
显示关键字的后n行,n为数字(affer) |
-c |
显示关键字的前后n行,n为数字(center)相当于 -b-a ( -b 1 -a1=-c1显示关键字的前后1行) |
-v |
取反 |
-e |
支持多关键字,中间用|分隔 grep -e=egrep |
-i |
不区分大小写,忽略大小写 |
^ |
以什么开头 ‘^root’ |
$ |
以什么结尾 ‘root$’ |
^$ |
空行 |
^[a-z] |
以a到z开头的 |
. |
代表字符 |
* |
代表所有 |
| |
管道符,将前面命令输出的结果交给后个 ,grep a passwd | grep -v ‘^tss’ |
获取ip地址
[root@oldboyedu ~]# ifconfig #相当于输入ip a 查询 ip地址
[root@gong ~]# ifconfig |awk -f '[ :]+' 'nr==2 {print $3}'
[root@oldboyedu ~]# grep '^root' /etc/passwd #以root为开头
[root@oldboyedu ~]# grep 'bash$' /etc/passwd #以bash为结尾
\#以数字的范围开头
[root@oldboyedu ~]# grep -n '^[0-9]' passwd