ace_lee

数据库一年级

导航

Linux常用命令List

Posted on 2017-03-15 12:05  ace_lee  阅读(1783)  评论(0编辑  收藏  举报

 参考《linux命令行大全》

一.文件命令

cd - 切换为之前目录

wc -l -w file

cmd --help

apropos keyword

apropos cpu >

type foo 检查命令类型,是否已被占用

alias foo='cd;ll;cd -'

foo



ll /etc/passwd > pw.txt (输出重定向时,>自动创建不存在的文件)

> file (删除一个文件)



cmd >> file 文件尾部追加,不存在则创建之



0--标准输入文件

1--标准输出文件

2--标准错误文件

cmd 2> err.txt

cmd &> outerr.txt

cmd 2> /dev/null



cat f1 f2 > f3 文件合并

$ cat (等待键盘输入)

$ cat -ns file 删除空行,且对行编号

ctrl-D (文件触底,end of file



cmd | tee file | grep pattern



echo a{A{1..2},B{3..4}}

aA1 aA2 aB3 aB4



mkdir {2015..2016}-0{1..9}

2015-01

2015-02

2015-03





二.命令行键盘编辑技巧

1.光标移动

ctrl-A 光标到行首

ctrl-E 光标到行尾

CTRL-F 前移一个字符

CTRL-B 后移一个字符

ALT-F 前移一个字

ALT-B 后移一个字



2.文本编辑

ctrl-D 删除字符

ctrl-T 前字符替换

Alt-U 大写转换



3.剪切复制

ctrl-K 剪切光标到行尾

ctrl-U 剪切光标到行首

ALT-D 剪切光标到词尾

ALT-Backspace 剪切光标到词首

ctrl-Y 复制kill-ring缓冲区到光标


Tab命令自动补齐

ls l(Tab)---ls log

 

!88 --执行history中第88行命令

!! 执行history最后一行命令

4.权限

id

cat /etc/passwd

cat /etc/group


$ su -c 'command'

sudosu区别:

执行有限条指令;

sudo无需输入root密码,只输用户密码;

不启动新shell环境,不加载另一个用户环境

进程

ps      只显示当前会话终端进程

ps x    显示所有进程

ps aux

gedit &    后台运行进程,ctrl-c无法中断

jobs      查看终端所有作业

fg %jobid    进程回到前台运行

bg %jobid 进程回到后台


ctrl-z 暂停前台进程

 

kill [-signal] PID…

kill -SIGHUB/1 PID/%jobid 前台程序终止,后台进程重新初始化

kill -INT PID/%jobid 中断信号,终止程序

killall [-u user] [-signal] name…

 

pstree 进程树

vmstat 5 5s输出资源使用快照,mem,swap,IO

free -m

du

tail -f /var/log/messages 实时检测系统的好方法

mount

umount


变量

1.变量显示

set 显示环境变量/shell变量

printenv USER 仅显示环境变量USER

echo $USER

PATH=$PATH:$HOME/bin

export PATH 保证shell子进程能使用PATH变量

gedit file


2.变量扩展

ls -l $(which cp)

` ’ “区别

ls -l `which cp` 反引号` 等同于 $,作为命令替换

ls -l "my test.txt" 双引号""将特殊字符($ / `除外)视为普通字符

echo "$(cal) "

echo '$(cal)' 单引号‘’抑制所有扩展

$(cal)

 

echo "money \$:5" 反斜杠阻止双引号内特殊字符($ ! & 空格等)扩展

 

VIM命令

1.光标移动











 

shift ^ 本行开头

shift $ 本行末尾

W 下一个单词处

B 上一个单词处

number-shift-G 移到第number

shift G 至文件最后一行

















 

 

2.查找替换

















 


%s/word1/word2/gc 全局替换,%指代^~$

 

3.复制/粘贴/删除















 


















4.编辑模式—插入













 

5.外部命令模式















 




 

:n 切换到下一文件

N 切换到上一文件



软件安装

1.RPM安装

rpm -qa package 列出所有安装软件 q-query a-all

rpm -q packname 查询pack是否安装



2.源码安装

wget src

tar zxvf src.tar.gz

./configure

make

#make install

 

网络

ping baidu.com

netstat -ie 显示网卡信息

 

文件查找

locate fname 以文件名查找,无法查最新

find ~ [-print] | wc -l 计算行数

find ~ -type f -name “*.jpg” -size +1M | wc -l

find ~ \(-type f -not -perm 0600 \) -or \( -type d -not -perm 0700 \) and默认,or显式

find ~ -type f -name “*.jpg” -print/delete/ls

find ~ -type f -name “*.jpg” -exec ls -l '{}' ';' 每搜到一个执行一次命令

find ~ -type f -name “*.jpg” -exec ls -l '{}' '+' 结果集只执行一次命令

find ~ -type f -name “*.jpg” -ok ls -l '{}' ';' {}代表当前路径,-ok交互式执行自定义操作

find ~ -type f -name “*.jpg” -print | xargs ls -l xargs处理stdin信息并转化为命令输入参数表

find ~ -type f -name “*.jpg” -print0 | xargs --null ls -l 以空字符分隔参数



归档备份

1.压缩解压

gzip fname

gzip -tv f.gz 检查完整性/显示详细信息

gunzip fname

zcat f.gz | less 查看压缩文件内容

bzip2gzip 高压缩低速度

linuxgzip>bzip2>zip(用于与windows交换文件)

 

tar

tar mode[options] pathname以 相对路径 处理处理 文件名路径

mode

c create

x extract

r apppend

t list the contents of an archive

 

tar cf file.tar path

tar tf file.tar

tar tvf file.tar

tar zxvf file.tar

 

find ~ -name 'file-a' | -exec tar rf file.tar '{}' '+'

find ~ -name 'file-A' | tar czf play.tgz -T -

  1. -T tar命令从文件(此处为stdout文件)中读取文件路径名列表,而不是从命令行
  2. - 代表标准输入输出stdin/stdout文件(这里是stdout文件,即屏幕所看到的内容)
  3. find默认action-print
  4. 举例find play -name 'file-A' | tar czf play.tgz -T file.list

#cat file.list

./.profile

./.bashrc

./dbootstrap_settings

./usr.include.txt

./.viminfo



Regular Expresstion

支持命令find locate vim less

grep [options] regex file… #查找匹配行

-i 忽略大小写

-v 输出不匹配行

-h不输出文件名,只输出匹配内容

BRE基本正则表达式元字符:( )^ $ . * \为元字符)

ERE扩展正则表达式元字符: +-*\ ()[]{} ^$ .| ? ' '括起避免扩展,\为文字字符)

# grep -h '^zip' file

zip1

zip2

#grep -h 'zip$' file

1zip

2zip

# grep -h '^zip$' file

zip

grep -Eh '^(bz|gz|zip)' file

匹配电话号码(nnn)nnn-nnnnnnn nnn-nnnn表达式:

grep -E ===> egrep 扩展REG

egrep '^\(?[0-9]{3}\)? [0-9]{3}-[0-9]{4}$' phone.txt #(,)出现01

find ~ -regex '.[^-_./0-9a-zA-Z].*' findtest选项支持regex

locate --regex 'bin(bz|gz|zip)'

zgrep -El 'regex | regular expression' . zgrep对压缩文件进行搜索



文本处理

排序

sort -t ';' -k 3.7nbr -k 4.1nbr file | uniq | head

t为指定分割符;

-k 3.7nbr 3个字段第7字符为关键字,忽略开头空白(b),逆序(r),数字排序(n

uniq只对已排序文件有效

^I – 制表符Tab

截断

cat -A

cut -d ':' -f 1 /etc/passwd | head

paste data.txt version.txt

比较

cat f1 f2 逐行比较已排序文件f1,f2

diff -c f1 f2 上下文格式输出,+多,-

 







diff -u f1 f2









diff -Naur fold fnew > diff_file

patch < diff_file

-N, --new-filetreat absent files as empty

-a: treat all files as text

-r : recursively compare any subdirectories found



替换删除tr

echo “i love linux” | tr a-z A-Z 替换

tr -d '\r' < dos_file > unix_file 删除dos文件回车符\r

sed 's/old/new/g

sed -n '1,5p' file

nl text 对文本行编号