netstat查看端口
# 参数
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到
# 查看Linux端口号
$ netstat -anp | grep 80
# 查看服务对应端口
$ netstat -nlp
lsof查看端口
# 查看8080端口号对应的进程
$ lsof -i:8080
ps查看进程
# 查看Linux端口号
# ps 命令用于查看当前正在运行的进程
# grep 是搜索
$ ps -ef | grep 80
# 查看Linux进程
$ ps -ef | grep tomcat
# -aux 显示所有状态
$ ps -aux | grep tomcat
# 查看服务进程
$ ps -aux
ps [选项]
-e 显示所有进程,环境变量
-f 全格式
-h 不显示标题
-l 长格式
-w 宽输出
-a 显示终端上地所有进程,包括其他用户地进程
-r 只显示正在运行地进程
-x 显示没有控制终端地进程
Linux性能监控
# 查看服务cpu利用
$ top
s - 改变画面更新频率
l - 关闭或开启第一部分第一行 top 信息的表示
t - 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示
m - 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示
N - 以 PID 的大小的顺序排列表示进程列表(第三部分后述)
P - 以 CPU 占用率大小的顺序排列进程列表 (第三部分后述)
M - 以内存占用率大小的顺序排列进程列表 (第三部分后述)
h - 显示帮助
n - 设置在进程列表所显示进程的数量
q - 退出 top
# 查看内存使用情况
$ free
下面是对这些数值的解释:
total:总计物理内存的大小。
used:已使用多大。
free:可用有多少。
Shared:多个进程共享的内存总额。
Buffers/cached:磁盘缓存的大小。
第三行(-/+ buffers/cached):
used:已使用多大。
free:可用有多少。
空闲内存 = free + buffers + cached = total - used
# 显示目前所有文件系统的可用空间及使用情形
$ df -h
# 显示当前目录下所有文件和文件夹的大小
$ ls -lh
find文件查找相关
# find <指定目录> <指定条件> <指定动作>
- <指定目录>: 所要搜索的目录及其所有子目录。默认为当前目录。
- <指定条件>: 所要搜索的文件的特征。
- <指定动作>: 对搜索结果进行特定的处理。
# 搜索当前目录中,所有文件名以my开头的文件 -name(文件名需要带后缀)
$ find . -name 'my*'
# 搜索当前目录中,所有文件名以my开头的文件,并显示它们的详细信息。
$ find . -name 'my*' -ls
# 以文件大小来查找 -size n
$ find . -size +1000000c(在当前目录下查找文件长度大于1 M字节的文件 )
# 在当前目录及所有子目录中查找filename(忽略大小写)
$ find . -iname "Hessian.properties"
grep文件内容查找相关
# 读出logcat.log文件的内容,通过管道转发给grep作为输入内容,过滤包含"Displayed"的行,将输出内容再作为输入能过管道转发给下一个grep
$ cat logcat.log | grep -n 'Displayed' | grep ms
# 匹配testgrep文件所有wirelessqa的行
$ grep -e wirelessqa testgrep
# '^wirelessqa'匹配testgrep文件所有以wirelessqa开头的行
$ grep -e ^[wirelessqa] testgrep
# 'wirelessqa$'匹配所有以wirelessqa结尾的行
$ grep -e [wirelessqa]$ testgrep
# .*一起用代表任意字符,'.*qa'匹配任何词以qa结尾的行
$ grep -e .*qa testgrep
# '\ $ grep -e '\ # 'blog\>'匹配包含以blog结尾的单词的行 $ grep -e 'blog\>' testgrep # 匹配aaa文件中'blog.csdn.net'的行的上下5行内容 $ grep -5 -e blog.csdn.net aaa chown、useradd、groupadd、userdel、usermod、passwd、groupdel(新建用户、用户组,给用户分配权限) # 添加新的账号 $ useradd 选项 用户名 # 删除账号 $ userdel 选项 用户名 # 修改帐号 $ usermod 选项 用户名 # 用户密码的管理 $ passwd 选项 用户名 Old password:****** New password:******* Re-enter new password:******* # 设置密码为空 $ passwd -d 用户名 # 添加新的组 $ groupadd 选项 用户组 # 删除组 $ groupdel 用户组 # 修改组 $ groupmod 选项 用户组 # 修改用户所在组(把某个用户改为新的用户组) $ usermod -g 用户组 用户名 # 分配权限(修改某个目录的所属用户和用户组) $ chown -R hadoop:hadoop /usr/hadoop/ # Linux中查看所有系统用户命令 cat /etc/passwd alias别名(很有用,便于记录常用命令) # 查看当前设置了多少别名,直接输入alias $ alias # 添加别名,直接输入alias '别名'='命令'(注意等号之间不能有空格) $ alias cdmanage='cd /Users/ben/workspace/manage/target' # 删除一个别名 $ unalias cdmanage # 永久保存alias的方式(本人是Mac操作系统) # 进入用户根目录 $ cd /Users/ben $ vi .bash_profile # 编辑文件如下并保存 alias cdben="cd /Users/ben" alias cdcore="cd /Users/ben/workspace/core" alias cdmanage="cd /Users/ben/workspace/manage" alias cdservice="cd /Users/ben/workspace/service" alias cdmongo2="cd /Users/ben/dev/mongodb-osx-x86_64-2.6.9" alias cdmongo3="cd /Users/ben/dev/mongodb-osx-x86_64-3.0.2" alias cdredis="cd /Users/ben/dev/redis-3.0.0" alias cdsearch01="cd /Users/ben/dev/search01" # 使上面的别名立即生效 $ source .bash_profile Linux中修改IP地址 第一步: # 修改/etc/sysconfig/network-scripts/ifcfg-eth0配置文件 IPADDR=192.168.0.248 GATEWAY=192.168.0.1 DNS1=192.168.0.1 第二步: # 修改/etc/hosts文件 192.168.0.248 hostname Linux中修改主机名 第一步: $ hostname oratest 第二步: # 修改/etc/sysconfig/network中的hostname 第三步: # 修改/etc/hosts文件 记得重启!!! tar压缩/解压缩 # tar命令详解 -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 # 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。 # 下面的参数是根据需要在压缩或解压档案时可选的。 -z:有gzip属性的 -j:有bz2属性的 -Z:有compress属性的 -v:显示所有过程 -O:将文件解开到标准输出 参数-f是必须的 -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。 # 压缩 # 这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。 $ tar -cf all.tar *.jpg # 将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz $ tar –czf jpg.tar.gz *.jpg # 这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。 $ tar -rf all.tar *.gif # 这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。 $ tar -uf all.tar logo.gif # 查看 # 这条命令是在不解压的情况下查看all.tar包中所有文件,-t是列出文件的意思 $ tar -tf all.tar # 解压 # 这条命令是解出all.tar包中所有文件,-x是解开的意思 $ tar -xf all.tar # 解压tar包 $ tar –xvf file.tar # 解压tar.gz $ tar -xzvf file.tar.gz # 解压 tar.bz2 $ tar -xjvf file.tar.bz2 # 解压tar.Z $ tar –xZvf file.tar.Z # 解压到指定的目录,如果目录不存在就创建 # 将text.tar.gz 解压到 /home/app/test/ (绝对路径)下 $ tar -zxvf ./text.tar.gz -C /home/app/test/ # 解压rar $ unrar e file.rar # 解压zip $ unzip file.zip # 总结 1、*.tar 用 tar –xvf 解压 2、*.gz 用 gzip -d或者gunzip 解压 3、*.tar.gz和*.tgz 用 tar –xzf 解压 4、*.bz2 用 bzip2 -d或者用bunzip2 解压 5、*.tar.bz2用tar –xjf 解压 6、*.Z 用 uncompress 解压 7、*.tar.Z 用tar –xZf 解压 8、*.rar 用 unrar e解压 9、*.zip 用 unzip 解压 软链接 # 创建软链接 # ln -s a b 中的 a 就是源文件,b是链接文件名,其作用是当进入b目录,实际上是链接进入了a目录 # 值得注意的是执行命令的时候,应该是a目录已经建立,目录b没有建立。我最开始操作的是也把b目录给建立了,结果就不对了 # 如下面的示例,当我们执行命令cd /usr/local/java/的时候,实际上是进入了/software/java/ $ ln -s /software/java /usr/local/java # 删除软链接(注意不是rm -rf b/) rm -rf b 其他常用命令 # 创建文件夹命令 mkdir test # 创建多级目录的命令 mkdir -p /software/temp/nginx # 删除文件夹命令 rm -rf test # 复制文件夹命令 cp -rf /home/root/Downloads/* /home/root/tools MySQL数据库的备份与还原 # 备份 # root为用户名,user为要备份的数据库,自动会备份到/home/ben/文件目录下 $ mysqldump -u root -p user > /home/ben/user20160101.sql # 压缩备份 $ mysqldump -u root -p user | gzip > user20160101.sql.gz # 还原 $ mysql -u root -p user < /home/ben/user20160101.sql