Linux指令_杨小明
基础指令语法
1.ls指令
用法1:#ls含义:列出当前工作目录下的所有文件/文件夹的名称
用法2:#ls路径含义:列出指定路径下的所有文件/文件夹的名称关于路径(重要):路径可以分为两种:相对路径、绝对路径。相对路径:相对首先得有一个参照物(一般就是当前的工作路径);相对路径的写法:在相对路径中通常会用到2个符号“./”【表示当前目录下】、“../”【上一级目录下】。绝对路径:绝对路径不需要参照物,直接从根“/”开始寻找对应路径;
用法3:#ls选项路径含义:在列出指定路径下的文件/文件夹的名称,并以指定的格式进行显示。常见的语法:#ls-l路径#ls-la路径选项解释:-l:表示list,表示以详细列表的形式进行展示-a:表示显示所有的文件/文件夹(包含了隐藏文件/文件夹)
上述列表中的第一列字符表示文档的类型,其中“-”表示改行对应的文档类型为文件,“d”表示文档类型为文件夹。
在Linux中隐藏文档一般都是以“.”开头。
用法4:#ls-lh路径含义:列出指定路径下的所有文件/文件夹的名称,以列表的形式并且在显示文档大小的时候以可读性较高的形式显示
2.pwd指令用法:
#pwd(printworkingdirectory,打印当前工作目录)
3、cd指令命令:
#cd(changedirectory,改变目录)作用:用于切换当前的工作目录的语法:
补充:在Linux中有一个特殊的符号“~”,表示当前用户的家目录。切换的方式:#cd~
4、mkdir指令指令:
mkdir(makedirectory,创建目录)
5、 touch指令指令:
touch作用:创建文件语法:#touch文件路径【路径可以是直接的文件名也可以是路径】
案例:使用touch来在当前路径下创建一个文件,命名为Linux.txt
6、cp指令指令:
cp(copy,复制)作用:
复制文件/文件夹到指定的位置语法:
#cp被复制的文档路径文档被复制到的路径
7、mv指令指令:
mv(move,移动,剪切)作用:移动文档到新的位置语法:
#mv需要移动的文档路径需要保存的位置路径确认:
移动之后原始的文件还在不在原来的位置?原始文件是不在原始位置的
8、rm指令指令:
rm(remove,移除、删除)作用:
移除/删除文档语法:
#rm选项需要移除的文档路径选项:
-f:force,强制删除,不提示是否删除
-r:表示递归案例:删除一个文件
9、vim指令指令:
vim(vim是一款文本编辑器)语法:
#vim文件的路径作用:打开一个文件(可以不存在,也可以存在)
10、输出重定向
一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,则这时候需要使用到的输出重定向技术。
>:覆盖输出,会覆盖掉原先的文件内容
>>:追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加
语法:#正常执行的指令>/>>文件的路径
注意:文件可以不存在,不存在则新建
11、cat指令
作用1:cat有直接打开一个文件的功能。
语法1:#cat文件的路径
中级指令语法
1、df指令作用:
查看磁盘的空间语法:#df-h-h表示以可读性较高的形式展示大小
2、free指令作用:
查看内存使用情况语法:#free-m-m表示以mb为单位查看
3、head指令作用:
查看一个文件的前n行,如果不指定n,则默认显示前10行。
语法:#head-n文件路径【n表示数字】
4、tail指令
作用1:查看一个文件的未n行,如果n不指定默认显示后10行语法:#tail-n文件的路径n同样表示数字
5、less指令
作用:查看文件,以较少的内容进行输出,按下辅助功能键(数字+回车、空格键+上下方向键)查看更多语法:#less需要查看的文件路径在退出的只需要按下q键即可。
6、wc指令
作用:统计文件内容信息(包含行数、单词数、字节数)
语法:#wc-lwc需要统计的文件路径
-l:表示lines,行数
-w:表示words,单词数依照空格来判断单词数量
-c:表示bytes,字节数
7、date指令
(重点)作用:
表示操作时间日期(读取、设置)
语法1:#date输出的形式:2018年3月24日星期六15:54:28
语法2:#date+%F(等价于#date“+%Y-%m-%d”)
输出形式:2018-03-24
语法3:#date“+%F%T”引号表示让“年月日与时分秒”成为一个不可分割的整体等价操作#date“+%Y-%m-%d%H:%M:%S”输出的形式:2018-03-2416:01:00
语法4:获取之前或者之后的某个时间(备份)#date-d“-1day”“+%Y-%m-%d%H:%M:%S”
符号的可选值:+(之后)或者-(之前)
单位的可选值:day(天)、month(月份)、year(年)
%F:表示完整的年月日
%T:表示完整的时分秒
%Y:表示四位年份
%m:表示两位月份(带前导0)
%d:表示日期(带前导0)
%H:表示小时(带前导0)
%M:表示分钟(带前导0)
%S:表示秒数(带前导0)
8、cal指令
作用:用来操作日历的
语法1:#cal等价于#cal-1直接输出当前月份的日历
语法2:#cal-3表示输出上一个月+本月+下个月的日历
语法3:#cal-y年份表示输出某一个年份的日历
9、clear/ctrl+L指令
作用:清除终端中已经存在的命令和结果(信息)。
语法:clear或者快捷键:ctrl+L需要注意的是,该命令并不是真的清除了之前的信息,而是把之前的信息的隐藏到了最上面,通过滚动条继续查看以前的信息
10、管道(重要)
管道符:|作用:管道一般可以用于“过滤”,“特殊”,“扩展处理”。
语法:管道不能单独使用,必须需要配合前面所讲的一些指令来一起使用,其作用主要是辅助作用。
①过滤案例(100%使用):需要通过管道查询出根目录下包含“y”字母的文档名称。#ls/|grepy针对上面这个命令说明:
①以管道作为分界线,前面的命令有个输出,后面需要先输入,然后再过滤,最后再输出,通俗的讲就是管道前面的输出就是后面指令的输入;
②grep指令:主要用于过滤②特殊用法案例:通过管道的操作方法来实现less的等价效果(了解)之前通过less查看一个文件,可以#less路径现在通过管道还可以这么:#cat路径|less
③扩展处理:请使用学过的命令,来统计某个目录下的文档的总个数?
答:#ls/|wc-l
高级指令
1、hostname指令
作用:操作服务器的主机名(读取、设置)
语法1:#hostname含义:表示输出完整的主机名
语法2:#hostname-f含义:表示输出当前主机名中的FQDN(全限定域名)
2、id指令
作用:查看一个用户的一些基本信息(包含用户id,用户组id,附加组id...),该指令如果不指定用户则默认当前用户。
语法1:#id默认显示当前执行该命令的用户的基本信息
语法2:#id用户名显示指定用户的基本信息
3、whoami指令
作用:“我是谁?”显示当前登录的用户名,一般用于shell脚本,用于获取当前操作的用
户名方便记录日志。
4、ps-ef指令(重点)
指令:ps作用:主要是查看服务器的进程信息选项
含义:-e:等价于“-A”,表示列出全部的进程
-f:显示 全部的列(显示全字段)
执行结果:
5、top指令(重点)
作用:查看服务器的进程占的资源(100%使用)
语法:进入命令:#top(动态显示)退出命令:按下q键
6、du-sh指令
作用:查看目录的真实大小
语法:#du-sh目录路径选项含义:
-s:summaries,只显示汇总的大小
-h:表示以高可读性的形式进行显示
7、find指令
作用:用于查找文件(其参数有55个之多)
语法:#find路径范围选项选项的值选项:
-name:按照文档名称进行搜索(支持模糊搜索)
-type:按照文档的类型进行搜索文档类型:
“-”表示文件(在使用find的时候需要用f来替换),“d”表示文件夹
8、service指令
(重点)作用:用于控制一些软件的服务启动/停止/重启
语法:#service服务名start/stop/restart
例如:需要启动本机安装的Apache(网站服务器软件),其服务名httpd#servicehttpdstart
9、kill指令(重点)
作用:表示杀死进程(当遇到僵尸进程或者出于某些原因需要关闭进程的时候)
语法:#kill进程PID(语法需要配合ps一起使用)
10、ifconfig指令(重点)
作用:用于操作网卡相关的指令。简单语法:#ifconfig(获取网卡信息)
11、reboot指令
作用:重新启动计算机
语法1:#reboot重启
语法2:#reboot-w模拟重启,但是不重启(只写关机与开机的日志信息)
12、shutdown指令
作用:关机(慎用)
语法1:#shutdown-hnow“关机提示”或者#shutdown-h15:25“关机提示”
13、uptime指令
作用:输出计算机的持续在线时间(计算机从开机到现在运行的时间)
语法:#uptime
14、uname指令
作用:获取计算机操作系统相关信息
语法1:#uname获取操作系统的类型
语法2:#uname-aall,表示获取全部的系统信息(类型、全部主机名、内核版本、发布时间、开源计划)。
15、netstat-tnlp指令
作用:查看网络连接状态语法:#netstat-tnlp
选项说明:
-t:表示只列出tcp协议的连接;
-n:表示将地址从字母组合转化成ip地址,将协议转化成端口号来显示;
-l:表示过滤出“state(状态)”列中其值为LISTEN(监听)的连接;
-p:表示显示发起连接的进程pid和进程名称;
16、man指令
作用:manual,手册(包含了Linux中全部命令手册,英文)
语法:#man命令(退出按下q键)
案例:通过man命令查询cp指令的用法#mancp
shell脚本入门
案例
shell脚本变量的定义与使用
变量,先定义后使用。
定义形如:
class_name="yunwe"
使用形如:
echo$class_name
变量就是由2部分组成,一个是变量名(左边),另外一部分是变量的值(右边)
变量名和变量值是什么关系?
变量名和变量值是使用和被使用关系;
我们的变量名来使用变量值,在使用变量的时候一定需要在变量名前面添加一个$符号,该要求在其他语言中也存在的(例如php)。
变量名的规范注意,变量名后面的等号左右不能有空格,这可能和你熟悉的所有编程语言都不一样。
同时,变量名的命名须遵循如下规则:
命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
中间不能有空格,可以使用下划线“_”。
不能使用标点符号。
不能使用bash里的关键字(可用help命令查看保留关键字)
案例
只读变量
语法:readonly变量名
案例:定义变量a并且其值为10,随后设置其为只读变量,再去尝试重新赋值
接收用户输入(重点)
语法:read-p提示信息变量名
案例:编写一个脚本test6.sh,要求执行之后提示用户输入文件的名称(路径),然后自动为用户创建该文件
删除变量(了解)
语法:unset变量名path
案例:定义变量b=20,再输出b的值,随后删除b,最后再输出下b
2.0条件判断语句
语法1(一个条件):
if condition
then
command1
command2...
fi
单行写法(一般在命令行中执行的时候):if[condition];thencommand;f
语法3(多个条件):
if condition1
then
command1
elif
condition2
then
command2
else
commandN
fi
3、运算符
在shell中,运算符和其他编程脚本语言一样,常见的有算数运算符、关系运算符、逻辑运算符、字符串运算符、文件测试运算符等
3.1、算数运算符
案例
3.2关系运算符
关系运算符关系运算 符只支持数字,不支持字符串,除非字符串的值是数字。
案例:使用a=10,b=20来实现本案例
3.3、逻辑运算符
3.4、字符串运算符
3.5、文件测试运算符(重点)
4、shell脚本附带选项(重点)
问题描述:在linuxshell中如何处理tail-10access.log这样的命令行选项?
步骤:调用tail指令
系统把后续选项传递给tail
Tail先去打开指定的文件
取出最后10行
问题:自己写的shell是否也可以像内置命令一样传递一些选项呢?
答:可以的,传递方式与上述的描述是一样的,关键是怎么接收。
例如:传递:#./test.shabc
接收:在脚本中可以用“$1”来表示a,“$2”来表示b,以此类推。
接收可以用“$”加上选项对应的序号即可。
Hadoop伪分布式的搭建
1.准备Linux环境1.1 开启网络,ifconfig指令查看ip1.2 修改主机名为自己名字(hadoop)vim /etc/sysconfig/networkNETWORKING=yes HOSTNAME=hadoop1.3修改主机名和IP的映射关系vim /etc/hosts 192.168.182.128 hadoop1.4关闭防火墙#查看防火墙状态service iptables status#关闭防火墙service iptables stop#关闭防火墙开机启动chkconfig iptables off1.5重启Linuxreboot安装自己的JDK前,删除openJDK:
查看java安装版本:java -version
查看java安装包:rpm -qa|grep java
删除java安装包:rpm -e --nodeps 包名2.安装JDK2.1 filezilla上传jdk到/opt2.2 解压jdkcd /opttar -zxvf jdk-7u76-linux-x64.tar.gz2.3 将java添加到环境变量中vim /etc/profile#在文件最后添加export JAVA_HOME=/opt/jdk1.7.0_76export PATH=$PATH:$JAVA_HOME/bin#刷新配置source /etc/profile#查看java的版本java -version3.安装Hadoop3.1 filezilla上传hadoop安装包,配置文档(hadoop2.2.0伪分布式搭建.txt)3.2解压hadoop安装包#解压tar -zxvf hadoop-2.2.0.tar.gz3.3修改配置文件(5个) 路径:/opt/hadoop-2.2.0/etc/hadoop第一个:hadoop-env.sh#在27行修改export JAVA_HOME=/opt/jdk1.7.0_76第二个:core-site.xml<configuration><!-- 指定HDFS老大(namenode)的通信地址 --><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property><!-- 指定hadoop运行时产生文件的存储路径 --><property><name>hadoop.tmp.dir</name><value>/opt/hadoop-2.2.0/tmp</value></property></configuration>第三个:hdfs-site.xml<configuration><!-- 设置hdfs副本数量 --><property><name>dfs.replication</name><value>1</value></property></configuration>第四个:mapred-site.xml.template 需要重命名: mv mapred-site.xml.template mapred-site.xml<configuration><!-- 通知框架MR使用YARN --><property><name>mapreduce.framework.name</name><value>yarn</value></property></configuration>第五个:yarn-site.xml<configuration><!-- reducer取数据的方式是mapreduce_shuffle --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property></configuration>3.4将hadoop添加到环境变量vim /etc/profileexport JAVA_HOME=/opt/jdk1.7.0_55export HADOOP_HOME=/opt/hadoop-2.2.0export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbinsource /etc/profile3.5格式化HDFS(namenode)第一次使用时要格式化hadoop namenode -format3.6启动hadoop先启动HDFSstart-dfs.sh再启动YARNstart-yarn.sh3.7验证是否启动成功使用jps命令验证27408 NameNode28218 Jps27643 SecondaryNameNode28066 NodeManager27803 ResourceManager27512 DataNodehttp://192.168.182.128:50070 (HDFS管理界面) http://192.168.182.128:8088 (MR管理界面)4.配置ssh免登陆生成ssh免登陆密钥cd ~,进入到我的home目录cd .ssh/ssh-keygen -t rsa (四个回车)执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)将公钥拷贝到要免登陆的机器上cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys或ssh-copy-id -i localhost
java操作hdfs
package cn.itcast.hadoop.hdfs;import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URI;
import java.net.URISyntaxException;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import org.junit.Before;
import org.junit.Test;public class HDFSDemo {FileSystem fs = null;@Beforepublic void init() throws Exception{fs = FileSystem.get(new URI("hdfs://itcast01:9000"), new Configuration(), "root");}@Testpublic void testUpload() throws Exception{InputStream in = new FileInputStream("/root/install.log");OutputStream out = fs.create(new Path("/log123.log"));IOUtils.copyBytes(in, out, 1024, true);}@Testpublic void testMkdir() throws IllegalArgumentException, IOException{boolean flag = fs.mkdirs(new Path("/a/aa"));System.out.println(flag);}@Testpublic void testDel() throws IllegalArgumentException, IOException{boolean flag = fs.delete(new Path("/a"), true);System.out.println(flag);}public static void main(String[] args) throws Exception {FileSystem fs = FileSystem.get(new URI("hdfs://itcast01:9000"), new Configuration());InputStream in = fs.open(new Path("/jdk"));OutputStream out = new FileOutputStream("/home/jdk1.7.tar.gz");IOUtils.copyBytes(in, out, 4096, true);}
}
mappreduce代码统计文本单词
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;public class WordCount {public static void main(String[] args) throws Exception{//定义配置对象Configuration conf=new Configuration();//定义一个工作任务对象Job job=Job.getInstance(conf);//获取map阶段的一个对象job.setMapperClass(WordCountMap.class);//指定map阶段的一个输出keyjob.setOutputKeyClass(Text.class);//指定map阶段输出的values类型job.setOutputValueClass(IntWritable.class);//map阶段的输入文件FileInputFormat.setInputPaths(job,new Path(""));//指定Reduce的类job.setReducerClass(WordCountReduce.class);//指定Reduce阶段的一个输出keyjob.setOutputKeyClass(Text.class);//指定Reduce阶段输出的values类型job.setOutputValueClass(IntWritable.class);//指定Reduce阶段的输出文件FileOutputFormat.setOutputPath(job,new Path(""));//submitjob.waitForCompletion(true);}
}
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;import java.io.IOException;public class WordCountMap extends Mapper<LongWritable, Text, Text, IntWritable>{@Overrideprotected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {//读取每行文本String line = value.toString();//splite拆分每行String[] words =line.split(" ");//取出每个单词for(String word : words){//将每个单词转为Text类型Text wordText = new Text(word);//将1转变为IntWritableIntWritable outValue = new IntWritable(1);//写出单词,跟对应1context.write(wordText,outValue);}}
}
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;
import java.io.IOException;/* *** Text 输入的空字符串类型,序列化* IntWritable 输入一串1,序列化* Text 输出字符串类型,序列化* IntWritable 输出求和的数组,序列化* **/
public class WordCountReduce extends Reducer<Text, IntWritable,Text,IntWritable> {/* *** key 输出单词名字* values 输出一串1* context 输出工具* **/@Overrideprotected void reduce(Text key,Iterable<IntWritable> values,Context context)throws IOException, InterruptedException {int sum=0;for (IntWritable number:values){sum += number.get();}context.write(key,new IntWritable(sum));}
}
Linux指令_杨小明相关推荐
- asp.net多图片上传案例_会计小明的故事-成本核算案例篇
因涉及成本核算案例篇,所需要的图表比较多,但是知乎不同于微信可以直接将文档图表复制过来,知乎专栏文章,所有图表必须先截图,然后以图片形式展示.但是成本核算案例图表实在是太多,一一截图,一则影响整体观感 ...
- Linux指令_邓慧斐
Linux 基础指令 1. Is指令 用法1 #ls 用法2 #ls 路径 用法3 #ls-l 路径 #ls-la 路径 2. pwd指令 用法:#pwd(printworkingdirectory, ...
- linux指令_肖长青
一.基础指令 1.ls指令 案例:在列出指定路径下的文件/文件夹的名称,并以指定的格式进行显示. 注意:ls 列出的结果颜色说明,其中蓝色的名称表示文件夹,黑色的表示文件,绿色的其权 限为拥有所有权限 ...
- linux指令_周东海
目录 1.基础指令语法 2.中级指令语法 3.高级指令语法 1.基础指令语法 1.ls指令 指令 #ls :列出当前目录的文件 #ls 路径 : 列出指定路径下的文件 #ls -i/la : - ...
- linux内核ppt刘小明,【陈老师华为北研所讲座PPT】从机制与策略探究Linux内核设计之道(4)...
原标题:[陈老师华为北研所讲座PPT]从机制与策略探究Linux内核设计之道(4) 解放编译程序,以统一的方式分配逻辑地址. 首先内核通过映射机制把进程的虚拟地址映射到物理地址,在进程运行时,如果内核 ...
- linux指令_刘世民
1.基础指令语法,举例 ls -l /root pwd cd /home/yyds mkdir /home/yyds/aaa wouch /home/yyds/bbb cp bbb /home/yyd ...
- linux指令_齐南汕
基础指令 1.rm删除 rm install.log 普通删除文件 rm -f install.log 强制删除文件 rm -r -f abc 删除文件夹 rm -rf a 删除文件夹 -r和-f两个 ...
- 猜灯谜_全排列板子题(A 村的元宵节灯会上有一迷题: 请猜谜 × 请猜谜 = 请边赏灯边猜 小明想,一定是每个汉字代表一个数字,不同的汉字代表不同的数字。 请你用计算机按小明的思路算一下,然后)
题目描述 A 村的元宵节灯会上有一迷题: 请猜谜 × 请猜谜 = 请边赏灯边猜 小明想,一定是每个汉字代表一个数字,不同的汉字代表不同的数字. 请你用计算机按小明的思路算一下,然后提交"请猜 ...
- 小明发布_LPL纪录片《来者何人》发布 RNG问题明显比FPX严重_国内动态
从今年世界赛期间就开始造势的LPL全新纪录片<来者何人>终于是在B站独家发布了,这部从战队视角看电竞产业的纪录片虽然在发布后不久就收到了不少吐槽,比如旁白没味道,架构凌乱等,但从内容来看, ...
最新文章
- Effective STL 50条有效使用STL的经验笔记
- TensorFlow练习27: 验证码生成器-从文本生成图像
- jupyter写python的时候换行总是换到下一行的中间
- python支持链式赋值和多重赋值_Python: 链式赋值的坑
- Java多线程闲聊(五):AQS
- java空心菱形_java 空心菱形
- duilib清空richedit内容
- 搭建本地Ubuntu14.04源
- PAT甲题题解-1106. Lowest Price in Supply Chain (25)-(dfs计算树的最小层数)
- android内存溢出案例
- Java 对象布局、大小工具 jar包工具类jol
- vue跨域解决方案websocket_前端跨域解决方案汇总
- IDEA编译错误PersistentEnumerator storage corrupted
- js日期格式转换Wed Mar 22 13:38:37 CST 2017 转换 为yyyy-mm-dd
- 股票精灵接口的脚本策划
- ARMCortex系列仿真调试器
- ES6——对象、数组、字符串、数值新增API
- HTTP状态404-未找到
- 小白学python.1
- 物联网 | HASS+MQTT+树莓派室内监测小型物联网系统