linux

Linux_20200731

命令详细:

https://blog.csdn.net/wojiaopanpan/article/details/7286430

各类功能

其他常用

tar -xzvf DnnClass2.tar.gz 解压
unzip -o ml-1m.zip
删除非空目录的方法shutil.rmtree()以及空目录的方法os.rmdir()

#查看历史命令时间:
[root@localhost ~]# export HISTTIMEFORMAT="%F %T `whoami` "  
[root@localhost ~]# history  |  more 

ll   #查看文件修改人

#复制
如果dir2目录不存在,则可以直接使用
cp -r dir1 dir2
即可。
如果dir2目录已存在,则需要使用
cp -r utils/.   utils2


free查看内存
查看最大进程数 sysctl kernel.pid_max
ps -eLf | wc -l查看进程数
 
 文件传输:scp    [email protected]:/home/pc/UserData/cqj/project/temp/2020tencent/code/test.py d:/
 ssh username@跳板机ip地址
### 

vim

gg           : 跳转到文件头
Shift+g   : 跳转到文件末尾
行数+gg : 跳转到指定行,例跳转到123行:123gg
查看文件 cat,vim

ps

 ps -A 显示所有程序
最常用的方法是ps aux,然后再通过管道使用grep命令过滤查找特定的进程,然后再对特定的进程进行操作。

ps -aux|grep chat.js :查找相关进程 包括自己

ps -aux|grep vu_vids7day| grep -v grep  #排除自己


ps -aux|grep 33905| grep -v grep  #排除自己
kill -8 PID #杀掉

ps -aux|grep MMOE_video_v3_dwell5vid| grep -v grep 

--比如找到后kill
ps -aux|grep 
ps -aux|grep wangze| grep -v grep 


pstree -p `ps -e | grep  tongming | awk '{print $1}'` | wc -l
查看某个用户已经使用的线程数:

pstree -p `ps -e | grep  用户名 | awk '{print $1}'` | wc -l

查看某个进程的线程数:

ps -T -P [pid] | wc -l




2screen

#https://blog.csdn.net/jackliu16/article/details/80058561
screen -S david
screen vi /tmp/david.txt


1.使用指令screen -S name  打开新窗口,输入程序运行后,使用快捷键Ctrl+A+D,关闭窗口即可实现程序的后台运行。
2.要想重现窗口,使用指令screen -r lgbtest
3.要想关闭后台进程,先使用screen -ls查看所有后台窗口,从中可以看到进程号,再使用kill 进程号关闭进程。
screen -wipe清掉kill窗口
#https://blog.csdn.net/C_chuxin/article/details/84328644

四、常用screen参数
screen -S yourname -> 新建一个叫yourname的session
screen -ls -> 列出当前所有的session
screen -r yourname -> 回到yourname这个session
screen -d yourname -> 远程detach某个session
screen -d -r yourname -> 结束当前session并回到yourname这个session

C-a ? -> 显示所有键绑定信息
C-a c -> 创建一个新的运行shell的窗口并切换到该窗口
C-a n -> Next,切换到下一个 window 
C-a p -> Previous,切换到前一个 window 
C-a 0..9 -> 切换到第 0..9 个 window
Ctrl+a [Space] -> 由视窗0循序切换到视窗9
C-a C-a -> 在两个最近使用的 window 间切换 
C-a x -> 锁住当前的 window,需用用户密码解锁
C-a d -> detach,暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态,此时在 screen session 里,每个 window 内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响。 
C-a z -> 把当前session放到后台执行,用 shell 的 fg 命令则可回去。

3内存

https://blog.csdn.net/Alex123980/article/details/90210511 内存占用

du的英文原义为“disk usage”,含义为显示磁盘空间的使用情况,统计目录(或文件)所占磁盘空间的大小;
fdisk 命令 用于磁盘分区;


```
1、df -h 命令查看整体磁盘使用情况

2、 
使用 du -ah --max-depth=1  /    可以查看当前录下各个文件占用情况
du -sh : 查看当前目录总共占的容量。而不单独列出各子项占用的容量 
du -lh --max-depth=1
: 查看当前目录下一级子文件和子目录占用的磁盘容量。
```


查看硬件信息cpu内存磁盘网卡

https://www.cnblogs.com/ggjucheng/archive/2013/01/14/2859613.html

awk

$0变量:它指的是整条记录。如$ awk ‘{print $0}’ test将输出test文件中的所有记录。
变量NR:一个计数器,每处理完一条记录,NR的值就增加1。如$ awk ‘{print NR,$0}’ test将输出test文件中所有记录,并在记录前显示记录号。

6.2. 域
记录中每个单词称做“域”,默认情况下以空格或tab分隔。awk可跟踪域的个数,并在内建变量NF中保存该值。如$ awk ‘{print $1,$3}’ test将打印test文件中第一和

第三个以空格分开的列(域)。

6.3. 域分隔符
内建变量FS保存输入域分隔符的值(默认是空格或tab)。我们可以通过-F命令行选项修改FS的值。如$ awk -F: ‘{print $1,$5}’ test将打印以冒号为分隔符的第一,第五列的内容。
可以同时使用多个域分隔符,这时应该把分隔符写成放到方括号中,如$awk -F’[:\t]‘ ‘{print $1,$3}’ test,表示以空格、冒号和tab作为分隔符。
输出域的分隔符默认是一个空格,保存在OFS中。如$ awk -F: ‘{print $1,$5}’ test,$1和$5间的逗号就是OFS的值。

1netstat 端口

查看某个端口被哪个服务或进程id占用

netstat -tunlp | grep 端口号
netstat -ano | grep 端口号
 lsof -i : 端口号
2.查看所有的端口号被哪些进程占用
使用命令:netstat –apn

找文件

https://mp.weixin.qq.com/s/xZSOQFXTb9q–OAHXnSMCg

find / -name “ yarn-site.xml”
find . -name "hive1.txt"
find / -name user

2、locate:
locate 命令无需指定路径,在一个叫 mlocate.db 的数据库下搜索,每天早上由 cron 工具自动更新一次,速度快
 sudo updadb  可以手动更新
 3、which 命令主要用来查找可执行文件的位置,位置指定在 $PATH 及 $MANPATH 环境变量下的值,默认情况下,which 命令将显示可执行文件的第一个存储位置
 which cd
 4\whereis 命令会在系统默认安装目录(一般是有root权限时默认安装的软件)查找二进制文件、源码、文档中包含给定查询关键词的文件
查看文件时间
stat *
ll查看文件更新时间



5.根据文件或者文件夹信息查询对应哪个目录下

 find / -name 文件或文件夹名字

比如 find / -name httpd.conf

find / -amin -10 # 查找在系统中最后10分钟访问的文件
find / -atime -2 # 查找在系统中最后48小时访问的文件
find / -empty # 查找在系统中为空的文件或者文件夹
find / -group cat # 查找在系统中属于 groupcat的文件
find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件
find / -mtime -1 #查找在系统中最后24小时里修改过的文件
find / -nouser #查找在系统中属于作废用户的文件
find / -user fred #查找在系统中属于FRED这个用户的文件
————————————————
版权声明:本文为CSDN博主「马万明」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/mawming/article/details/45040771

cd /回到根目录

定时

编辑:crontab -e 

*/1 * * * * sh /data/chenqiaojun/myDingshi.sh  
*/1 * * * * echo "test"  >> /data/chenqiaojun/tt.txt


*/1 * * * * sh /home/pc/UserData/cqj/project/temp/tmp/myshell.sh >>/home/pc/UserData/cqj/project/temp/tmp/sh.txt
*/1 * * * * sh /home/pc/UserData/cqj/project/temp/tmp/myshell.sh
59 8-23/1   * * *   qq      /home/qq/anaconda3/bin/python /home/qq/test.py --8-23点的每一小时的59分
查看设置的定时任务:crontab -l
删除定时任务:crontab -r

41 /1 * * * sh /data/chenqiaojun/myDingshi2hot.sh 
创建定时sh
'''
#!/bin/bash
sudo python test.py \r
echo "4执行完毕"
exit 0
'''

minute:代表一小时内的第几分,范围 0-59。
hour:代表一天中的第几小时,范围 0-23。
mday:代表一个月中的第几天,范围 1-31。
month:代表一年中第几个月,范围 1-12。
wday:代表星期几,范围 0-7 (07都是星期天)。

who:要使用什么身份执行该指令,当您使用 crontab -e 时,不必加此字段。
command:所要执行的指令。

反思:路径很重要linux定时

切换用户

sudo -s
su xiaoming

关于su和su -的区别

切换用户是可以使用su tom或者su - tom来实现,但是两者有区别
su只是切换身份,但shell环境仍然是原用户的shell
su -是连用户的shell环境一起切换
nohup 后台进程 ,
kill -9 pid
ps aux | grep myscript.sh
或者pgrep


xshell传文件

rz,sz是便是Linux/Unix同Windows进行ZModem文件传输的命令行工具。
rz -be #以二进制方式,默认为文本方式

CUDA

查看 CUDA 版本:

cat /usr/local/cuda/version.txt
1
查看 CUDNN 版本:
cat /usr/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
复制环境
conda create -n BBB --clone AAA

2

安装插件Java Bytecode Decomplier:





java -cp “D:\anzhuangbao\IntelliJDEA\IntelliJ IDEA Community Edition 2019.2.1\plugins\java-decompiler\lib\java-decompiler.jar” org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true HuyaBML-1.0-SNAPSHOT.jar src2

问题:

rz 命令传输文件失败,使用rz -be也是传输失败,但是sz传输正常。
原因:用户权限问题

查看用户列表:
cat /etc/passwd|grep -v nologin|grep -v halt|grep -v shutdown|awk -F":" '{ print $1"|"$3"|"$4 }'|more

如果执行人不是wzm,提交后每次审核要等很久

hadoop

查看hadoop

/etc/profile文件修改后立即生效 ,可以使用如下命令: source /etc/profile
hadoop fs -ls /  --//显示hdfs上根目录下目录或文件, 列出文件
hadoop fs -ls /user
$ whereis hadoop
hadoop: /usr/local/hadoop /data/apps/hadoop/bin/hadoop.cmd /data/apps/hadoop/bin/hadoop
$ vim /usr/local/hadoop 
sudo hadoop fs -ls hdfs://huyamlcluster/user/hive/warehouse/huya_bml.db/video_embeddings_large200/dt=2020-07-13/userAnchorScore_200
--删除
 hdfs dfs -rm -r -f /hbase
 sudo -u hdfs hadoop fs -ls / 
 
 
 --2
 创建文件夹
hdfs dfs -mkdir /data
上传文件
hdfs dfs -put me.txt /data
//保留原文件
hdfs dfs -copyFromLocal weibo.txt /middle/weibo
//不保留原文件
hdfs dfs -moveFromLocal weibo.txt /middle/weibo
查看文件内容
hadoop dfs -text /middle/weibo/weibo.txt
文件复制到本地
hdfs dfs  -get /middle/weibo/weibo.txt
hadoop fs -copyToLocal /middle/weibo/weibo.txt
删除文件或文件夹
hadoop fs -rmr /middle/weibo
集群间传数据
hadoop distcp hdfs://qq58053439:9000/weather   hdfs://qq:9000/middle

--3
haddop fs -ls /     (查询目录)
hadoop fs -mkdir /test      (在根目录下创建一个目录test)
hadoop fs -put ./test.txt /test     (将本地的test.txt文件上传到HDFS根目录下的test文件夹中去)   
hadoop fs -copyFromLocal ./test.txt /test   (同上)
hadoop fs -get /test/test.txt   (从HDFS目录中获取文件)
hadoop fs -getToLocal /test/test.txt    (同上)
hadoop fs -cp /test/test.txt /test1 (HDFS内部的复制)
hadoop fs -rm /test1/test.txt   (移除)
hadoop fs -mv /test/test.txt /test1  (如果两个参数中所包含的文件是再用一个文件夹下则该指令为重命名,如果两个文件不再同一个文件夹下则该指令为移动)
hadoop fs -rm -r /test1  (删除文件夹)
hadoop fs -help ls (查阅帮助,该命令为查看ls命令)
hadoop fs -cat README.txt(查看README.txt文件的内容,hadoop的cat命令的输出也可以使用管道传递给Unix 命令的head:hadoop fs -cat README.txt | head;Hadoop也支持tail命令查看最后一千字节。例如要查阅README.txt最后一千个字节,可以执行如下命令:hadoop fs -tail README.txt)


HDFS,它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。

问题:Permission denied: user=root, access=WRITE, inode="/":hdfs:supergroup:drwxr-xr-x

其实是这样的,/这是文件的所有者是HDFS 权限为755 也就是只有HDFS才能对这个文件进行sudo的操作

hive

sudo -s su wangzengming1
source /etc/profile
hive
show databases;
use huya_bml;
show tables;
desc licolico_video_hot_recomstatus;
select  * from licolico_video_hot_recomstatus where dt='20200716' limit 10;
select  count(*) from licolico_video_hot_recomstatus where dt='20200716' limit 10;
show partitions licolico_video_hot_7day;

lzo

https://blog.csdn.net/qq_26369213/article/details/79450455#%E9%85%8D%E7%BD%AEhadoop%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F

sudo bin/hadoop dfs -chmod -R 755 /

lzo是索引
启用lzo的压缩方式对于小规模集群是很有用处,压缩比率大概能降到原始日志大小的1/3。同时解压缩的速度也比较快。

1、编译完lzo包之后,会在/usr/local/hadoop/lzo/生成一些文件。
2、gpl-packaging的作用主要是对压缩的lzo文件创建索引,否则的话,无论压缩文件是否大于hdfs的block大小,都只会按照默认启动2个map操作。


hadoop压缩方案
单纯hdfs文件,推荐使用lzo格式,解压缩和压缩比都比较均衡,还可以直接使用hadoop fs -text xx.log 查看文件内容
hive推荐使用ORCfile
Hbase推荐使用snappy进行压缩
spark sql和impala,推荐使用parquet

hdfs

查看HDFS集群信息
 

你可能感兴趣的:(linux)