Linux基础-01常用命令

Linux-基础命令

NeedTODO

数据清洗 -大规模数据清洗的利器 文字解析、文字替换等, 速度远快于replace
https://flashtext.readthedocs.io/en/latest/

文件处理

split

split 文件切割软件

# 按照大小切割文件
split -b 10M a.csv  a.csv.
切割后得到
a.csv.aa a.csv.ab
 
# 字符串分割函数split
str.split(str="", num=string.count(str))
- str :分隔符,默认为空格。
- num :分割次数。

ls 文件长度统计

# 统计当前文件夹下文件的个数:
ls -l |grep "^-"|wc -l

# 统计当前文件夹下目录的个数:
ls -l |grep "^d"|wc -l

# 统计当前文件夹下文件的个数,包括子文件夹里的 :
ls -lR|grep "^-"|wc -l

# 统计文件夹下目录的个数,包括子文件夹里的:
ls -lR|grep "^d"|wc -l

# 统计输出信息的行数
wc -l

sed

sed 文件替换

# 在文件的首行插入指定内容:
sed -i "1i#! /bin/sh -" a 
执行后,在a文件的第一行插入#! /bin/sh -

# 在文件的指定行(n)插入指定内容:
sed -i "niecho "haha"" a 
执行后,在a文件的第n行插入echo "haha"

# 在文件的末尾行插入指定内容:
echo “haha” >> a
执行后,在a文件的末尾行插入haha

# 删除正文首行的#号注释
sed 's/#//g' /etc/crontab
 

# 替换文件中字符串
sed -i "s/str1/str2/g" filname

# 删除a.txt中含"abc"的行,但不改变a.txt文件本身,操作之后的结果在终端显示
sed -e '/abc/d'  a.txt  
# 删除a.txt中含"abc"的行,将操作之后的结果保存到a.log
sed -e '/abc/d'  a.txt  > a.log    
# 删除含字符串"abc"或“efg"的行,将结果保存到a.log
sed '/abc/d;/efg/d' a.txt > a.log    
# 查找多个空格
/s+
# 删除第1000行输出  a不变 b删除一条数据
sed -e '/1000/d'  a> b

# 获取第二行到末尾
sed -n '2,$p'  filename > new_filename
# 删除Linux文件重复行
sort -n filename | uniq


### 删除空行 删除空格/回车组成的空行
sed -i '/^ *$/d' file


# 将目录下所有文件 替换字符串
sed -i "s/d3b387c031dd/1000db7324ff/g" `grep "d3b387c031dd" -rl /u01 `

软件安装

rpm

资源链接:

rpm相关命令

# 查询包版本
rpm -qa | grep vim
# 安装包
rpm -ivh xxxxx.rpm
# 卸载
rpm -e --nodeps vim-minimal-7.4.629-5.el6_8.1.x86_64

yum

yum相关命令

# 安装
yum install  -y vim
# 卸载
yum remove vim
# 重置缓存
yum clean all
yum makecache
#  yum配置目录
 /etc/yum.repos.d/xx.repo
 # 只下载安装包 方法1
yum install yum-plugin-downloadonly -y # centos6之前需要此命令
yum install mysql-server --downloadonly --downloaddir=/data/packages
# 只下载安装包 方法2
yum install yum-utils  -y # 专门的下载工具
yum downloader lsof --resolve --destdir=/data/mydepot/ # 默认不会下载对应的依赖文件,需要添加 resolve参数

# 查看可用的rpm包 
yum list available 'graphviz*'

# yum 下载 rpm 包
yum install --downloaddir=/tmp/whj/ --downloadonly glibc-devel.i686

pip

pip相关常用命令

# 搜索包
pip search xlrd
# 查看包版本
pip list 
# 生成环境依赖文件
pip freeze > requirement.txt
# 下载安装包 方式1
pip --downloadonly --downloaddir=/tmp/  xlrd
# 下载安装包 方式2 - 会下载对应依赖
pip download xx
# 查看可更新包:
pip list  --outdated --format=columns
# 批量下载并更新:
pip install pip-review
pip-review --local --interactive
# 寻找pip中是否存在此安装包
pip search file
# 查看安装包时安装了哪些文件:
pip show --files SomePackage
# 查看哪些包有更新:
pip show --files SomePackage
# 更新一个软件:
pip install --upgrade SomePackage
# 安装
pip install xlrd
# 卸载
pip uninstall xlrd

配置国内pip源

# 配置 国内pip源   ~/.pip/pip.conf
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com

解压压缩

tar

# 压缩常用命令
tar -zcf xxx.tar.gz xxx_dir_xxx

-v 显示详细的处理文件

# 解压常用命令
tar -zxvf xxx.tar.gz

# 解压 xz 压缩包
tar xvJf  node-v6.10.1-linux-x64.tar.xz

zip/unzip

zip -P qwe123 a.zip -r ssss

# zip 参数说明

-P 加密
-r 压缩目录

# 压缩并指定目录
zip -r /home/kms/kms.zip /home/kms/server/kms
# 解压并指定目录
unzip /home/kms/kms.zip -d /home/kms/server/kms

基础命令

配置alias

# ~/.bash_profile
alias pip=" pip --trusted-host mirrors.aliyun.com "

wget

wget参数解释、用法: https://blog.csdn.net/endall/article/details/1571220

# 做站点镜像
wget xxxx -r -np  下载整个目录,不包含上层目录

grep

grep -r 递归查询子目录
grep -i 查询不区分大小写
grep -n 显示查询出来的文件行号
grep -w 精准匹配
grep -l 只显示(包含文件内容的)文件名

grep -rn xxx . “.” 只查询本目录以及其下的目录—公司电脑只有这样才能查询,具体原因,可能是设置了相关权限等

find

忽略大小写 -iname
find / -iname ‘csv

vim

vim键盘图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XcjoyuJM-1580569244503)(https://github.com/fansichao/file/blob/master/picture/Linux%20vi.png?raw=true)]

vim使用技巧

vim使用技巧

# 全局替换
%s/old/new/g
# 指定行数替换
100,120/old/new/g
# 文字字符
 格式化字符,

 换行符
/g 全局替换
%s 全局查找
+ 表重复一次或多次  x+  
/c 确认替换
# 删除文章中的空行
g/^s*$/d
^s*$ :匹配空行,其中^表示行首,s表示空字符,包括空格和制表符,*重复0到n个前面的字符,$表示行尾。连起来就是匹配只有空字符的行,也就是空行。
/d :删除该行
# 删除行尾空格:
:%s= *$==
%s全局查找替换
=为%s命令的分隔符,如果把=换为/,则该命令可以写为:%s/ *$//
” *$”, $表示行尾,*匹配前面0个到n个字符,*前面是空格,因此此正则表达式匹配行尾的0个到n个字符。
==,分隔符没有中间没有内容,表示删除匹配空格, 在这里表示删除行尾空格。
# 去掉文件中^M
^M = Ctrl v + Ctrl m

 
# 删除换行符:
:%s/
//g
# 将连续的两个空行替换成一个空行:
:%s/

/
/g
# 删除三行空行:
:%s/^
{3}//

# 合并行
命令J使两行合并为一行,同时用空格分隔这两行。
# 替换str为str+回车
回车在vim的输入方法是ctrl+V,会得到^,此时再按回车.会得到^M这个就是回车了
因此把全文件所有str换成str回车的语句是:
: 1,$ s/str/str^M/g
^M用上面的方法输入
1,$表示从1到最后一行,s是switch,g是global

### vim删除包含指定字符串的所有行
:g/something/d   # 删除包含something的所有行

.vimrc配置

set nu
set ts=4     # 设置 长度为四个空格
set expandtab # tab键设置为空格
set paste # 智能粘贴
set shiftwidth # 程序自动缩进
set softtabstop=4/8/16 # tab键为四个空格或者制表符,8为制表符,4为空格,可以同时产生制表符和空格

vim-set

Vim中的一些设置

:set fileformat 设置文件格式
:set endofline 设置文件结束符
:set noendofline 取消文件结束符

:%s/
//g 删除换行符
:set textwidth 设置行宽
:set textwidth 设置行边距
:join 合并多行J合并两行


Tips大全

  • env 查看当前环境变量
  • history 查看输入的历史命令
  • chmod 文件授权 需要一层层授权, 或者 chmod -R xxx 授权其下的所有文件以及文件夹
注意:不要拿Decimal和str进行比较,会导致结果完全错误。
注意:字段的格式
  • ctrl + w 回退输入的单词
  • pstree 进程树
  • time python xxxx sh脚本中加time执行可以显示执行的时间详细情况
  • nohup time xxx sh文件中 使用nohup调度多个文件,可以多个文件同时执行,(文件之间不能存在依赖)

Linux文件比对
vimdiff a.txt b.txt # 效果 左右分割 颜色标记显示 (需要安装vim包)
diff -wy --suppress-common-lines a.txt b.txt # 效果 左右分割 推荐使用

查看端口
netstat -lntp | grep 5000

Linux命令去重

常用命令:sort -u xxx

uniq # 去重重复连续出现的记录
sort -u 等价于 sort xxx | uniq

# 删除Linux文件重复行
sort -n test.txt | uniq

删除用户数据

userdel -r xxx # 完全删除用户
userdel xxx # 只能删除部分用户,像/home/xxx等需要手动删除
Linux去重

Linux 查看当前占用CPU或内存最多的几个进程:

1. ps命令
    1. ps -aux | sort -k4nr | head -10
2. top工具
    1. top之后,大写M,按照内存倒序排序
    2. top之后,大写C,按照CPU倒序排序
3. ps -aux | sort -k4,4n

切换用户运行sh脚本
su - fdm -c “Command”

电源关机

poweroff
reboot
shutdown

Linux 登录或注销时执行脚本

分别使用~.bash_profile 和 ~.bash_logout可以做到

tailf、tail -f、tail -F三者区别

tail -f      等同于--follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止
tail -F     等同于--follow=name  --retry,根据文件名进行追踪,并保持重试,即该文件被删除或改名后,如果再次创建相同的文件名,会继续追踪
tailf        等同于tail -f -n 10(貌似tail -f或-F默认也是打印最后10行,然后追踪文件),与tail -f不同的是,如果文件不增长,它不会去访问磁盘文件,所以tailf特别适合那些便携机上跟踪日志文件,因为它减少了磁盘访问,可以省电

程序转入前台或者后台运行 Linux ctrl组合命令

jobs //查看任务,返回任务编号n和进程号
free 查看当前内存使用情况
bg %n //将编号为n的任务转后台运行
fg %n //将编号为n的任务转前台运行
ctrl+z //挂起当前任务
ctrl+c //结束当前任务 发送Terminal到当前的程序,强制结束当前程序,比较暴力
ctrl+d //结束当前任务或退出shell, 发送exit信号
ctrl+|
ctrl+s 暂停屏幕输出
ctrl+q 恢复屏幕输出
ctrl+a 切换到命令行开始
ctrl+e 切换到命令行末尾
ctrl+y 在光标处粘贴剪切的内容

Linux查看系统安转的所有源包

rpm -qa
pcp-pmda-kvm-3.10.6-2.el7.x86_64
unoconv-0.6-7.el7.noarch
texlive-fp-svn15878.0-38.el7.noarch
abrt-python-2.1.11-36.el7.centos.x86_64
libcanberra-gtk3-0.30-5.el7.x86_64

Linux查看virtualenv的所有包

pip freeze
效果如下:
tornado4.3
Tornado-JSON
1.2.1
urlgrabber3.10
urllib3
1.10.2
urwid==1.1.1

原文地址:https://www.cnblogs.com/superscfan/p/12256971.html