linux

linux相关

1. 什么是linux

多用户,多任务,支持多线程和多CPU的操作系统,linux的应用领域:免费,稳定,高效的, 一般运行在大型服务器上

常用目录介绍:

目录名说明
/ 根目录一般根目录下只存放目录,有且只有一个根目录
/home 家目录系统默认的家目录,新增用户账号时,用户的家目录都存放在此目录下
/root系统管理员root的家目录
/bin/usr/bin可执行二进制文件的目录
/etc系统配置文件存放的目录
/mnt /media光盘默认挂载点
/tmp一般用户或正在执行的程序临时存放文件的目录
/var这个目录中存放着不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下,包括各种日志文件
/usr系统级的目录,可以理解为C:/Windows/
/usr/lib理解为C:/Windows/System32。system32是Windows操作系统的系统文件夹,是操作系统的中枢
/usr/local用户级的程序目录,可以理解为C:/Program Files/。用户自己编译的软件默认会安装到这个目录下。
/optopt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

linux的核心思想:一切皆为文件

[root@localhost ~]# 的含义:

  • @之前的是当前登录的用户
  • localhost是主机名字
  • ~当前所在的位置(所在的目录)
  • ~家目录
  • /根目录
  • #的位置是用户标识
    • #是超级用户
    • $普通用户

linux命令的写法:

命令名  [选项]  [参数]
  • 命令名:相应功能的英文单词或单词的缩写
  • 选项:可以用来对命令进行控制,也可以省略,选项不同,命令的结果不同
  • 参数:传给命令的参数,可以是0个,也可以一个或多个

linux注意事项:

  • 1.严格区分大小写
  • 2.有的命令有选项和参数,有的有其一,有的都没有
  • 3.选项的格式一般是 -字母 -单词 字母
  • 4.可以加多个选项,多个选项可以合并(例 -a -b 可以合并成-ab)
  • 5.命令 选项 参数 之间一定要有空格
    ————————————————
    版权声明:本文为CSDN博主「小袁ITSuper」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/yuan2019035055/article/details/120584242

2. 文件权限

比如:

-rw-r--r-- 1 root root 762 07-29 18:19 exit
	其中前三个表示文件拥有者的权限,中间三个表示文件所属组拥有的权限,最后三个表示其他用户拥有的权限。

Linux文件和目录的777、755、644权限解释

在linux系统中,文件或目录的权限可以分为3种:
r:4 读
w:2 写
x:1  执行(运行)
-:对应数值0

数字 4 、2 和 1表示读、写、执行权限

 rwx = 4 + 2 + 1 = 7 (可读写运行)
 rw = 4 + 2 = 6 (可读写不可运行)
 rx = 4 +1 = 5 (可读可运行不可写)

示例:

最高权限777:(4+2+1) (4+2+1)  (4+2+1)
第一个7:表示当前文件的拥有者的权限,7=4+2+1 可读可写可执行权限
第二个7:表示当前文件的所属组(同组用户)权限,7=4+2+1 可读可写可执行权限
第三个7:表示当前文件的组外权限,7=4+2+1 可读可写可执行权限

示例:

755:(4+2+1) (4+1)  (4+1)
第一个7:表示当前文件的拥有者的权限,7=4+2+1 可读可写可执行权限
第二个5:表示当前文件的所属组(同组用户)权限,5=4+1 可读可执行权限
第三个5:表示当前文件的组外权限,5=4+1 可读可执行权限

示例:

644:(4+2) (4)  (4)
第一个6:表示当前文件的拥有者的权限,6=4+2 可读可写不可执行权限
第二个4:表示当前文件的所属组(同组用户)权限,4=4 可读权限
第三个4:表示当前文件的组外权限,4=4 可读权限

3.常用命令

3.1 基本命令

  • ping 28.4.139.133
  • telnet 28.4.139.133 22
  • sh 1.sh | tee -a 1.log 在屏幕上输出内容并追加到日志
  • top 监控系统状况
  • free -m 查看系统内存使用情况
  • free -h
  • dirname $a 目录名
  • basename $a 文件名
  • hostname -i 显示ip
  • hostname 显示主机名
  • grep test test.txt 查找test字符串所在行
  • grep -i ha test.sh 忽略大小写查找
  • grep -in ha test.sh 忽略大小写查找,并显示行号
  • grep -v ha test.sh 显示出没有ha关键字的行
  • date +%Y%m%d%H%M%S 显示时分秒
  • ha=xiang|yu|fei
    echo $ha|cut -d’|’ -f1 xiao
    echo $ha|sed ‘s/|/@/g’ xiao@mian@yang
  • find / -size +1G | xargs du -h | sort -h
  • pwd 显示当前目录
  • ll -a 显示隐藏文件
  • echo test > 1.txt 覆写 >>追加
  • tail -f test.txt 实时查看文件
  • tail -100 test.txt 查看后100行
  • ls|wc -l 计数
  • nohup sh monitor.sh >> monitor.log 2>&1 & 后台运行并写入日志
  • nohup sh test.sh & 后台永久运行
  • ssh app@192.168.234.130 远程登录到(从一台服务器跳转另一台服务器)
  • chown -R app test/ 改变文件属主
  • chmod +x test.sh 增加执行权限
  • chmod -x test.sh 去除执行权限
  • ps -ef |grep hue 查看进程
  • ps -ef |grep hello |grep -v “grep”|awk ‘{print $2}’|xargs kill 进程号通过xargs传递给kill,杀指定关键字进程(grep -v "grep"去除包含grep的进程行)
  • netstat -an|grep 查看端口
  • rm -rf 递归删除文件/目录 (-r 删除目录及其下所有文件(递归删除) ,-f 即使文件属性为只读(即写保护),亦直接删除(强制删除))
  • cp -r test/ 复制文件
  • cp -f 覆盖
  • mv 移动、重命名
  • mv -f 覆盖
  • Tab按键—具有『命令补全』和『档案补齐』的功能
  • Ctrl+c按键—让当前的程序『停掉』
  • ls -lrt 按时间排序
  • head -100 test.txt 查看前100行 (head、tail 默认10行)
  • whatis ls 查看用途
  • man ls 查看帮助文档
  • cat 1.txt
  • cat -n 1.txt -n对输出的所有行编号
  • hostroy:查看历史执行过的命令
    !显示的序号 重复执行
    ! 部分字符串(匹配最近执行的)
  • alias[别名]=[指令名称] alias lx=ls
  • mysql -h 11.20.111.14 -u datawind -p
  • unix2dos 1.txt
  • $1 $? $# 参数个数 $@参数列表
    • more 查看文件
  • less 查看文件 并且可以搜索 /向下搜索 ?向上
  • 总结下more 和 less的区别:
    1. less可以按键盘上下方向键显示上下内容,more不能通过上下方向键控制显示
    2. less不必读整个文件,加载速度会比more更快
    3. less退出后shell不会留下刚显示的内容,而more退出后会在shell上留下刚显示的内容
    4. less / 查找 n下一个 N上一个,space向下翻页 b向上

3.2 两台Linux服务器之间复制文件

scp(secure copy)scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密

  • scp test.sh app@192.168.234.130:$PWD 复制文件到当前目录
  • scp -r test/ app@192.168.234.130:$PWD 复制文件夹
  • scp -P 63225 /tmp/local.txt root@192.168.1.3:/root 以下方式适用于对方服务器端口不是22的情况(这里端口指的是ssh端口), 将本地机器/tmp/local.txt复制到远程服务器(端口为63225)的/root目录下

3.3修改环境变量

  • vi ~/.bashrc //修改环境变量
  • source ~/.bashrc //立即生效
  • echo $PATH //查看环境变量

login shell:此种方式登录时,shell会重新读取/etc/profile和~/.bash_profile来应用新的环境变量。
non-login shell:此时shell不会读取/etc/profile和/.bash_profile,而是读取/.bashrc来应用新的环境变量。话说标题是区别与影响,
su切换用户没有获取用户的环境(当时用的命令是"su xxoo",
这里xxoo为要切换的用户,以root身份执行的此命令),看来问题就在这倆login方式,根据现象我们可以判断 su xxoo执行了non-login shell。
su app 默认情况下是执行的non-login shell,因为要执行login shell需要在su后面添加参数"-“或”-l"或"–login"。所以要在su之后获取用户的环境变量,需要执行类似"su - xxoo"之类的命令。
~/.bash_profile对当前用户新打开的bash生效
~/.bashrc对所有用户新打开的bash生效

在profile文件末尾添加JDK路径:(shitf + g)
##HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH= P A T H : PATH: PATH:HADOOP_HOME/bin
export PATH= P A T H : PATH: PATH:HADOOP_HOME/sbin

source /etc/profile.d/my_env.sh 生效

3.4 linux打包、解压

zip

  • zip -r test.zip test
  • unzip user.zip -d /usr/local/bigdatacase/dataset 解压到指定的目录

tar

  • tar -cvf etcbak.tar etc/ 打包一个tar
  • tar -xvf etcbak.tar 解开一个tar

tar.gz

  • tar -cvzf etcbak.tar.gz etc/ 打包压缩一个tar.gz
  • tar -zxvf test.tar.gz -C /usr/local 解压到指定的目录

3.4 find

  • find / -depth -name hdfs 查找hdfs目录
  • find / -name test* 查找文件
  • find / -size +1G 查找大于1G的文件

4.shell脚本相关

shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口

4.1 常用语句

  • sed -i “s/jack/tom/g” test.txt
  • -f 文件是否存在
  • -n 变量是否为空
  • -ne 数值不等于
  • -eq 数值等于
  • echo ${line##*/} 去掉最右一个/左边
  • echo ${line%/*} 去掉最右一个/右
  • shell中&&和||的用法
    命令之间使用 && 连接,实现逻辑与的功能。
    只要有一个命令返回真(命令返回值 $? == 0),后面的命令就不会被执行。
    例:判断是否为目录
    test -d $1 && echo “$1 is a dictory” && exit 0
    echo " $1 is not a dictroy"
    exit 1
  • case用法
    case $1 in
    1)
    echo 1
    ;;
    2)
    echo 2
    ;;
    esac

4.2 脚本调试

  • 直接调试
    echo输出中间值
  • 使用调试命令
    Shell本身提供一些调试方法选项:
    基本写法: sh [-nxv] 脚本名字
    参数:
    -n,读一遍脚本中的命令但不执行,用于检查脚本中的语法错误。
    -v,一边执行脚本,一边将执行过的脚本命令打印到标准输出。
    -x,提供跟踪执行信息,将执行的每一条命令和结果依次打印出来。

4.3配置文件

./ bak.cfg 导入变量
./ common.sh 导入函数

4.4 source

source .bash_rc
. test.sh 在当前进程中执行命令,而不是另起子进程
./ test.sh 和 test.sh 会另起进程

4.5 管道

在shell中,我们通常使用符合‘|’来表示管道
管道的定义
管道就是一个进程与另一个进程之间通信的通道,它通常是用作把一个进程的输出通过管道连接到另一个进程的输入。

5.其他

5.1 linux网速慢

亲测有效的方法为:
(1)在终端运行:sudo gedit /etc/modprobe.d/iwlwifi.conf
(2)在打开的这个配置文件中空白处添加:options iwlwifi 11n_disable=1
(3)保存文件并重启。

5.2 xshell使用

view-compose-compose pane,左下角选to all sessions,可同时操作多个终端
sz下载 rz上传

5.3 ping

ping -c1 $destination_ip &>/dev/null
ping后的-c1参数代表的是本主机向目标主机发送的最多测试包数。
&>为重定向 &>/dev/null /dev/null 是Linux里的无底洞,任何的 output 送去了无底洞就再也没了
nohup sh monitor.sh >> monitor.log 2>&1 &
用 >/dev/null 2>&1 这样的写法.这条命令的意思是将标准输出和错误输出全部重定向到/dev/null中,也就是将产生的所有信息丢弃

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值