linux基础命令-01

操作linux系统时免不了会有各种查询系统信息,以下是在开发时主要针对系统应用的查询

1、如何查看自己的linux是32位还是64位

  •      getconf LONG_BIT  :返回的结果是32则说明是32位,返回的结果是64则说明是64位
  •      uname -a                  :x86_64就是64位的,没有就是32位的

2、提高linux系统的执行性能在以下几方面可以考虑,详细的实现请查看我的博客

  1. 高并发机制-->libphenom
  2. 内存管理-->tcmalloc

3、linux中查看正在运行的进程以及杀死进程

1. ps命令

        ps *

  • -A:显示所有进程
  • -a:显示终端中包括其它用户的所有进程
  • x:显示无控制终端的进程

2. top命令提供了运行中系统的动态实时视图

3. 强制杀死进程: kill -9 ID

        -9 制定了传递给进程的信号是9,即强制、尽快终止进程。各个终止信号及其作用见附录

4、linux中 shell脚本的 time简单简介

time命令 用于 打印出一条命令或一个程序的执行时间
time 命令以秒为单位将一条命令执行期间所用的时间、系统时间和 time 命令的执行时间打印在标准错误中。

用法:time [ -p ] Command [ Argument ... ]
举例:想知道 列举edu文件夹这一命令 花费的时间:
      time ls /edu
      想知道 将文件复制到某一文件夹 花费的时间:
      time cp /edu/***/h /edu/***/Documents 
      想知道 一个脚本运行的时间:
      time ./123.sh

time命令结果有三行组成:real、user和sys。我们这里用的都是real值,CPU用时被划分为user和sys两块。

real值表示从程序开始到程序执行结束时所消耗的时间,包括CPU的用时

user值表示程序本身,以及它所调用的库中的子例程使用的时间

sys是由程序直接或间接调用的系统调用执行的时间

在单处理器上,real值和整个CPU用时之差,也就是real - ( user + sys )是所有延迟程序执行的因素的总和。在SMP上,这个值近似为real * number_of_processors - ( user + sys )。这些因素包括:
•调入程序文本和数据的IO操作 
•获取程序实际使用内存的IO操作 
•由其它程序消耗的CPU用时 
•由操作系统消耗的CPU用时

5、linux下tree命令可以打印出树状目录结构

linux下tree命令安装:centos系统系下--->yum install tree

查看帮助:tree --help
其中常用参数:
-a:打印全部文件。
-A:使用ASNI绘图字符显示树状图而非以ASCII字符组合(显示的树状图为实线不是虚线)。
-C:在文件和目录清单加上色彩,便于区分各种类型。
-d:只打印目录。
-L level:指定打印目录的深度(层级)。
-f:打印出每个文件、目录的绝对路径。

6、CentOs7查看系统已有的用户和用户组

  1. 查看用户:cut -d : -f 1 /etc/passwd
  2. 查看用户组:cut -d : -f 1 /etc/group
  3. 删除edu这个用户:userdel -r edu

7、ldd命令可以查看一个可执行程序依赖的共享库

例如# ldd /bin/ln

8、查看进程间的通信机制(ipc )

  •   ipcs -l 命令来查看当前ipc 参数的各种设置
  • ipcs -a :显示全部可以显示的信息
  • ipcs -q:显示活动的消息队列
  • ipcs -m:显示活动的共享内存信息
  • ipcs -s:显示活动的信号量信息

在linux下的多个进程间的通信机制叫做IPC(Inter-Process Communication),它是多个进程之间相互沟通的一种方法。在linux下有多种进程间通信的方法:半双工管道、命名管道、消息队列、信号、信号量、共享内存、内存映射文件,套接字等等。

MSGMNI--- 这个参数决定了系统中同时运行的最大的message queue的个数。

MSGMNI:/proc/sys/kernel/msgmni文件中定义了该值;
最大65535;最小128

  • linux中输出:文件名、行号、函数

printf("%s——%d——%s\n",__FILE__,__LINE__,__FUNCTION__);

  • linux中查看文件大小

du -sh [目录名] 返回该目录的大小
du -sm [文件夹] 返回该文件夹总M数
du -h [目录名] 查看指定文件夹下的所有文件大小(包含子文件夹)


更新详细命令文档:

du --help

  • linux中查看硬盘大小及分区大小

df -hl 查看磁盘剩余空间
df -h 查看每个根路径的分区大小

更新详细命令文档:
df --help

查看硬盘的分区:fdisk -l
查看IDE硬盘信息:hdparm -i /dev/hda
查看STAT硬盘信息:hdparm -I /dev/sda 或 apt-get install blktool 或 blktool /dev/sda id
查看目录占用空间:du -hs 目录名
U盘没法卸载 #sync fuser -km /media/usbdisk

调试gdb和dmesg+addr2line

  • 我们在用这个命令的时候主要是为了产生core文件,就是程序运行发行段错误时的文件:ulimit -c unlimited  (具体使用百度)

基于gdb调试: gdb ./test core.0001-->bt-->

  • tail -f 实时查看日志文件 tail -f 日志文件log   

dmesg+addr2line调试

dmesg ,一种程序,用于检测和控制内核缓冲。程序用来帮助用户,了解系统的启动信息,可以获得出错堆栈地址。

addr2line ,可以将指令的地址和可执行映像转换成文件名,函数名或源代码的工具。这种功能将跟踪地址转换成更有意义的内容来说很有用。

在调用 addr2line 工具时,要使用 -e 选项来指定可执行映像,使用 -f 选项可以告诉工具输出函数名。

linux下操作过程:

[root@localhost]# dmesg | grep a.out 
[  212.330289] a.out[1946]: segfault at 0 ip 00000000004f850c sp 00007ffdf0aafbb8 error 6 in a.out[400000+1000]
[  227.437065] a.out[1989]: segfault at 0 ip 00000000004f850c sp 00007ffdf0aafbb8 error 6 in a.out[400000+1000]
[root@localhost]# 
[root@localhost]# addr2line -e a.out 00000000004f850c 
/root/share/main.cpp:66


先通过dmesg找到对应出错的地址,再用 addr2line -e 将地址解析到对应的代码行
 

yum的简单应用

  • 1.列出所有可更新的软件清单命令:yum check-update
  • 2.更新所有软件命令:yum update
  • 3.仅安装指定的软件命令:yum install <package_name>
  • 4.仅更新指定的软件命令:yum update <package_name>
  • 5.列出所有可安裝的软件清单命令:yum list
  • 6.删除软件包命令:yum remove <package_name>
  • 7.查找软件包 命令:yum search <keyword>
  • 8.清除缓存命令:
    • yum clean packages: 清除缓存目录下的软件包
    • yum clean headers: 清除缓存目录下的 headers
    • yum clean oldheaders: 清除缓存目录下旧的 headers
    • yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的headers
  • 9.查询ifconfig依据什么软件包:yum provides ifconfig    (yum provides <package_name>)
  • yum list installed //列出所有已安装的软件包 
  • //下载 RPM 包及其所有依赖包
    • yumdownloader xxxx*
    • yum -y install --downloadonly --downloaddir=/tmp/ xxxx*  //--downloadonly 说明只下载,--downloaddir  指定安装到哪个目录下
    • yumdownloader --destdir ./ --resolve mariadb-server.x86_64 //下载制定路径及依赖
  • linux终端路径过长的问题

第一中方式:

#打开编辑sh配置文件
sudo vim ~/.bashrc
#找到62行左右位置,PS1='${debian_chroot:+($debian_chroot)}\u@\h:\W\$ '
#将其中的大写字母W改成小写w
#重写打开终端即可或者是执行`source ~/.bashrc`立即生效

第二种方式:

vim ~/.bash_profile

在最后一行添加 export PS1='[${debian_chroot:+($debian_chroot)}\u@\h:\W]\\$ '

wq!保存退出

source ~/.bash_profile

  • centos查看关机记录
last |grep shutdown
last |grep reboot
last
  • linux之间传输

scp -r file/ 192.0.0.0:/root

  • 不输出终端的打印

2> /dev/null   //系统输出的日志
1> /dev/null   //工程日志输出到终端

sudo nohup ./tunVnet >/opt/hegs.bin 2>&1 &    //后台运行

  • 追踪栈信息(查看假死的进程)

pstack

  • QT界面输调试输出

export QT_DEBUG_PLUGINS=1

  • 监控网卡流量

dstat -n -N xxx

  • tcpreplay commend:

tcpreplay -i eno1 -I xxx -l 1000 -t -c ftp.cache ftp.pcap
tcpprep -a client -i ftp.pcap -o ftp.cache 
tcpdump tcp -i xxx -t -s 0 -w ftp.pcap
tcpreplay -i xxx -l 0 -M 1000 1.pcap 

扩展:输出到终端界面

tcpdump -i lo port 9000 -XX -S

  • 查看大页信息

cat /proc/meminfo | grep Huge

  • 查端口占用的进程号

比如80端口占用的进程

lsof -i:80

杀死进程:kill -9 进程号

查看网络端口号

netstat -apn | grep 9092

nc  : 短小精悍、功能实用,被设计为一个简单、可靠的网络工具

  • Linux一个网卡配置多个ip

ifconfig eth0 192.168.6.99 netmask 255.255.255.0 up   //配置静态ip

1、设置网卡的ip别名(临时配置,重启机器就没有了)

ifconfig eth0:0 192.xxx.xxx.xxx netmask 255.255.255.0 up

ifconfig eth0:1 192.xxx.xxx.xxx netmask 255.255.255.0 up

2、验证ip:ping 192.168.6.100

3、清除ip别名:ifconfg eth0:0 down

注意:永久配置ip别名

打开网卡的/etc/sysconfig/network-scripts目录下配置文件进行添加

#vi ifcfg-eth0
打开网卡的配置文件,将里面所有字段复制一下
#vi ifcfg-eth0:0
创建eth0:0的配置文件,并将刚才复制的字段粘贴到这个配置文件,按照下文的介绍修改部分信息,修改完成后保存退出

###centos7.4
1, 关闭图形界面:
init 3 关闭图形界面(XServer服务也会关闭)
2. 开启图形界面:
init 5 或  startx
###ubuntu

mac地址表默认老化时间300秒,可以通过命令进行修改:mac-address aging-time xxx

查看老化时间:display mac-address aging-time

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值