Linux基础概念及基本应用
linux系统各种目录
cd / 进入linux系统的根目录
linux所有的文件都是位于根目录下边的。
认识一下各种目录:
bin (binaries)存放二进制可执行文件
sbin (super user binaries)存放二进制可执行文件,只有root才能访问
etc (etcetera)存放系统配置文件
usr (unix shared resources)用于存放共享的系统资源
home 存放用户文件的根目录
root 超级用户目录
dev (devices)用于存放设备文件
lib (library)存放跟文件系统中的程序运行所需要的共享库及内核模块
mnt (mount)系统管理员安装临时文件系统的安装点
boot 存放用于系统引导时使用的各种文件
tmp (temporary)用于存放各种临时文件
var (variable)用于存放运行时需要改变数据的文件
linux常用命令
有时候会遇到这样的错误: No space left on device
然后通过df -h 命令查询磁盘情况:
因为我不太清楚到底是哪个文件占用了这么大,所以采用命令:
Du -sh /*
原来是/usr路径,进去继续追查
最终是一步一步追查,发现是tomcat日志
ll -ah查看具体文件的大小
2、查看当前系统的时间 date
[test@hdp-node-01 ~]$ date +%Y-%m-%d
2016-05-18
设置时间
date -s "2016-05-23 01:01" ## 修改时间
修改时间后,需要写入硬件bios才能在重启之后依然生效
hwclock -w
清屏
clear ## 或者用快捷键 ctrl + l
退出当前进程
ctrl+c 有些程序也可以用q键退出
挂起当前进程
ctrl+z ## 进程会挂起到后台
bg jobid ## 让进程在后台继续执行
fg jobid ## 让进程回到前台
Linux的目录文件操作
查看目录信息
Ls -l 列出详细信息
Ls -h 列出详细信息,并且带有文件大小
也可以这样写:ll -lh
Ls -a 会把隐藏文件查询出来 组合使用:ls -ha
切换目录change directory
快速的切回主目录:cd ~
退回到上一层目录:cd -
Cd 什么都不带,会回到用户的主目录
返回上一级:cd ..
创建文件夹
mkdir aaa 文件名
Mkdir -p aaa/bbb/ccc 级联创建多个目录
删除文件夹
rmdir aaa ## 可以删除空目录
rm -r aaa ## 可以把aaa整个文件夹及其中的所有子节点全部删除(通过递归的形式删除的)
rm -rf aaa ## 强制删除aaa(这个命令要谨慎)
修改文件夹名称
mv aaa angelababy
mv本质上是移动
mv install.log aaa/ 将当前目录下的install.log 移动到aaa文件夹中去
rename 可以用来批量更改文件名
创建文件
touch somefile 这样就创建了一个空文件(linux的文件的后缀名其实是没有什么特殊意义的,只是按类别区分)
vi 文件名:vi demo.txt
重定向
‘>’将一台指令的输出结果接入到另一个文件中,会覆盖原来的内容(如果指定的文件不存在,则会创建出来)
echo “wangbaoqiang zhen ke lian” > demo.txt
‘>>’ 将一个文件追加到另一个文件中,不会覆盖
echo “malaoshi” >> demo.txt
22 > 2.txt
关于编辑文本
当进入某个文本命令行以后,刚开始的时候是只读模式的,如果想修改,需要启动命令才可以。有三种命令:
1、i 光标所在位置进行编辑
2、A光标后面进行编辑
3、O 下一行启动一个新的
保存
需要先退出编辑模式:esc
:w 保存
:wq 保存且退出
常用快捷键:
a 在光标后一位开始插入
A 在该行的最后插入
I 在该行的最前面插入
gg 直接跳到文件的首行
G 直接跳到文件的末行
dd 删除一行
3dd 删除3行
yy 复制一行
3yy 复制3行
p 粘贴
拷贝/删除/移动
cp somefile1 /home/hadoop/
cp -r 目标文件 拷贝地址
假如一个文件隐藏的很深:
此时想copy bb文件夹到root目录下,这时候直接用 cp aa/bb/ /root/就会报错
所以要使用递归的方式copy:cp -r aa/bb/ /root/
rm -r /文件夹或者文件名 (删除)
rm -rf /home/hadoop/somefile1(强制删除)
移动文件:mv(move)
将demo1.txt移动到aa文件夹内
mv demo1.txt aa/
统计wc(word count)
wc 统计文本的行数、字数、字符数(word count)
-m 统计文本字符数
-w 统计文本字数
-l 统计文本行数
查看文件内容(重点)
cat 一次性将文件内容全部输出到控制台
more 可以翻页查看,下翻一页(空格) 上翻一页(b) 退出q
less 和more差不多,但是比more更强大一点
head -10 install.log 查看文件的头10行
tail -100f install.log 查看文件尾部的100行
tail -f install.log 实时的查看文件中的内容,只要有更新就会查看。
查看当前工作目录
pwd 显示当前工作目录(print working directory)
关于远程拷贝的命令
1、将当前文件拷贝到另一台机器上
scp -r /home/test/test.txt root@192.168.1.5:/home/root
2.从 远程 复制到 本地
scp root@/172.19.2.75:/home/root/full.tar.gz /home/daisy/full.tar.gz
7、打包并压缩(重要)
tar -zcvf a.tar.gz a.txt tar -zcvf 路径/压缩的文件名 目标文件
8、解包并解压缩(重要)
tar -zxvf a.tar.gz
文件的查找
1、Which 命令
Which ls 查看这个文件是在哪个目录下
2、whereis 命令
whereis ls
Find命令
3、从某个文件夹开始查找文件
find / -name "hadooop*"
Grep命令
1/ 基本使用
查询包含hadoop的行
grep hadoop /etc/password
grep aaa ./*.txt
文件权限的操作
不同用户是有不同操作权限的
1 linux文件权限的描述格式解读
drwxr-xr-x (也可以用二进制表示 111 101 101 --> 755)
d:标识节点类型(d:文件夹 -:文件 l:链接)
r:可读 w:可写 x:可执行
第一组rwx: ## 表示这个文件的拥有者对它的权限:可读可写可执行
第二组r-x: ## 表示这个文件的所属组用户对它的权限:可读,不可写,可执行
第三组r-x: ## 表示这个文件的其他用户(相对于上面两类用户)对它的权限:可读,不可写,可执行
2 修改文件权限
U:表示user(所属用户)
G:表示group(表示所属组)
O:表示other(表示其他用户)
A:all
chmod g-rw haha.dat ## 表示将haha.dat对所属组的rw权限取消
chmod o-rw haha.dat ## 表示将haha.dat对其他人的rw权限取消
chmod u+x haha.dat ## 表示将haha.dat对所属用户的权限增加x
chmod a-x haha.dat ## 表示将haha.dat对所用户取消x权限
也可以用数字的方式来修改权限
chmod 664 haha.dat
就会修改成 rw-rw-r--
如果要将一个文件夹的所有内容权限统一修改,则可以-R参数
chmod -R 770 aaa/
3 修改文件所有权chown
<只有root权限能执行>
当需要改指定目录及其子目录下所有文件的拥有者和群组的时候,需要:
chown -R 拥有者:群组 文件
(分配文件权限,前提是root用户和确实存在这个用户)
基本的用户管理
需要我们掌握的:
添加一个用户:
1、 useradd spark
2、 passwd spark 根据提示设置密码;
即可
删除一个用户:
userdel -r spark 加一个-r就表示把用户及用户的主目录都删除
1 添加用户
添加一个tom用户,设置它属于users组,并添加注释信息
分步完成:useradd tom
usermod -g users tom (-g表示组)
usermod -c "hr tom" tom (-c表示)
一步完成:useradd -g users -c "hr tom" tom
设置tom用户的密码
passwd tom
2 修改用户
修改tom用户的登陆名为tomcat
usermod -l tomcat tom
将tomcat添加到sys和root组中
usermod -G sys,root tomcat
查看tomcat的组信息
groups tomcat
3 用户组操作
添加一个叫america的组
groupadd america
将jerry添加到america组中
usermod -g america jerry
将tomcat用户从root组和sys组删除
gpasswd -d tomcat root
gpasswd -d tomcat sys
将america组名修改为am
groupmod -n am america
4 为用户配置sudo权限
用root编辑 vi /etc/sudoers
在文件的如下位置,为hadoop添加一行即可
root ALL=(ALL) ALL
hadoop ALL=(ALL) ALL
然后,hadoop用户就可以用sudo来执行系统级别的指令
[hadoop@shizhan ~]$ sudo useradd huangxiaoming
关于ps命令和grep命令
ps 显示瞬间的进程状态
-e /-A 显示所有进程,环境变量
-f 全格式
-a 显示所有用户的所有进程(包括其它用户)
-u 按用户名和启动时间的顺序来显示进程
-x 显示无控制终端的进程
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来
通常情况下,这俩是合起来使用的,比如查看某个进程:
Ps -ef | grep redis
Ps -ef | grep tomcat
netstat 显示网络状态信息
和ps -ef |grep 功能相似的,netstat -nltp
比如查看端口号是否被占用netstat -nltp|grep 端口号