参考
https://www.cnblogs.com/caozy/p/9261224.html
约定俗成:
bin (binaries)存放二进制可执行文件
sbin (super user binaries)存放二进制可执行文件,只有root才能访问
etc (etcetera)存放系统配置文件
usr (unix shared resources)用于存放共享的系统资源
home 存放用户文件的根目录
root 超级用户目录
dev (devices)用于存放设备文件
lib (library)存放跟文件系统中的程序运行所需要的共享库及内核模块
mnt (mount)系统管理员安装临时文件系统的安装点
boot 存放用于系统引导时使用的各种文件
tmp (temporary)用于存放各种临时文件
var (variable)用于存放运行时需要改变数据的文件
(1).查看文本文件
cat a.txt 一次性显示整个文件内容
more a.txt 可以分页看(翻页:空格,往回翻:b ,退出: q或者 Ctrl+C)
less a.txt 不仅可以分页,还可以方便地搜索,回翻等操作(翻页:空格,往回翻:↑,往下翻:↓,退出:q或者 Ctrl+C)
tail -10 a.txt 查看文件的尾部的10行
tail -f user.log 实时刷新显示文件的尾部,这条命令对于观察调试程序的运行非常重要
head -20 a.txt 查看文件的头部20行
注:ctrl+c 结束查看
grep‘haha’./* 打印当前目录下所有文件中含有‘haha‘的地方(支持正则表达式)
grep -c‘haha’./* 显示匹配到的行数
grep -r‘haha’./* 对子目录也进行遍历搜索
grep -l‘haha’./* 只显示命中的文件名
grep -n‘haha’./* 显示命中的行号
grep -ld skip‘haha’./* 显示命中的文件名,不要搜索子目录
参数含义:
-r 递归搜索子目录
-l 只列出有匹配行的文件名
-n 列出匹配行的行号
-d skip 不搜索子文件夹
常用grep跟其他命令组合使用来查找我们关心的信息(管道)
示例:
service --status-all | grep ‘httpd‘ 在当前系统所有服务中查找‘httpd‘
netstat -nltp | grep ‘22‘ 查找监听‘22‘端口的服务程序
ps –ef | grep Java 查找系统中当前运行的java进程
find ./ -name ‘*.txt‘ 查找以.txt结尾的文件(会遍历当前目录)
find ./ -name ‘install*’ 查找以install开头的文件或文件夹
find ./ -type f 查找普通文件
find ./ -type l 查找连接文件(快捷方式)
?locate:原理是updatedb会把文件系统中的信息存放到数据库databases中(但一般一天才执行一次,所以locate找不到新创建的文件,需要先手动执行updatedb,再执行locate),locate从数据库中读数据;
? find:在目录结构中搜索文件,并执行指定的操作
语法:find pathname -options [-print -exec ...]
pathname :为 find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录(find查找范围为目标目录及其子目录所有文件及目录);
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为‘command‘ { } ;,注意{ }和;之间的空格;
-print: find命令将匹配的文件输出到标准输出;
find . -name ‘*.log‘ -exec grep -i hello {} \; -print
:在当前目录及子目录下查出文件名后缀为.log的文件并且该文件内容包含了hello字样并打印,-exec 命令 {} \表示对查出文件操作,-i表示不区分大小写;find . -name ‘*.log‘|grep hello
:在当前目录及子目录下查出文件名后缀为.log的文件并且文件名包含了hello字样(grep用来处理字符串);
grep -i ‘HELLO‘ . -r -n :在当前目录及子目录下查找文件内容中包含hello的文件并显示文件路径(-i表示忽略大小写)
whereis java :查看安装的软件的所有的文件路径(whereis 只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令)
cat [-n] 文件名 :显示文件内容,连行号一起显示
less 文件名 :一页一页的显示文件内容(搜索翻页同man命令)
head [-n] 文件名 :显示文件头n行内容,n指定显示多少行
tail [-nf] 文件名:显示文件尾几行内容,n指定显示多少行,f用于实时追踪文件的所有更新,常用于查阅正在改变的日志文件(如tail -f -n 3 a.log 表示开始显示最后3行,并在文件更新时实时追加显示,没有-n默认10行)
cat -n a.txt |grep 搜索的关键词 :显示包括关键词所在行(连行号一起显示)
less a.txt|grep git :显示关键词所在行,管道符”|”它只能处理由前面一个指令传出的正确输出信息,对错误信息信息没有直接处理能力。然后传递给下一个命令,作为标准的输入;
cat /etc/passwd |awk -F ‘:‘ ‘{print $1}‘ :显示第一列
> 重定向输出,覆盖原有内容;
>> 重定向输出,又追加功能;
cat /etc/passwd > a.txt 将密码文件输出定向到a.txt中
cat /etc/passwd >> a.txt 输出并且追加
ifconfig > ifconfig.txt 保存ip信息到文件中
? 单纯tar仅为打包(多个文件包成一个大文件),加上参数-j(bzip2格式.bz2)、-z(gzip格式.gz)可以备份、压缩(-c)、解压(-x),备份一般比压缩多加参数-p(保留原本文件的权限与属性),-C可以指定解压到特定目录;bzip2、gzip只能对单一文件压缩;
file 文件名 :查文件类型(可看是用哪一种方式压缩的)
tar -zcvf /opt/c.tar.gz ./a/ :压缩tar.gz(把当前目录下的a目录及目录下所有文件压缩为 /opt/目录下的c.tar.gz,这样tar -zxvf c.tar.gz解压出来带有目录a)
tar -jcvf c.tar.bz2 ./a/ :压缩tar.bz2(把当前目录下的a目录及目录下所有文件压缩到当前目录下为c.tar.gz2)
zip -r c.zip ./a/ :压缩zip(把当前目录下的a目录及目录下所有文件压缩到当前目录下为c.zip
bzip2 -d -k file1.bz2 : 解压一个叫做 ‘file1.bz2‘的文件
gzip -d file1.gz : 解压缩一个叫做 ‘file1‘的文件
常用参数:
-c:创建一个新tar文件
-v:显示运行过程的信息
-f:指定文件名
-z:调用gzip压缩命令进行压缩
-t:查看压缩文件的内容
-x:解开tar文件
zip test.txt.zip test.txt 也是打包并压缩
unzip test.txt.zip 解包并解包
相对路径和绝对路径说明:
现在在/home/dijia478/下
./a/b.txt和a/b.txt都表示相对路径,当前目录下的a文件夹下的b.txt文件
/home/dijia478/a/b.txt表示绝对路径,根目录下的home文件夹下的dijia478文件夹下的a文件夹下的b.txt文件
cd ./a 切换到当前目录的a文件夹
cd .. 切换到上一层目录
cd / 切换到系统根目录
cd ~ 切换到用户主目录
cd - 切换到上一个所在目录
pwd 显示当前所在目录的绝对路径
ls /path/显示该目录所有文件或文件夹名
ls -a 显示所有文件或文件夹名(包含隐藏的)
ls -l 按列表显示所有文件或文件夹,缩写成ll
ll -h 友好的显示文件大小(显示成K,MB,GB)
mkdir app 创建app文件夹
mkdir –p app2/test 级联创建aap2以及test文件夹
rmdir app 删除app目文件夹(需要是空文件夹)
rm a.txt 删除a.txt文件,删除需要用户确认,y/n
rm -f a.txt 不询问,直接删除a.txt文件
rm -r a 递归删除a文件夹(无论是否有内容)
rm -rf a 不询问递归删除a文件夹(慎用)
rm -rf * 删除当前目录下所有内容(最好别用)
rm -rf /* no 作 no die(Linux系统就玩完了)
cp a.txt b.txt 将a.txt复制为b.txt文件
cp a.txt ../ 将a.txt文件复制到上一层目录中
mv a.txt ../ 将a.txt文件移动到上一层目录中
mv a.txt b.txt 将a.txt文件重命名为b.txt
touch a.txt 创建一个空的a.txt文件
echo "good good study" > a.txt 把">"左边的输出内容放到右边的文件里去,如果存在就覆盖,如果不存在就创建
vi a.txt 用文本编辑器编辑一个文件,如果不存在就创建
vi编辑器
vi filepath 打开文件
按Esc键 切换到命令行模式
切换到插入模式:
i 在当前位置生前插入
I 在当前行首插入
a 在当前位置后插入
A 在当前行尾插入
o 在当前行之后插入一行
O 在当前行之前插入一行
dd 删除整行
7 dd 向上删除7行
U 回退(类似于windows 中 ctrl + z)
R 替换
:(冒号) 切换到底行模式
:q 退出
:wq 保存并退出(shift + zz也可以保存)
:q! 不保存退出
echo $JAVA_HOME 输出变量JAVA_HOME的值
whoami 查询当前登陆的用户名
which ls 查询ls命令的$PATH路径
mkdir test && cd test
只有在 && 左边的命令返回真(命令返回值 $? == 0),&& 右边的命令才会被执行。
只要有一个命令返回假(命令返回值 $? == 1),后面的命令就不会被执行。
df -h 查看磁盘空间状态信息
du -sh * 查看指定目录下所有子目录和文件的汇总大小
free 查看内存使用状况
top 查看实时刷新的系统进程信息
ps -ef 查看系统中当前瞬间的进程信息快照
ps -ef | grep myshell.sh 搜索myshell进程的信息
kill -9 pid 杀掉进程(-9 表示强制杀死)
检查网络连通性:
ping 要测试的ip
查看ip地址
ifconfig 查看所有网络设备的地址信息
ifconfig eth0 查看指定的eth0以太网卡的地址信息
列出系统所有应用服务状态:
service --status-all
查看指定服务运行状态:
service servicename status
启动服务:
service servicename start
停止服务:
service servicename stop
列出所有服务的随机自起配置:
chkconfig --list
关闭服务的随机自起:
chkconfig servicename off
开启服务的随机自起:
chkconfig servicename on
常用示例:
重启网络服务:service network restart
停止httpd:service httpd stop
启动httpd:service httpd start
关闭防火墙服务:service iptables stop
关闭防火墙自动启动:chkconfig iptables off
指令:netstat
netstat常用示例:
netstat -natp
netstat -nltp
netstat -naup
netstat -an | grep 3306 查询3306端口占用情况
常用参数解释:
-a 显示所有连接和监听端口
-l 只显示监听进程
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-p 显示建立相关链接的程序名
原文:https://www.cnblogs.com/fengchuiyizh/p/12301361.html