版权声明: https://blog.csdn.net/u011518709/article/details/84838472
最近研究大数据,将linux的基本命令整理如下:
1、设置图形界面
vim /etc/inittab
2、清屏幕 clear
3、创建用户,设置密码
useradd test
passwd test
4、切换用户
su - test
5、查看当前目录,
pwd,
/home/test
6、查看主机名
hostname
设置主机名:
方式一:hostname weekend110 (此种方式设置的主机名称,在重启后又还原了,系统的配置信息都来自于文件)
方式二:vim /ect/sysconfig/network
HOSTNAME=weekend110
主机名和ip的映射:
vim /etc/hosts
windows下的:C:\Windows\System32\drivers\etc
7、vi
vi filename
i 编辑,esc 退出编辑模式,:wq 保存,:q 不保存
>>>>vi模式的快捷方式:
dd:删除光标所在行
zz:保存
x:删除光标附件的内容
o:光标下一行插入内容
----------------------------------------------------------------------文件操作---------------------------------------------------------------------
8、文件操作
>>>>查看文件
ls --list
ls -l 或者 ll
ls -a 显示隐藏文件,以 .开头的文件
>>>>目录
./当前目录 ../上级目录
cd ../app
>>>>常见的文件类型:
文件
目录
连接(快捷方式)
>>>>创建文件:
touch 1.txt
vi 2.txt
>>>>对文件内容追加
echo "aaaa" >> 1.txt
>>>>-rw-rw-r--
- rw- rw- r-- >>>>数字表示权限为:664
- 文件类型
rw- 文件权限
>>>>文件权限
可读 r
可写 w
可执行(脚本:shell脚本) x
>>>>文件归属
拥有者 owner o
所属组 group g
其他人 other o
>>>>权限数字表示方式
rw- 6
二进制数字之和的方式
R W X
2^2 2^1 2^0
>>>>设置文件对不用用户的权限 root用户
chmod 600 1.txt
-R, --recursive 递归
eg: chmod g-w 1.txt
chmod o-r 1.txt
chmod 664 1.txt
>>>>改变文件拥有者和所属组
chowner
chowner admin 1.txt
chgrp
chgrp admin 1.txt
>>>>针对目录,文件夹修改权限
chown -R admin /opt/sofware
>>>>使用一条命令,修改文件的拥有者和所属组
chown admin:admin 1.txt
>>>>命令行
man + 命令关键字 查看具体的命令操作
tab 自动补全
>>>>创建目录
mkdir test
mkdir -p app/test 创建多级目录
>>>>文件拷贝, 移动/重命名
cp source disk/filename
mv src dest
cp 1.txt /home
cp 1.txt 2.txt 重命名
cp -r 目录1 目录2
>>>>删除
rm -rf src 绝对路径
9、查看文件内容
cat: 查看
more:翻页查看
tail:末尾查看,-f 实时查看日志动态
eg:tail -f a.log
head:开头文件,文件格式,内容模板样式
10、连接(快捷方式)
软连接:soft link
ln -s file/dir linkname
ln -s readme.txt r.txt
硬连接:hard link
ln readme.txt r.txt 相当于copy 一个文件,改变源文件,连接文件也会被修改
删除的时候都不删除源文件,
使用场景:
hadoop的配置文件,hbase中也要用到core-site.xml,hdfs-site.xml ,故在hbase中直接引用,ln ,
11、文件搜索
find ~/ -name read(关键字)
find ~/ -name read\*
--------------------------------------------------远程工具----------------------------------------------------------------------
12、四大远程连接工具
*远程命令行:
secureCRT
*远程FTP:
FileZilla
ftp:file transfer protocol
*远程编译工具:
notepad++ ,v6.6.8有NppFTP 插件 (SFTP协议)
ultraEdit (SFTP协议)
*远程界面工具:
Xmanager4
---------------------------------------------------------系统命令----------------------------------------------------------
13、系统信息的命令
uname
uname -r
#cpu信息
cat /proc/cpuinfo
#内存信息
cat /proc/meminfo
#日期信息
date
#日历
cal 2018
#设置日期和时间 root
date -s 2015-11-12
date -s 14:12:23
#磁盘使用情况
df -l
du -sh /home/admin
fdisk -l
#磁盘修复,自动修复
fsck /dev/sda3
#查看挂在磁盘信息
mount
#挂在磁盘
mount /dev/sdb1 /data01
#卸载磁盘
umount /dev/sdb1
#查看内存使用情况
free
free -m
#各个进程内存的使用情况
top
M:查看详细信息
#网络命令
网卡信息位置:cd /etc/sysconfig/network-scripts/
ping 0.0.0.0 ==本地的ip
-----------------------------------------------------软件的安装方式------------------------------------------------------
14、RPM 命令
#查看软件是否安装
rpm -qa|grep java1.6
#卸载软件
rpm -e --nodeps java1.6
#安装软件
rpm -ivh *.rpm
15、tar (源码,编译)
解压
tar -zxvf *.tar.gz
tar -zxvf *.tar.gz -C dir
压缩
tar -zcvf *.tar.gz dir
16、zip软件
解压
unzip *.zip
压缩
zip *.zip file
17、yum
需要配置源
安装包依赖关系以及各个软件的安装顺序
---------------------------------------------------设置用户的sudo 权限----------------------------------------------
18、vi /etc/sudoers
添加:
admin ALL=(root) NOPASSWD:ALL
----------------------------------------------------防火墙-----------------------------------------------------------
19、sudo
#查看状态
service iptables status
#关闭
service iptables stop
#开启
service iptables start
#永久关闭|开启
chkconfig iptables off|on
chkconfig --list httpd
------------------------------------selinux----------------------------------------------------
SELINUX 关闭
vim /etc/sysconfig/selinux
SELINUX =disabled
需要重启
------------------------------------crontab定时调度-------------------------------------------------------
20、crontab
touch 1-log.txt
echo "111-log" >> 1-log.txt
cat 1-log.txt
date
date >> 1-log.txt
which date --查找某个命令所在的目录
#创建定时任务,追加时间到文件,1分钟执行一次
crontab -e
*/1 * * * * /bin/date >> /home/admin/1-log.txt
#实时查看文件
tail -f 1-log.txt
#查看当前所有的定时任务
crontab -l
#删除所有的定时任务
crontab -r
#删除单个
文件中注释掉就可以了
21、crontab的语法
* * * * * command (空格隔开)
* * * * *
第1个*:分,1-59, */10 每十分钟执行
第2个*:时,0-23,
第3个*:日,1-31,
第4个*:月,1-12,
第5个*:星期,0-6,
eg:##每天21:30 执行
30 21 * * * cmd01
##每个月1号,11号,21号的2:30 执行
30 2 1,11,21 * * cmd01
##每周六或者周日,1:45执行
45 1 * * 6,0 cmd01
##每天20:00-23:00 ,每半个小时执行一次
0,30 20-23 * * * cmd01
##每一个小时执行一次
* */1 * * * cmd01
-------------------------------------虚拟机重启出错----------------------------------------------------------
22、磁盘损坏
fsck /dev/sda3
--------------------------------------shell命令-----------------------------------------------------------------------
23、变量
echo 回显
shoami 显示当前用户
(1)本地变量:shell脚本用
x=123 echo ${x}
=左右不能有空格
(2)环境变量:shell进程中都可以用,全局变量大写
第一行:指定用哪个程序来编译或者执行脚本
#!/bin/bash #!/bin/sh
注释行:使用(#)
shell脚本编写:
#!/bin/base
echo "hello word!!!"
#修改脚本的执行权限
chmod u+x go.sh
#执行脚本(3种方式)
./go.sh
. go.sh
sh go.sh
(3)位置参数
echo "hello $1"
执行的时候传递的 sh go.sh word
参数中有空格,需要用引号 sh go.sh "hadoop mapreduce"
$0 当前脚本的文件名
$1-$9 第一个到第九个位置参量
${10} 第10个以后,用{}括起来
$# 位置参量的个数
$* 以单字符显示所有位置参量
$@ 未加双引号和$*相同
$$ 脚本运行的当前进程号
$! 最后一个后台运行的进程的进程号
$? 显示前面最后一个命令的退出状态,0表示没有错误,其他任何值都有错误
if[$? !=0 ];then
exit 1
fi
24、数组
a={a b c}
第一个:echo ${a[0]}
全部:echo ${a[*]}
个数:echo ${#a[*]}
赋值:a[0]=a1
25、date
date +%Y-%m-%d
date +%Y-%m-%d %H:%M:%S
###shell脚本中取时间:
#!/bin/bash
date1=$(date +%Y-%m-%d)
echo ${date1}
#两天前
date2=$(date --date='2 days ago' +%Y-%m-%d)
echo ${date2}
#1天后
date3=$(date --date='+1 days ' +%Y-%m-%d)
echo ${date3}
#1天前
date4=$(date --date='-1 days ' +%Y-%m-%d)
echo ${date4}
26、日历
cal
cal 2018
cal 09 2018
27、判断语句test ,具体查看 man test
#是否存在
test -e filename
#是否存在且为档案file
test -f filename
#是否存在且为目录directory
test -d filename
#是否存在且可读
test -r filename
#是否存在且可写
test -w filename
#是否存在且可执行
test -x filename
-eq -ne -gt -lt -ge -le
test -z string --是否空
test -n string --是否不为空
test str1=str2
test str1!=str2
28、循环语句
for i in 1 2 3 4 5
do
echo ${i}
done
while read line
echo ${line}