linux部分经常使用的命令(SUSE 服务器)

来源:互联网 发布:dex编程 编辑:程序博客网 时间:2024/05/10 01:20

最近开始做linux服务器相关的东西,接触的命令比较多,现在也是一个需要总结的时候了。

1,让进程gate_way在后台运行:

nohup ./gate_way &

2,查看某一进程的ID:

ps -ef | grep  gate_way

3,杀死某一进程, 2205就是我们正在运行的gate_way的ID号,现在我们结束该进程:

3, 实时查看我们的日志文件:这里,用head-显示文件头,用tail-显示文件尾

tail -f proxy_server.log

4,  添加删除用户:

添加用户: useradd -m username

添加密码: passwd psd

删除用户: userdel -r username

5, 查找文件:

find -name test.sh

6, 判断某个可执行文件的binary档案含什么动态库:

7,使shell读入指定文件并依次执行所有语句:source命令

source .bashrc

8,显示当前各种用户限制:ulimit -a

9,查看linux进程的内存占用:top

根据内存占用排序: shift+m

2015-02-03更新以下内容:

1,关闭防火墙(重启失效):/sbin/SuSEfirewall2 stop
   查看防火墙状态:chkconfig --list | grep fire
2, 启动smb服务:service smb start
3,查找某个程序是否在运行 ps -ef | grep app
4, 释放cache资源: echo 1 > /proc/sys/vm/drop_caches
5, 创建文件夹:mkdir -p test
6,linux 下c头文件:/usr/include ; c++头文件:/usr/include/c++/4.3/
7,valgrind内存泄露检查:valgrind --log-file=1 --tool=memcheck ./a.out
   valgrind --log-file=1 --leak-check=full --tool=memcheck ./app
8,查找文件:find -name xxx.xx
9, 显示当前各种用户限制:ulimit -n
10,oracle关闭与启动:
    a,导入环境,使sqlplus能运行起来: source oraenv.sh
    b,以oracle账户执行:sqlplus sys/sys as sysdba 
    c,执行:shutdown abort        //临时关闭数据库
    关于启动:进入sqlplus后输入:startup。 
    若手动启动数据库后,发现监听进程没拉起来,手动执行如下命令:lsnrctl start 。查看状态:lsnrctl status。
11,编译并调试某个cpp测试文件:g++ -g -o test_memleak test_memleak.cpp
12,使用top观察内存泄露:top -p PIDnum,如top -p 22145
13,yast
14,查看哪个进程占用了某端口:lsof -i:端口号
15,关机:shutdown -h now
16,修改系统时间:date -s "20150115 09:47:00"
17, 移动:mv src dst
18,复制:cp src dst
19, linux下抓包:tcpdump host 172.16.0.186 and port 7805 -X -s 500 -w 11.pcap

20,查询oracle的session限制:
     a,登录233的oracle账户
     b,输入 sqlplus / as sysdba
     c,在显示的SQL>处输入:show parameter session
     d,然后就会有参数显示出来: 比如:sessions: 248
     f,查看当前的session连接数:select count(*) from v$session
21,windows下跟踪路由:tracert 192.168.1.23
22,用windows的cmd进行oracle连接:
    sqlplus username/passwd@192.168.1.233:1521/ora11g
    cmd查询oralce数据,并带条件:
    select * from tablename u where u.v_user_id = '20141119095715000000000000034737' 
23,查找系统内占用空间比较大的文件:
   du -sh /*           du -sh /home/public/App/*
24, 查看磁盘占用情况:df

2015-03-30更新以下内容:

25,gdb调试,打印某个指针的某一些数据:p/x *data@len len-长度
26,telnet测试外网端口是否开放:telnet 192.168.1.233 8090
27,查看防火墙开放的端口:vi /etc/sysconfig/SuSEfirewall2  查找FW_SERVICES_EXT_TCP
28, 查看某程序8090端口是否在监听:lsof -i:8090
29, 创建用户:useradd -m public; passwd public
30,root下切换工作路径: su -
31,ftp字符界面的退出命令:bye - quit

32,关闭/打开防火墙:service iptables stop/restart
33,查看某程序占用的端口netstat -anp | grep vsp / lsof -i:5060
34, 查看内核/操作系统/cpu信息: uname -a
35, 查看计算机名称:hostname
36,编辑防火墙规则:vi /etc/sysconfig/iptables
37,启动mysql/ftp/防火墙服务:service mysqld/vsftpd/iptables start

38,修改ssh端口号: 
    A, vi /etc/ssh/sshd_config
    B, Port 22->xxx     这里可以先加一个Port xxx。成功后再关闭22端口。另外,需要在防火墙将xxx端口开放,并重启防火墙使生效
    C, Service sshd restart 
39,从桌面切换到文本模式:init 3  ,从文本模式切换到桌面:startx/init 5
40,nohup ./app >/dev/null 2>&1 &
    解释如下:nohup xxx & 表示让xxx在后台执行
    2>&1 是将标准出错重定向到标准输出。2是STDERR_FILENO,1是STDOUT_FILENO。
    /dev/null - linux的黑洞,任何写入该文件的内容都会永远丢失。
    即整体的意思是让程序后台执行,并将标准出错和标准输出都丢掉。

2015-11-24 更新以下内容:

41,Suse编辑防火墙开放端口:
    A, vi /etc/sysconfig/SuSEfirewall2
    B, FW_SERVICES_EXT_TCP="22 1521 "//端口编辑
    C,rcSuSEfirewall2 restart 
42,解压  tar –xvf file.tar //解压 tar包 
        tar -xzvf file.tar.gz //解压tar.gz 
      tar -xjvf file.tar.bz2 //解压 tar.bz2 
      tar –xZvf file.tar.Z //解压tar.Z 
      unrar e file.rar //解压rar 
     unzip file.zip //解压zip
43,启动activemq:
    cd apache-activemq-5.8.0/bin/
./activemq start
44 启动httpd
/etc/init.d/apache start
45, vi打开显示二进制文件:vi -b filename  进入后输入 :%!xxd
46-1 应用程序挂掉的调试方法:gdb gateway -c core  : bt查看堆栈情况
     调试运行中的程序方法:gdb app PID 或者gdb app-->然后 attach PID挂接该程序,detach取消挂接。
46-2 调试线程死锁:
1,gdb app PID
2, info thread     - 显示所有的线程
3,p gMutexSendWatch - 打印线程锁状态,查看__owner = 6800,为占用该线程锁的线程ID(LWP),通过步骤2显示的线程ID,确认为哪个线程占用了该线程锁。
4, thread 25       - 跳到第25个线程
5,bt          - 打印该线程下堆栈情况
6, f 1            - 跳转到该线程下的第一层
7,p xxx  - 打印该线程下的xxx变量信息
7,通过上面的观察,确定实际发生线程死锁的位置以及状态信息
47,查看glibc版本:ldd --version
/lib/libc.so.6
/lib64/libc.so.6 
strings /lib64/libc.so.6 |grep GLIBC_
48,看IO每一秒刷新一次: iostat -x 1/iotop -o/
49,查看Suse系统版本:
cat /etc/issue
cat /proc/version
lsb_release -a
50, 查找依赖项 objdump -T /lib64/libgcc_s.so.1 | grep GLIBC_2.14
51,列出所有被安装的rpm包:rpm -qa,并查找glibc匹配项:rpm -qa | grep glic
52, 远程拷贝文件: scp public@192.168.0.9:/home/public/Gateway/* ~/Gateway/
指定端口22:scp -P 22 public@192.168.0.9:/home/public/Gateway/* ~/Gateway/
53,linux,config文件中文显示乱码,导入中文语言:export LANG=zh_CN
54,alarmSvr编译时缺少 log4cpp的so文件:从/home/public/lib/liblog4cpp.* 拷贝到 /alarm_server/log4cpp/ 下,然后执行如下动作
ln -s -f liblog4cpp.so.5.0.6 liblog4cpp.so.5
ln -s -f liblog4cpp.so.5.0.6 liblog4cpp.so
55,查看程序运行时间:ps -A -opid,stime,etime,args | grep app
56,查看端口监听连接状态:netstat -an | grep 7275
57,linux平台vi增加行号显示:vi .vimrc 增加:set nu;取消行号显示:set nonu
58, linux远程连接数据库:sqlplus username/password@192.168.0.178:1521/ora11g
59, 查询某文件的某些协议:grep '0x1202' App.log | more
60,查看几颗cpu:cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l
61,显示环境变量信息:1-语言:echo $LANG; 2-HOME路径:echo $HOME
显示所有的环境变量:env
62, 显示依赖库:ldd app
63,连续观察某一端口的连接情况,:  netstat -anp -c | grep 7805


2016-9-28 更新以下内容:

64, cronab-定时执行任务:
1,public用户下,输入 crontab -e,打开定时任务编辑器
2,输入:00 01 * * * /home/public/GpsData/./cpGpsData.sh,此句就是在每天凌晨一点执行cpGpsData.sh脚本文件
3,保存该文件
4,查看定时任务:crontab -l 
65,系统重启要执行的文件:vi /etc/init.d/rc.local 
66,查看app(PID: 9685)进程的线程ID,以及各线程的cpu利用率: top -Hp 9685 
Cpu: 
us-用户模式下所花费CPU时间的百分比;sy:内核进程所花费的CPU时间百分比;
    id-显示CPU处在空闲状态的时间百分比;wa:显示IO等待所占用的CPU时间百分比;
67,ulimit -v 修改永久生效方法:将ulimit -v unlimited 加入 /etc/profile文件中
68,修改文件用户所有者为public:users:chown public:users /etc/profile.d/xxx.sh 
递归修改:chown -R public:users *
隐藏文件同样修改: chown -R public:users .*
69,nmon使用: nmon 123.nmon -s5 -c90000 -f -m /home/public/
说明: -t 输出top processes的数据
-s 保存数据的频率 单位:秒
-c 次数
-f 生成的数据文件名中包含文件创建的时间
-m 生成的数据文件的存放目录
70,linux 查看系统线程总数: pstree -p | wc -l 
71,rpm包安装:rpm -ivh xxx.rpm 
列出rpm包的内容:rpm -qpl  *.rpm 
解压rpm包的内容:rpm2cpio *.rpm | cpio -div
72,zypper使用:
1,查看源: zypper repos
2,导入源:zypper ar http://ftp5.gwdg.de/pub/opensuse/discontinued/distribution/11.3/repo/oss/suse main
3,刷新: zypper refresh
4,查找软件:zypper search -s kernel-*-debuginfo*
5,安装: zypper install latencytop
6,删除源: zypper rr nonoss
73,列出CPU信息,包括L1 L2缓存等:lscpu
74, Oprofile的使用:
1, 执行app程序,运行压力:operf ./app
2,运行一段时间后,ctrl+c结束该程序
3,opreport -l >> 1.txt ,将函数级测试结果导入1.txt
4,opannotate -s >> 2.txt ,将代码级测试结果导入2.txt
75, Intel的linux程序性能调优工具启动vtune:使用XDMCP进入public,输入amplxe-gui
76,使用iftop观察网络IO:http://www.vpser.net/manage/iftop.html
A,安装:zypper install  iftop
B,观察:iftop 或 iftop -B
77,查看最近机器重启时间:last
78,查看上下文切换:vmstat 1 
in-interrupt ; cs-context switch上下文切换
79,linux tcp优化: 
1, vi /etc/sysctl.conf 
2, 增加 net.ipv4.tcp_syn_retries = 2 (默认为5) 
3,生效:sysctl -p /etc/sysctl.conf 
4,查看: cat /proc/sys/net/ipv4/tcp_syn_retries 
80,MySQL程序编译命令:g++ -g -o test mysqlLinux.cpp -L/usr/lib64/mysql -lmysqlclient -lpthread -lm -lrt -ldl
  -lm : libm.so :包含数学函数
  -lrt:是glibc中对real-time部分的支持库
  -ldl:显示调用动态链接库
81,查看后台tcp状态:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
82,查看swappiness:cat /proc/sys/vm/swappiness
83,给后台运行的进程发送ctrl+c的SIGINT信号:kill -s 2 PID

2016年11月16日更新以下内容:

84,linux系统时间与网络同步:ntpdate pool.ntp.org
85,挂载windows共享文件夹Github到mnt目录: sudo mount -o username=admin,passwd=sdgakj //192.168.0.175/Github mnt/
86, Git操作,有文件变更之后:git add -p filename; git commit; git push;
87, 封停一个IP的访问: iptables -I INPUT -s 192.168.0.175 -j DROP
解封一个IP的访问: iptables -D INPUT -s 192.168.0.175 -j DROP
88,linux 使用tcpdrop工具强制断开某个ip的tcp连接,:
88.1 github下载 tcpdrop 地址:   https://github.com/arut/linux-tcp-drop
88.2 make进行编译,生成 tcp_drop.ko
88.3 将tcp_drop.ko加载到内核: sudo inmode ./tcp_drop.ko
88.4 查询对应的tcp连接:netstat -n | grep ESTABLISHED | grep 9202
88,4 断开对应的连接: echo "192.168.0.228:9202      192.168.0.175:29414" > /proc/net/tcp_drop
88.5 从内核卸载模块: sudo rmmod tcp_drop 


1 0
原创粉丝点击