linux常用命令以及简介
最近在学习大数据,少不了和linux打交到,下面是半年来使用过的linux相关的命令,想起来的就整理了一下,以供查阅,并督促自己时常整理所学知识。
也可以帮初学者梳理一下~
# [用户名@主机名 当前文件夹]$ 代表普通用户
[neu@s12083 zhangqiang]$
# ~ 代表当前用户的根目录,#代表超级用户
[root@s12083 ~]#
# 如果对当前命令不是特别清楚它的用法
man [command]
# 例如:它会显示rm命令的解释说明和它的options
man rm
添加和删除新用户(账户)
# 添加用户neu
useradd 参数 用户名
# 参数如下
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
# 举例
useradd neu # 默认创建/home/neu为主目录
useradd –d /usr/neu -m neu # 此命令创建了一个用户neu,其中-d和-m选项用来为登录名neu产生一个主目录/usr/neu(/usr为默认的用户主目录所在的父目录)。
useradd -s /bin/sh -g group –G adm,root gem # 此命令新建了一个用户gem,该用户的登录Shell是/bin/sh,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组。
# 删除neu用户 -r 将用户的主目录及内容一并删除
userdel -r neu
# 添加一个新的组neu
groupadd neu
# 删除组neu
groupdel neu
# 修改账号
usermod # 使用参数和useradd一样
usermod -s /bin/ksh -d /home/z –g developer sam # 此命令将用户sam的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer。
usermod -s /bin/bash hbase # 允许hbase用户登录
# 禁止hbase用户登录
usermod -s /bin/false hbase # 禁止一切服务,不可以ftp,并且没有提示,如果想要用false在禁止login的同时允许ftp,则必须在/etc/shells里增加一行/bin/false。
usermod -s /sbin/nologin hbase # 禁止登陆,而且有提示,可以ftp
# 用户口令管理
passwd 参数 用户名
# 参数如下
-l 锁定口令,即禁用账号。
-u 口令解锁。
-d 使账号无口令。
-f 强迫用户下次登录时修改口令。
如果默认用户名,则修改当前用户的口令。
# 当前用户修改自己的用户口令
passwd
Old password:******
New password:*******
Re-enter new password:*******
# root用户修改其他用户(neu)的用户口令
passwd neu
New password:*******
Re-enter new password:*******
# 删除neu用户的登陆口令(下次登陆不需要口令)
passwd -d neu
# 锁定neu用户,使其不能登陆
passwd -l neu
# 解锁
passwd -u neu
# 查看当前linux下所有的用户
cat /etc/passwd # 可以查看所有用户的列表
w # 可以查看当前活跃的用户列表
cat /etc/shadow # 查看用户名
cat /etc/group # 查看用户组
# 新建用户异常:
# 解决创建同名用户时"信箱文件:已存在"的问题,(Creating mailbox file: 文件已存在)
rm -rf /var/spool/mail/neu(用户名)
# 解决 useradd: invalid numeric argument 'hadoop'
# 这是由于hadoop组不存在 请先建hadoop组
查看当前进程号
ps
# 查看所有进程
ps -ef 或者 ps -aux # ww 参数的含义是:避免详细参数被截断
# 查看neu用户下正在进行的进程
ps -u neu
# jdk1.5起提供的查看所有java进程的pid的命令
jps
# 无条件终止进程
kill -9 24270(pid,进程号)
# 管道符'|'用来分隔两个命令,左边命令的输出会作为右面命令的输入
# 输出所有进程号|输出含有关键字'a'的进程|去除含有关键'b的进程'|截取输入行第9~15个字符(pid)|将前面命令的输出结果(pid)作为kill -9的参数,并执行
ps -efww | grep a | grep -v b | cut -c 9-15 | xargs kill -9
# grep命令用来筛选信息
用户类型和文件权限
# 显示当前文件的详细信息 -a 参数表示显示隐藏文件(以.开头的文件就是隐藏文件)
ls -l <==> ll ls -al <==> ll -a
# 一个文件的详细信息如下
# 文件类型 各用户权限 用户名 用户所在组名 大小(字节) 最近修改时间 文件名
- rwxr-xrwx. 1 root root 890461 Feb 22 10:27 smarket-spark.jar
d rwxr-xrwx. 28 neu neu 4096 Nov 8 09:38 spark-2.0.2
# linux针对文件有三种格式
1)文件 用 - 来表示
2)目录 用 d 来表示
3)文件链接(快捷方式)用 l 来表示
# 每一类文件都会针对三类用户进行权限控制
1)文件所有者 u
2)文件同组者 g
3)系统的其他用户 o
# 对于每一类用户的权限又分为三种
1)可读 r ,权重是2的2次方 = 4
2)可写 w ,权重是2的1次方 = 2
3)可执行 x ,权重是2的0次方 = 1
# 改变文件所属用户和组 -R 代表递归更改文件夹内的所有文件
chown -R zhangqiang:zhangqiang directory1
# 只改变文件所属用户
chown zhangqiang file.txt
# 只改变文件所属组
chgrp zhangqiang file.txt
# 改变文件权限 -R 代表递归更改文件夹内的所有文件
1) chmod -R 755 directory2 # 通过修改权重来修改权限
2) chmod u-w|o+w ./file.txt # 通过删除或者添加用户的权限直接修改
一些简单好用的命令
# 查看用户历史命令行记录
history
# 查看当前文件夹完整路径
pwd
# 清除屏幕,但是向上滚动之后之前的命令行信息又出来了
clear
# 真正意义上的清除屏幕,但是稍微较慢,也可以解决命令乱行的问题
reset
# 查看当前文件夹下所有文件的大小
du * -smh
# 查看文件夹ci的大小
du ci -smh
# 退出当前用户的命令
exit
# 切换到neu用户,并且进入neu用户的主目录,不需要输入密码
su - neu
# 切换到neu用户,并且进入上个用户当前正在使用的目录
su neu
网络相关
# 查看网络信息命令
ifconfig == ipconfig(windows)
# 查看当前主机名
hostname
# 在root用户下 'hostname 主机名' 可以修改主机名,仅在当前生效,reboot之后就会还原
hostname zhangqiang
# 设置当前主机名,永久生效,将/etc/sysconfig/network 中的'HOSTNAME=主机名'
vi /etc/sysconfig/network
# 或者通过修改/etc/hostname文件来设置主机名
vi /etc/hostname 将localhost.localdomain改为你想要的主机名字
# 重启机器
reboot
# 主机IP地址配置路径
# centos 7.0之前 /etc/sysconfig/network-scripts/ifcfg-eth0
# centos 7.0之后 /etc/sysconfig/network-scripts/ifcfg-eno16777736
# 设置IP和主机名映射
vi /etc/hosts 10.4.120.83 s12083
文件的增删改查
# cd 命令
# 进入当前用户的主目录
只输入 cd 或者 cd ~
# 返回上级目录
cd ..
# 进入当前文件夹的data文件夹,. 代表当前文件夹
cd ./data
# 创建文件夹
mkdir directory
# 创建多层文件夹
mkdir -p d1/d2/d3
# 创建文件
touch file.txt
# 重命名,把d2重命名成rd2
mv d2 rd2
# 移动文件夹,将d2移动到上级目录
mv d2 ../
# 拷贝文件 将hello.txt拷贝到world.txt
cp hello.txt world.txt
# Linux不同主机间的文件传输命令 scp
# 在相关路径下 将spark-env.sh 发送到IP为s12181的neu用户的/opt/neu/spark/conf文件夹下(如果已经存在则覆盖)
scp spark-env.sh neu@s12181:/opt/neu/spark/conf
# 编辑文件
vi / vim
# 当编辑的文件不存在的时候会创建一个新的文件
vi file.txt
# 首先进入的是检查模式,按'i'进入编辑模式,按'esc'退出编辑模式,进入检查模式
# 保存并退出,在检查模式下按 'shift'+'z'*2,即两次大写的'Z', 或者在检查模式下输入 ':wq'
# 放弃保存并退出,在检查模式下输入':q!'
# 在未修改任何内容的情况下,正常退出, 输入':q'
# 文件查看
1) more :一页一页的查看,单页查看
2) tail : 查看文件尾部的内容,多用于查看最新的日志信息
tail -100f 滚动查看末尾100行内容,当出现最新的日志信息时滚动输出
3) cat : 查看所有文件的内容
# 删除文件
rm hello.txt
# 删除空目录
rmdir d3
# 强制递归删除所有文件(直接删除不提醒,慎用!)
rm -rf d1 (-r递归,-f强制删除,d1以及d1内的所有文件)
解压压缩包
# 解压.tar.gz文件
tar -xzvf spark-2.0.2-bin-hadoop2.6.tgz -C /usr/zhangqiang/spark
# 参数介绍
-x 解压
-z 以gzip方式解压(*.tar.gz/*.tgz)
-v 显示正在处理的文件进度
-f 要解压的文件名称
-C 要解压到的特定目录(默认解压到当前目录)
Linux环境变量设置
# Linux环境变量设置
vi /etc/profile # 全局用户,应用于所有的Shell
例如配置jdk环境变量
JAVA_HOME=/usr/java/jdk....
CLASS_PATH=$JAVA_HOME/lib
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASS_PATH
# 使配置的环境变量立即生效,不需要重启
source /etc/profile
vi ~/.bash_profile # 当前用户,应用于所有的Shell。当前用户主目录下 ls -a可以看到所有文件包含隐藏文件
vi /etc/bash_bashrc # 全局用户,应用于Bash Shell
vi ~/.bashrc # 局部当前,应用于Bash Sell