Linux常用命令

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 ,权重是22次方 = 4
 2)可写 w ,权重是21次方 = 2
 3)可执行 x ,权重是20次方 = 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

你可能感兴趣的:(linux)