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
# 文字字符
\ 格式化字符,
\r 換行符
/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/\n//g
# 將連續的兩個空行替換成一個空行:
:%s/\n\n/\r/g
# 刪除三行空行:
:%s/^\n\{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/\n//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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章