Hadoop学习笔记(三):Linux常用命令

 引言:本文旨在记录本人学习Hadoop时的笔记心得

基础命令

Linux文件系统基础知识

Linux文件系统概念

  • 操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统
  • 文件系统的结构通常叫做目录树结构,从“斜杠/根目录”开始
  • Linux号称“万物皆文件”,意味着针对Linux的操作,大多数时间是在针对Linux文件系统操作
目录树结构示意图

文件系统通用特性

  • 几乎主流的文件系统都是从“/根目录”开始的,而Windows文件系统会以盘符来区分不同的文件系统
  • 目录树中节点分为两个种类:目录(dictionary)文件(file)
  • 从根目录开始,路径具有唯一性,即想要到达某文件,有且仅有一条路径
  • 只有在目录下才可以继续创建下一级目录,在文件处停止蔓延

易混概念

  • 当前路径:也叫当前工作目录,是当下用户所处的位置
  • 相对路径:相对当前工作目录开始的路径,会随当前路径变化而变化
  • 绝对路径:不管工作目录在哪,绝对路径都是从/根目录开始的,具有唯一性

举个例子: 我在根目录下进入/bacon目录,此时/bacon就是当前工作目录,即当前路径。我访问该目录下次一级目录/fizz内的文件spam.txt,此时我的相对路径就是 ./fizz/spam.txt,相应的当前路径变为/fizz,而我的绝对路径/bacon/fizz/spam.txt

特殊符号

  • .  —目录或文件名字以.开始表示是隐藏的文件,如果路径以.开始表示当前路径

  • .. 当前目录的上一级目录

  • ~ —当前用户的Home目录,比如root用户的Home目录是/root

  • 根目录

# 进入当前目录下的a
cd ./a
# 进入根目录下的a
cd /a
# 进入当前目录上一级下的a
cd ../a
# 进入当前操作用户Home目录下的a
cd ~/a
# 进入当前目录下的a a是隐藏的
cd .a

Linux命令帮助手册

  • help
[root@node1 ~]# ls --help
用法:ls [选项]... [文件]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.

Mandatory arguments to long options are mandatory for short options too.
  -a, --all                     不隐藏任何以. 开始的项目
  -A, --almost-all              列出除. 及.. 以外的任何项目
      --author                  与-l 同时使用时列出每个文件的作者
……
  • man

Linux常用操作命令 

显示目录内容:

  • ls(list files):用于显示指定工作目录下的内容(列出当前工作目录所含文件及子目录)
    • -a 显示所有文件及目录
    • -l  除文件名称外,也详细列出文件型态、权限、拥有者、文件大小等信息

注:ls -l 等价于 ll

ls path
ls -a path    # 查看所有文件,包括隐藏文件
ls -l = ll    # 查看文件详细信息,包括权限、类型、时间、大小等
ll -h path    # 表示以人性化的显示内容
ll *          # *通配符表示任意字符,?表示有且只有一个字符

切换目录:

  • cd(change directory):用于切换当前工作目录,切换路径可以是绝对路径或相对路径。若路径省略,则切换至Home目录
    • 表示为Home目录
    • .   表示当前所在目录
    • ..  表示当前目录上一级目录
pwd        # 查看自己当前所在目录

cd path    # 注意路径是相对路径还是绝对路径
cd /path   # 访问Home目录下的path目录
cd ./path  # 访问当前目录的下一级目录path
cd ../path # 访问当前目录上一级的子目录path
cd ~       # 访问根目录

创建与删除:

  • mkdir(make directory):创建目录
    • -p 确保父目录名称存在,不存在就创建一个
  • touch:创建一个空文件
  • rm(remove):删除文件或目录
    • -f 强制删除,无需确认
    • -r 将目录及以下所有递归逐一删除
mkdir /a/b/c    # 创建一串目录,会失败,因为不存在父目录/a
mkdir ./a       # 在当前目录下创建目录/a
mkdir -p /a/b/c # 在Home目录创建一串目录/a/b/c

rm -rf /a/b/c   # 快速删除Home目录中的/a/b/c
rm -rf ./a      # 快速删除当前目录下的/a
rm -rf /*       # 全删了,等坐牢吧

复制与移动:

  • cp(copy file):复制文件或目录
    • -r 若给出的源文件是一个目录文件,此时将复制该目录下所有子目录和文件
  • mv(move file):为文件或目录改名,或将文件或目录移动到其他位置
cp [options] source... directory


mv source_file(文件) dest_file(文件)     
# 将源文件名source_file 改为目标文件名dest_file

mv source_file(文件) dest_directory(目录) 
# 将文件source_file 移动到目标目录dest_directory中

mv source_directory(目录) dest_directory(目录) 
# 目录名dest_directory 已存在:将source_directory 移动到目录名dest_directory 中
# 目录名dest_directory 不存在:source_directory 改名为目录名dest_directory

mv source_directory(目录) dest_file(文件) 
# 会报错

文件内容查看:

  • cat(concatenate):连接文件并打印到标准输出设备如console控制台上,适合小文件
  • more:类似cat,但会一页一页地展示,翻页结束自动退出,适合大文件
  • tail:查看文件结尾部分
    • -n 用于设置显示行数,默认为10,即显示十行内容
    • -f  用于实时显示文件动态追加的内容。只要文件有更新就可以看到最新的文件内容

文件内容修改与生成:

  • 管道命令:将前一个命令执行的结果作为内容传递给下一个命令,可以形成多级管道
  • echo:将内容输出到console控制台上,相当于print
  • > 输出重定向(覆盖):command > file 意思是执行command然后将输出的内容存入file中,若file中已经存在内容,则会被新内容覆盖。若不存在file则新建一个file并将输出内容存入其中
  • >> 输出重定向(追加):command >> file 与 command > file不同之处在于,新内容会追加在file文件的末尾而不是覆盖
echo 111             # 输出111
echo "Hello World"   # 输出Hello World,注意不带引号
echo Hello World     # 同样输出Hello World,也不带引号

echo 111 > 4.txt     # 将111覆盖4.txt的内容
cat 4.txt            # 读取4.txt的内容并展示到console控制台上,为111

echo 222 >> 4.txt    # 将222追加到4.txt末尾
cat 4.txt            # 输出为111 222,注意在console上是换行展示的

解压缩命令:

  • 打包、解包:
    • tar(tape archive):常用于备份文件。是用来建立,还原备份文件的工具程序,可以加入、解开备份文件内的文件
      • ​​​​​​​-c 或 --create:建立新的备份文件
      • -x 或 --extract 或 --get:从备份文件中还原文件
      • -v 或 --verbose:显示指令执行过程
      • -f <备份文件> 或 --file=<备份文件>:指定备份文件
# 打包
tar -cvf test.tar 1.txt 2.txt    # 格式为:tar -cvf 打包名.tar 文件或目录

# 解包
tar -xvf test.tar                # 格式为:tar -xvf 打包名.tar (-C 指定解包目录)
  • 打包压缩、解包解压缩:在打包备份或者解包的过程中,可以通过指定压缩算法,对打包的文件进行压缩,解压的时候也需要指定相应的算法
    • ​​​​​​​-z 或 --gzip 或 --ungzip:通过gzip指令处理备份文件
    • 重要的搭配:tar -zxvf xxxxxx.tar.gz
# 打包
tar -zcvf test.tar.gz 1.txt 2.txt            # 指定压缩算法进行压缩
tar -zcvf test.tgz 1.txt 2.txt  

# 解包
tar -zxvf test.tar.gz                        # 指定解压算法进行解压
tar -zxcf test.tgz -C /root/                 # 设定解压到指定目录             

系统命令

时间、日期查看

  • date:显示或设定系统的日期与时间,可以指定显示格式
date +"%Y-%m-%d %H:%M:%S"    # 要注意大小写的区别以及"+"后不接" "

更详细的显示格式如下:

%%    一个文字的 %
%a    当前locale 的星期名缩写(例如: 日,代表星期日)
%A    当前locale 的星期名全称 (如:星期日)
%b    当前locale 的月名缩写 (如:一,代表一月)
%B    当前locale 的月名全称 (如:一月)
%c    当前locale 的日期和时间 (如:2005年3月3日 星期四 23:05:25)
%C    世纪;比如 %Y,通常为省略当前年份的后两位数字(例如:20)
%d    按月计的日期(例如:01)
%D    按月计的日期;等于%m/%d/%y
%e    按月计的日期,添加空格,等于%_d
%F    完整日期格式,等价于 %Y-%m-%d
%g    ISO-8601 格式年份的最后两位 (参见%G)
%G    ISO-8601 格式年份 (参见%V),一般只和 %V 结合使用
%h    等于%b
%H    小时(00-23)
%I    小时(00-12)
%j    按年计的日期(001-366)
%k    hour, space padded ( 0..23); same as %_H
%l    hour, space padded ( 1..12); same as %_I
%m    month (01..12)
%M    minute (00..59)
%n    换行
%N    纳秒(000000000-999999999)
%p    当前locale 下的"上午"或者"下午",未知时输出为空
%P    与%p 类似,但是输出小写字母
%r    当前locale 下的 12 小时时钟时间 (如:11:11:04 下午)
%R    24 小时时间的时和分,等价于 %H:%M
%s    自UTC 时间 1970-01-01 00:00:00 以来所经过的秒数
%S    秒(00-60)
%t    输出制表符 Tab
%T    时间,等于%H:%M:%S
%u    星期,1 代表星期一
%U    一年中的第几周,以周日为每星期第一天(00-53)
%V    ISO-8601 格式规范下的一年中第几周,以周一为每星期第一天(01-53)
%w    一星期中的第几日(0-6),0 代表周一
%W    一年中的第几周,以周一为每星期第一天(00-53)
%x    当前locale 下的日期描述 (如:12/31/99)
%X    当前locale 下的时间描述 (如:23:13:48)
%y    年份最后两位数位 (00-99)
%Y    年份
%z +hhmm              数字时区(例如,-0400)
%:z +hh:mm            数字时区(例如,-04:00)
%::z +hh:mm:ss        数字时区(例如,-04:00:00)
%:::z                 数字时区带有必要的精度 (例如,-04,+05:30)
%Z                    按字母表排序的时区缩写 (例如,EDT)
  • cal(calendar):用于显示当前或指定日期的公历
cal 27 6 3000        # 显示3000年6月27日这个月的日历

输出为:

     六月 3000     
日 一 二 三 四 五 六
 1  2  3  4  5  6  7
 8  9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

cal -y 2030          # 显示2030年全年的日历

输出为:

                              2030                               

        一月                   二月                   三月        
日 一 二 三 四 五 六   日 一 二 三 四 五 六   日 一 二 三 四 五 六
       1  2  3  4  5                   1  2                   1  2
 6  7  8  9 10 11 12    3  4  5  6  7  8  9    3  4  5  6  7  8  9
13 14 15 16 17 18 19   10 11 12 13 14 15 16   10 11 12 13 14 15 16
20 21 22 23 24 25 26   17 18 19 20 21 22 23   17 18 19 20 21 22 23
27 28 29 30 31         24 25 26 27 28         24 25 26 27 28 29 30
                                              31
        四月                   五月                   六月        
日 一 二 三 四 五 六   日 一 二 三 四 五 六   日 一 二 三 四 五 六
    1  2  3  4  5  6             1  2  3  4                      1
 7  8  9 10 11 12 13    5  6  7  8  9 10 11    2  3  4  5  6  7  8
14 15 16 17 18 19 20   12 13 14 15 16 17 18    9 10 11 12 13 14 15
21 22 23 24 25 26 27   19 20 21 22 23 24 25   16 17 18 19 20 21 22
28 29 30               26 27 28 29 30 31      23 24 25 26 27 28 29
                                              30
        七月                   八月                   九月        
日 一 二 三 四 五 六   日 一 二 三 四 五 六   日 一 二 三 四 五 六
    1  2  3  4  5  6                1  2  3    1  2  3  4  5  6  7
 7  8  9 10 11 12 13    4  5  6  7  8  9 10    8  9 10 11 12 13 14
14 15 16 17 18 19 20   11 12 13 14 15 16 17   15 16 17 18 19 20 21
21 22 23 24 25 26 27   18 19 20 21 22 23 24   22 23 24 25 26 27 28
28 29 30 31            25 26 27 28 29 30 31   29 30

        十月                  十一月                 十二月       
日 一 二 三 四 五 六   日 一 二 三 四 五 六   日 一 二 三 四 五 六
       1  2  3  4  5                   1  2    1  2  3  4  5  6  7
 6  7  8  9 10 11 12    3  4  5  6  7  8  9    8  9 10 11 12 13 14
13 14 15 16 17 18 19   10 11 12 13 14 15 16   15 16 17 18 19 20 21
20 21 22 23 24 25 26   17 18 19 20 21 22 23   22 23 24 25 26 27 28
27 28 29 30 31         24 25 26 27 28 29 30   29 30 31

内存、磁盘使用率查看

  • free:显示内存状态。包括使用情况,如实体内存,虚拟的交换文件内存,共享内存区段,还包括系统核心使用的缓存区等
  • df(disk free):显示目前在Linux系统上的文件系统磁盘使用情况统计

进程查看

  • ps(process status):显示当前进程的状态,类似于Windows的任务管理器
  • jps:JDK自带命令,查看本机运行的java进程情况(需安装JDK)
ps -ef | grep 进程名    # 查看本机运行的所有进程
# 通常根据查询到的进程号,结合 kill -9 进程号 来杀死进程
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值