/ ,根目录是最顶级的目录了
Linux只有一个顶级目录: /
路径描述的层次关系同样适用 / 来表示
/home/yuyue/a.txt,表示根目录下的home文件夹内有yuyue文件夹, 内有a.txt
功能:列出文件夹信息
语法: ls [-l -h -a] [参数]
参数:被查看的文件夹,不提供参数,表示查看当前工作目录
-l,以列表形式查看
-h,配合-l,以更加人性化的方式显示文件大小
-a,显示隐藏文件
在Linux中以 . 开头的,均是隐藏的。
默认不显示出来,需要 -a 选项才可查看到。
功能:展示当前工作目录
语法: pwd
功能:切换工作目录
语法: cd [目标目录]
参数:目标目录,要切换去的地方,不提供默认切换到 当前登录用户HOME目录
每一个用户在Linux系统中都有自己的专属工作目录,称之为HOME目录。
普通用户的HOME目录,默认在: /home/用户名
root用户的HOME目录,在: /root
FinalShell登陆终端后,默认的工作目录就是用户的HOME目录
相对路径, 非 / 开头的称之为相对路径
相对路径表示以 当前目录 作为起点,去描述路径,如 test/a.txt ,表示当前 工作目录内的test文件夹内的a.txt文件
绝对路径, 以 / 开头的称之为绝对路径
绝对路径从 根 开始描述路径
. ,表示当前,比如./a.txt,表示当前文件夹内的 a.txt 文件
.. ,表示上级目录,比如 ../ 表示上级目录, ../ ../ 表示上级的上级目录
~ ,表示用户的HOME目录,比如 cd ~ ,即可切回用户HOME目录
功能:创建文件夹
语法: mkdir [-p] 参数
参数:被创建文件夹的路径
选项:-p,可选,表示创建前置路径
功能:创建文件
语法: touch 参数
参数:被创建的文件路径
功能:查看文件内容
语法: cat 参数
参数:被查看的文件路径
功能:查看文件,可以支持翻页查看
语法: more 参数
参数:被查看的文件路径
在查看过程中:
空格 键翻页
q 退出查看
功能:复制文件、文件夹
语法: cp [-r] 参数1 参数2
参数1,被复制的 参数2,要复制去的地方
选项:-r,可选,复制文件夹使用
示例:
cp a.txt b.txt,复制当前目录下a.txt为b.txt
cp a.txt test/,复制当前目录a.txt到test文件夹内
cp -r test test2,复制文件夹test到当前文件夹内为test2存在
功能:移动文件、文件夹 语法: mv 参数1 参数2
参数1:被移动的
参数2:要移动去的地方,参数2如果不存在,则会进行改名
功能:删除文件、文件夹
语法: rm [-r -f] 参数 .参数
参数:支持多个,每一个表示被删除的,空格进行分隔
选项:-r,删除文件夹使用
选项:-f,强制删除,不会给出确认提示,一般root用户会用到
rm命令很危险,一定要注意,特别是切换到root用户的时候。
功能:查看命令的程序本体文件路径
语法: which 参数
参数:被查看的命令
功能:搜索文件
语法1按文件名搜索: find 路径 -name 参数
路径,搜索的起始路径
参数,搜索的关键字,支持通配符*, 比如: * test表示搜索任意以test结尾 的文件
功能:过滤关键字
语法: grep [-n] 关键字 文件路径
选项-n,可选,表示在结果中显示匹配的行的行号。
参数,关键字,必填,表示过滤的关键字,带有空格或其它特殊符号,建议使 用””将关键字包围起来
参数,文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口
参数文件路径,可以作为管道符的输入
功能:统计
语法: wc [-c -m -l -w] 文件路径
选项,-c,统计bytes数量
选项,-m,统计字符数量 选项,-l,统计行数 选项,-w,统计单词数量
参数,文件路径,被统计的文件,可作为内容输入端口
参数文件路径,可作为管道符的输入
写法: |
功能:将符号左边的结果,作为符号右边的输入
示例:
cat a.txt | grep yuyue ,将cat a.txt的结果,作为grep命令的输入, 用来过滤 yuyue 关键字
可以支持嵌套:
cat a.txt | grep yuyue | grep itcast
功能:输出内容
语法: echo 参数
参数:被输出的内容
功能:被两个反引号包围的内容,会作为命令执行
示例:
echo `pwd`,会输出当前工作目录
功能:查看文件尾部内容
语法: tail [-f] 参数
参数:被查看的文件
选项:-f,持续跟踪文件修改
功能:查看文件头部内容
语法: head [-n] 参数
参数:被查看的文件
选项:-n,查看的行数
功能:将符号左边的结果,输出到右边指定的文件中去
> ,表示覆盖输出
>> ,表示追加输出
命令的选项
我们学习的一系列Linux命令,它们所拥有的选项都是非常多的。 比如,简单的ls命令就有:-a -A -b -c -C -d -D -f -F -g -G -h -H -i -I -k -l -L -m -n -N -o -p -q -Q -r-R -s -S -t -T -u -U -v -w -x -X -1等选项,可以发现选项是极其多的。
可以通过: 命令 -help 查看命令的帮助手册
可以通过: man 命令 查看某命令的详细手册
CentOS系统使用:
yum [install remove search] [-y] 软件名称
install 安装
remove 卸载
search 搜索
-y,自动确认
Ubuntu系统使用
apt [install remove search] [-y] 软件名称
install 安装
remove 卸载
search 搜索
-y,自动确认
yum 和 apt 均需要root权限
功能:控制系统服务的启动关闭等
语法: systemctl start | stop | restart | disable | enable | status 服务名
start,启动
stop,停止
status,查看状态
disable,关闭开机自启
enable,开启开机自启
restart,重启
功能:创建文件、文件夹软链接(快捷方式)
语法: ln -s 参数1 参数2
参数1:被链接的
参数2:要链接去的地方(快捷方式的名称和存放位置)
语法: date [-d] [+格式化字符串]
-d 按照给定的字符串显示日期,一般用于日期计算
格式化字符串:通过特定的字符串标记,来控制显示的日期格式
%Y 年%y 年份后两位数字 (00 ..99)
%m 月份 (01 ..12)
%d 日 (01 ..31)
%H 小时 (00 ..23)
%M 分钟 (00 ..59)
%S 秒 (00 ..60)
%s 自 1970-01-01 00:00:00 UTC 到现在的秒数
示例:
按照2017-01-01的格式显示日期
date +%Y-%m-%d
2017-10-08
按照2017-01-01 10:00:00的格式显示日期
date "+%Y-%m-%d %H:%M;%S
2017-10-08 00:48:12
-d选项日期计算
date -d "+1 day” +%Y%m%d #显示后一天的日期 date -d "-1 day” +%Y%m%d #显示前一天的日期 date -d "-1 month” +%Y%m%d #显示上一月的日期 date -d "+1 month" +%Y%m%d #显示下一月的日期 date -d "1 year" +%Y%m%d #显示前一年的日期 date -d "+1 year" +%Y%m%d #显示下一年的日期
修改时区为中国时区
rm -f /etc/localtime sudo In -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
功能:同步时间
安装:
yum install -y ntp
启动管理:
systemctl start | stop | restart | status | disable | enable ntpd
手动校准时间:
ntpdate -u ntp.aliyun.com
格式:a.b.c.d
abcd为0~255的数字
特殊IP:
127.0.0.1,表示本机
0.0.0.0,可以表示本机 也可以表示任意IP(看使用场景)
查看ip: ifconfig
主机名 功能:Linux系统的名称
查看:
hostname
设置:
hostnamectl set-hostname 主机名
1. 使用ifconfig查看当前网卡名字
2. 设置Linux内部固定IP
修改文件:/etc/sysconfig/network-scripts/ifcfg-ens33 示例文件内容:
TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="static" # 改为static,固定IP DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens33" UUID="1b0011cb-0d2e-4eaa-8a11-af7d50ebc876" DEVICE="ens33" ONBOOT="yes" IPADDR="192.168.88.131" # IP地址,自己设置,要匹配网络范围 NETMASK="255.255.255.0" # 子网掩码,固定写法255.255.255.0 GATEWAY="192.168.88.2" # 网关,要和VMware中配置的 一致 DNS1="192.168.88.2" # DNS1服务器,和网关一致即可
功能:查看进程信息
语法: ps -ef ,查看全部进程信息,可以搭配grep做过滤: ps -ef | grep xxx
语法: kill [-9] 进程ID
选项:-9,表示强制关闭进程。不使用此选项会向进程发送信号要求其关闭,但是否关闭看进程自身的处理机制
可以通过Linux命令去查看端口的占用情况
使用nmap命令,安装nmap:
yum -y install nmap
语法:nmap 被查看的IP地址
功能:查看端口占用
用法:
netstat -anp | grep xxx
测试网络是否联通
语法: ping [-c num] 参数
选项:-c,检查的次数,不使用-c选项,将无限次数持续检查
参数:ip或主机名,被检查的服务器的ip地址或主机名地址
wget是非交互式的文件下载器,可以在命令行内下载网络文件
语法: wget [-b] url
选项: -b,可选,后台下载,会将日志写入到当前工作目录的wget-log文件
参数: url,下载链接
示例:
下载apache-hadoop 3.3.0版本:
wget http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.qz
在后台下载:
wget -b http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
通过tail命令可以监控后台下载进度:
tail -f wget-log
注意: 无论下载是否完成,都会生成要下载的文件,如果下载未完成,请及时清理未完成的不可用文件。
curl可以发送http网络请求,可用于:下载文件、获取信息等
语法: curl [-O] url
选项:-O,用于下载文件,当url是下载链接时,可以使用此选项保存文件
参数: url,要发起请求的网络地址
示例:
向cip.cc发起网络请求:
curl cip.cc
向blog.yuyue2017.cn发起网络请求:
curl blog.yuyue2017.cn
通过curl下载hadoop-3.3.0安装包:
curl -O http://archive.apache.org/dist/hadoop/common/hadoop3.3.0/hadoop-3.3.0.tar.gz
功能:查看主机运行状态 语法: top ,查看基础信息
可用选项:
选项 功能 -p 只显示某个进程的信息 -d 设置刷新时间,默认是5s -c 显示产生进程的完整命令,默认是进程名 -n 指定刷新次数,比如 top -n 3,刷新输出3次后退出 -b 以非交互非全屏模式运行,以批次的方式执行top,一般配合-n指定输出几次统计信息,将输出重定向到指b定文件,比如 top -b -n 3 > /tmp/top.tmp -i 不显示任何闲置 (idle) 或无用 (zombie) 的进程 -u 查找特定用户启动的进程
交互式模式中,可用快捷键:
按键 功能 h键 按下h键,会显示帮助画面 c键 按下c键,会显示产生进程的完整命令,等同于-c参数,再次按下c键,变为默认显示 f键 按下f键,可以选择需要展示的项目 M键 按下M键,根据驻留内存大小(RES) 排序 P键 按下P键,根据CPU使用百分比大小进行排序 T键 按下T键,根据时间/累计时间进行排序 E键 按下E键,切换顶部内存显示单位 e键 按下e键,切换进程内存显示单位 l键 按下l键,切换显示平均负载和启动时间信息 i键 按下i键,不显示闲置或无用的进程,等同于-i参数,再次按下,变为默认显示 t键 按下t键,切换显示CPU状态信息 m键 按下m键,切换显示内存信息
查看磁盘占用
语法: df [-h]
选项:-h,以更加人性化的单位显示
查看CPU、磁盘的相关信息
语法:
iostat [-x] [num1] [num2]
选项:-X,显示更多信息
num1: 数字,刷新间隔,num2: 数字,刷新几次
tps: 该设备每秒的传输次数 。“一次传输”意思是“一次I/O请求”。多个逻辑请求可能会被合并为“一次I/O请求”。“一次传输”请求的大小是未知的。
使用iostat的-x选项,可以显示更多信息
rrqm/s: 每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候FS将请求发到各个F5如果FS发现不同的读取请求演取的是相同Block的数据,F5会将这个请求合井Merge,提高10利用率,避免重复调用);
wrqm/s: 每秒这个设备相关的写入请求有多少被Merge了。
rsec/s: 每秒读取的扇区数; sectors
wsec/s: 每秒写入的扇区数。
rKB/s: 每秒发送到设备的读取请求数
WKB/s: 每秒发送到设备的写入请求数
avgrq-sz 平均请求扇区的大小
avgqu-sz 平均请求队列的长度。毫无疑问,队列长度越短越好
await: 每一个i0请求的处理的平均时间 (单位是微秒毫秒)。
Svctm 表示平均每次设备1/0操作的服务时间(以毫秒为单位)
%util: 磁盘利用率
查看网络统计
语法:
sar -n DEV num1 num2
选项:-n,查看网络,DEV表示查看网络接口
num1:刷新间隔(不填就查看一次结束),num2:查看次数(不填无限次数)
临时设置:export 变量名=变量值
永久设置:
针对用户,设置用户HOME目录内: .bashrc 文件
针对全局,设置 /etc/profile
记录了执行程序的搜索路径
可以将自定义路径加入PATH内,实现自定义命令在任意地方均可执行的效果
可以取出指定的环境变量的值
语法: $变量名
示例:
echo $PATH ,输出PATH环境变量的值
echo ${PATH}ABC ,输出PATH环境变量的值以及ABC
如果变量名和其它内容混淆在一起,可以使用${}
tar -zcvf 压缩包 被压缩1 .被压缩2 .被压缩N
-z表示使用gzip,可以不写
zip [-r] 参数1 参数2 参数N
-r,被压缩的包含文件夹的时候,需要使用-r选项,和rm、cp等命令的-r效果一致
示例:
zip test.zip a.txt b.txt c.txt
将a.txt b.txt c.txt压缩到test.zip文件内
zip -r test.zip test yuyue a.txt
将test、yuyue两个文件夹和a.txt文件,压缩到test.zip文件内
tar -zxvf 被解压的文件 -C 要解压去的地方
-z表示使用gzip,可以省略
-C,可以省略,指定要解压去的地方,不写解压到当前目录
unzip [-d] 参数
语法:
unzip [-d] 参数
-d,指定要解压去的位置,同tar-C选项
参数,被解压的zip压缩包文件
示例:
unzip test.zip
,将test.zip解压到当前目录
unzip test.zip -d /home/yuyue
,将test.zip解压到指定文件夹内(/home/yuyue)
切换用户
语法: su [-] [用户]
- 表示切换后加载环境变量,建议带上
用户可以省略,省略默认切换到root
比如:
yuyue ALL=(ALL) NOPASSWD: ALL
在visudo内配置如上内容,可以让yuyue用户,无需密码直接使用 sudo
可以让一条普通命令带有root权限,
语法: sudo 其它命令需要以root用户执行visudo命令,增加配置方可让普通用户有sudo命令的执行权限
修改文件、文件夹权限
语法:
chmod [-R] 权限 参数
权限,要设置的权限,比如755,表示: rwxr-xr-x
参数,被修改的文件、文件夹
选项-R,设置文件夹和其内部全部内容一样生效
0: 无任何权限 即 - - - 1: 仅有x权限 即 - - X 2: 仅有w权限 即 - W - 3: 有w和x权限 即 - W X 4: 仅有r权限 即 r - - 5: 有r和x权限 即 r - x 6: 有r和w权限 即 r w - 7: 有全部权限 即 r w x
修改文件、文件夹所属用户、组
语法:
chown [-R] [用户]:[用户组] 文件或文件夹
选项,-R,同chmod,对文件夹内全部内容应用相同规则选项,用户,修改所属用户
选项,用户组,修改所属用户组
:用于分隔用户和用户组
示例:
chown root hello.txt 将hello.txt所属用户修改为root chown :root hello.txt 将hello.txt所属用户组修改为root chown root:yuyue hello.txt 将hello.txt所属用户修改为root,用户组修改为yuyue chown -R root test 将文件夹test的所属用户修改为root并对文件夹内全部内容应用同样规则
以下命令需root用户执行
创建用户组
groupadd 用户组名
删除用户组
groupdel 用户组名
以下命令需root用户执行
创建用户
useradd [-g -d] 用户名
选项:-g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
选项:-d指定用户HOME路径,不指定,HOME目录默认在: /home/用户名
删除用户
userdel [-r] 用户名
· 选项:-r,删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留
查看用户所属组
id [用户名]
参数:用户名,被查看的用户,如果不提供则查看自身
修改用户所属组
usermod -aG 用户组 用户名 将指定用户加入指定用户组
getent group
查看系统全部的用户组
getent passwd
查看系统全部的用户
查看系统全部的环境变量
语法:
env