1 系统信息
date
:显示系统日期date 091816152022.00
:设置时间 月日时分年.秒
2 关机
shutdown -h now
:立即关机shutdown -r now
:立即重启reboot
:重启shutdown -h hours:minutes
:在时间为hours:minutes时关机
3 目录
cd ..
:切换到上一级目录cd -
:切换到上次操作所在目录cd ~
:切换到用户主目录cd /
:切换到系统根目录pwd
:显示当前所在目录mkdir 目录名
:增加目录rmdir 目录名
:删除空目录- 非空目录使用rm
rm -rf 目录名
:强制删除该目录下的所有文件- -r:递归删除目录及其内容
ls
:查看该目录下的文件ls -l
:查看该目录下的目录和文件的详细信息ls -a
:显示隐藏文件mv 目录名 新目录名
:重命名一个目录mv 目录名 目录新位置
:移动目录位置cp –r 目录名 目录复制的目标位置
: 复制目录下的文件到新目录- -r:递归复制文件和目录,使用该指令复制目录时必须使用参数-r或者-R
- -r:递归复制文件和目录,使用该指令复制目录时必须使用参数-r或者-R
4 文件
4.1 权限
文件类型
- d:代表目录
- -:代表文件
- l:代表软链接(可以认为是window中的快捷方式)
Linux中的权限
- r:代表权限是可读,也可以用数字4表示
- w:代表权限是可写,也可以用数字2表示
- x:代表权限是可执行,也可以用数字1表示
文件和目录权限的区别
对于文件
权限名称 | 可执行操作 |
---|---|
r | 可以使用cat查看文件的内容 |
w | 可以修改文件的内容 |
x | 可以将其运行为二进制文件 |
对于目录
权限名称 | 可执行操作 |
---|---|
r | 可以查看目录下列表 |
w | 可以创建和删除目录下文件 |
x | 可以使用cd进入目录 |
Linux中每个用户都必须属于一个组,不能独立于组外。
Linux中每个文件都有所有者(属主owner)、所在组(属组group)、其它组(其他用户other)的概念。
- 所有者(u) :一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者,用
ls ‐ahl
命令可以看到文件的所有者,用chown 用户名 文件名
命令可以修改文件的所有者 - 文件所在组(g) :当某个用户创建了一个文件后,该用户所在的组就是这个文件的所在组。用
ls ‐ahl
命令可以看到文件的所有组,用chgrp 组名 文件名
命令可以修改文件的所在组 - 其它组(o) :除文件的所有者和所在组的用户之外,系统的其它用户都是文件的其它组
举例:在某个目录下ls -l
则第一列的信息表示
4.2 命令
-
chmod 权限 目录名/文件名
:修改文件/目录的权限- 运算符:
- -:删除权限
- +:添加权限
- =:赋值权限
- chmod ugo+rwx directory1:设置目录的所有人(u)、群组(g)以及其他人(o)有读(r )、写(w)和执行(x)的权限
- chmod u+x 文件名:给文件的所有者添加执行权限
- chmod o-rwx 文件名:给文件的其他人删除所有权限
- chmod g=wx 文件名:给文件的所属组设置读写权限
- chmod go-rwx directory1:删除群组(g)与其他人(o)对目录的读、写、执行的权限
- 修改aaa.txt的权限为文件所有者有全部权限,文件所有者所在的组有读写权限,其他用户只有读的权限
- chmod u=rwx,g=rw,o=r aaa.txt
- 或chmod 764 aaa.txt(7=4+2+1,6=4+2,4=4)
- 运算符:
-
find 目录 条件
:在该目录下查找符合条件的文件- 列出当前目录及子目录下所有文件和文件夹
- find .
- 在/home目录下查找所有以.txt为结尾的文件
- find /home -name "*.txt"
- -iname:忽略大小写
- 在当前目录及子目录下查找所有以.txt和.pdf为结尾的文件
- find . ( -name ".txt" -o -name ".pdf" )
- 或find . -name ".txt" -o -name ".pdf"
- 列出当前目录及子目录下所有文件和文件夹
-
touch 文件名
:创建新的空白文件
-
touch -c -t 09181703 文件名
:修改文件的时间戳- 修改时间戳为9月18号17:03
- -c:不创建新文件
- -d:设定时间,可以使用各种不同的格式
- -t:设定时间,格式与date命令相同
-
cat/more/less/tail 文件名
:查看文件-
cat 文件名:从第一个字节开始正向查看文件的内容
- -n:显示行数(空行也编号)
- -s:显示行数(多个空行算一个编号)
- -b:显示行数(空行不编号)
-
tac 文件名:从最后一行开始反向查看一个文件的内容
-
more 文件名:查看一个长文件的内容
-
less 文件名:类似于more命令,但是它允许在文件中和正向操作一样的反向操作
-
head -2 文件名:查看一个文件的前两行
-
tail -2 文件名/tail -n 2 文件名:查看一个文件的最后两行
- tail默认在标准输出上显示指定文件的最后10行内容,使用
tail -n N 文件名
可以指定显示文件的最后N行内容
- tail默认在标准输出上显示指定文件的最后10行内容,使用
-
tail -f 文件名:对某个文件进行动态监控
-
-
vim 文件名
:修改文件内容- 步骤:vim 文件名----->进入文件----->按i进入编辑模式---->编辑文件 ----->按Esc进入底行模式---->输入:wq/q! (输入wq代表写入内容并退出,即保存;输入q!代表强制退出不保存)
-
rm -f 文件名
:删除文件 -
tar -zcvf 打包压缩后的文件名 要打包压缩的文件名
:打包并压缩文件- Linux中的打包文件一般是以.tar结尾,压缩文件一般是以.gz结尾。一般情况下打包和压缩一起进行,打包并压缩后的文件的后缀名一般为.tar.gz
- -z:调用gzip压缩命令进行压缩
- bunzip2 file1.bz2:解压一个叫做file1.bz2的文件
- bzip2 file1:压缩一个叫做file1的文件
- gunzip file1.gz:解压一个叫做file1.gz的文件
- gzip file1:压缩一个叫做file1的文件
- -c:打包文件
- -v:显示运行过程
- -f:指定文件名
- test目录下有三个文件:aaa.txt bbb.txt ccc.txt,要打包test目录并指定压缩后的压缩包名称为test.tar.gz,使用命令
tar -zcvf test.tar.gz aaa.txt bbb.txt ccc.txt
或tar -zcvf test.tar.gz /test/
-
tar [-xvf] 压缩文件名
:解压缩文件- -x:解压
- 将/test下的test.tar.gz解压到当前目录下,使用命令
tar -xvf test.tar.gz
- 将/test下的 test.tar.gz解压到根目录/usr下,使用命令
tar -xvf test.tar.gz -C /usr
(-C:指定解压位置)
5 网络通信
-
ifconfig
:查看当前系统的网卡信息 -
ping
:查看与某台机器的连接情况 -
netstat
:查看本机各端口的网络连接情况
- -a:显示所有的网络连接和监听端口信息
- -c:持续列出网络状态
- -l:显示监控中的服务器的SOCKET
- -n:直接打印连接的IP地址与端口信息
- -r:显示路由表(跟route print命令一样)
- -s:显示每个协议的统计数据(默认情况下统计如下协议:IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP和UDPv6)
- -p:显示与连接有关的程序名和进程的PID
- -t:显示TCP传输协议的连线状况
- -u:显示UDP传输协议的连线状况
netstat -a
:列出所有端口,包括监听的和未监听的
[root@VM-16-9-centos ~]# netstat -a
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp 0 0 VM-16-9-centos:49326 169.254.0.55:lsi-bobcat ESTABLISHED
tcp 0 52 VM-16-9-centos:ssh 119.137.1.7:20029 ESTABLISHED
tcp 0 0 VM-16-9-centos:ssh 113.110.224.255:63626 ESTABLISHED
udp 0 0 0.0.0.0:bootpc 0.0.0.0:*
udp 0 0 VM-16-9-centos:ntp 0.0.0.0:*
udp 0 0 VM-16-9-centos:ntp 0.0.0.0:*
udp 0 0 0.0.0.0:38064 0.0.0.0:*
udp6 0 0 VM-16-9-centos:ntp [::]:*
udp6 0 0 VM-16-9-centos:ntp [::]:*
* `netstat -an`:列出所有端口,并直接显示ip和端口
[root@VM-16-9-centos ~]# netstat -an
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 172.17.16.9:49326 169.254.0.55:5574 ESTABLISHED
tcp 0 52 172.17.16.9:22 119.137.1.7:20029 ESTABLISHED
tcp 0 0 172.17.16.9:22 113.110.224.255:63626 ESTABLISHED
tcp 0 0 172.17.16.9:52236 169.254.0.4:80 TIME_WAIT
* `netstat -at`:列出所有TCP端口
* `netstat -au`:列出所有UDP端口
* `netstat -l`:列出所有处于监听状态的端口
* `netstat -lt`:显示监听TCP端口
* `netstat -lu`:显示监听UDP端口
* `netstat -s`:显示所有端口的统计信息
* `netstat -p`:显示PID和进程名称
* `netstat -c`:每隔一秒输出网络信息
* `netstat -antp | grep 程序名`**:找出程序运行的TCP端口和相关进程**
* `grep 要搜索的字符串 要搜索的文件 --color`:搜索命令(--color:高亮显示)
[root@node1 ~]# netstat -antp | grep ssh
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 734/sshd
tcp 0 52 192.168.130.20:22 119.129.118.189:58737 ESTABLISHED 1846/sshd: root@pts
tcp6 0 0 :::22 :::* LISTEN 734/sshd
```plain
* `netstat -antp | grep 端口号`**:找出运行在指定TCP端口的进程**
```plain
[root@node1 ~]# netstat -antp | grep 22
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 734/sshd
tcp 0 52 192.168.130.20:22 119.129.118.189:58737 ESTABLISHED 1846/sshd: root@pts
tcp6 0 0 :::22 :::* LISTEN 734/sshd
6 进程
ps -ef/ps aux
:查看当前系统正在运行的全部进程,两者的区别是展示格式不同- a:显示所有运行进程,包括其他用户的进程
- u:显示所有用户的所有进程
- x:显示没有终端的进程
- -e:效果和指定a参数相同
- -f:用ASCII字符显示树状结构,表达进程间的相互关系
- ps命令通常结合grep命令查看某进程的状态
[root@hadoop101 datas] ps aux
[root@hadoop101 datas] ps -ef
kill -9 [PID]
:杀死进程(-9:强制终止)top
:默认按照CPU的占用情况,实时显示占用量较大的进程- -d 秒数:指定top命令每隔几秒更新(默认3秒)
- -i:不显示任何闲置或者僵死进程
- -p [PID]:查看指定的进程ID信息
- -u 用户名:只监听某个用户的进程
mpstat -P ALL/sar -P ALL
:查看多核CPU(https://www.cnblogs.com/niuben/p/12017242.html)
7 环境变量
7.1 分类
- 按作用域来分,环境变量分成:
- 用户级别环境变量: ~/.bashrc、 ~/.bash_profile
- 系统级别环境变量:/etc/bashrc、/etc/environment、/etc/profile、/etc/profile.d
上述配置文件执行先后顺序为:/etc/enviroment –> /etc/profile –> /etc/profile.d –> ~/.bash_profile –> /etc/bashrc –> ~/.bashrc。
建议用户级别环境变量在~/.bash_profile中配置,系统级别环境变量在 /etc/profile.d中配置
- 按生命周期来分,环境变量分成:
- 永久的:需要用户修改相关的配置文件,变量永久生效
- 临时的:用户利用export命令,在当前终端下声明环境变量,关闭 shell终端失效
7.2 命令
export
:列出环境变量- -p:列出当前所有的环境变量
echo
:输出指定环境变量的值- echo $PATH:输出当前的PATH环境变量的值
- echo $HOME:输出当前的HOME环境变量的值
- -n:不输出结尾的换行符
- -e:允许对下面列出的加反斜线转义的字符进行解释
- -e“\a”:发出警告音
- -e“\b”:删除前面的一个字符
- echo -e "123\b456"
- 12456
- -e“\c”:结尾不加换行符
- -e“\f”:换行,光标仍停留在原来的坐标位置
- -e“\n”:换行,光标移至行首
- echo -e "a\nb\nc"
- a
- b
- c
- -e“\r”:光标移至行首,但不换行
- -E:禁止反斜线转义,与-e参数功能相反