linux常用命令积累

需要在不断的积累中丰富自己,在不断的使用中强化自己的技能-felixzhang

养成一种习惯,坚持,自律,这样才能在自己的道路上走的更远-felixzhang

from CSDN-linux command learning:https://blog.csdn.net/qq_41394155/article/details/83472595

1、vi/vim

    (1):set nu  or :set number 设置显示行号

    (2)vi/vim +26 sample.txt 打开sample.txt,光标在第26行处显示;

    (3)  :%s/desktop/laptop/g  将在整个文件中的“desktop”用laptop替换

2、ps -ef

        NI:表示进程的nice值;PRI表示进程的优先级。

3、修改U盘卷标

 

    sudo  e2label  /dev/sda1 newLabelName

4、MD5

    MD5算法常常用来验证网络文件传输的完整性,防止文件被人篡改。全称:报文摘要算法(Message-Digest Algorithem5)此算法对任意长度的信息逐位进行计算,产生一个二进制长度为128位的“指纹”(或者称为报文摘要),不同的文件产生相同的报文摘要的可能性非常小。命令如下:

    md5sum filename > result.md5

    filename和result可以相同,也可以不同;result.md5的内容:指纹 filename。result.md5的后缀也可以不是md5。可以使用>>使用追加的方式产生md5值。

    md5sum *iso > iso.md5 多个文件同时产生md5值

    将下载的文件file和该文件的file.md5报文摘要放在同一个目录下,然后用下列命令:

    Md5sum –c file.md5

    也可以比较文件发送前的md5值和发送后的md5值是否一致

5、查找命令

    Which:用来查看可执行文件的位置;

    Locate:在数据库中查,数据库大致每天更新一次;

    Whereis:可以找到可执行命令和man page;

    Find:根据条件查找。

6、可以通过命令“tty”查看当前shell对应于那个tty

7、kill–l 查看系统中有哪些signal

8、查看和更改printk日志级别

        Cat/proc/sys/kernel/printk

         4 4 1 7

         Firstnumber:当前控制台日志级别

         Secondnumber:未明确指定日志级别的默认消息日志界别

         Thirdnumber:最小控制台日志级别

         Forthnumber:引导时默认的控制台日志界别

         日志级别越小,优先级越大,日志级别小于控制台的日志才会输出;

         修改控制台日志级别:

         echo8 > /proc/sys/kernel/printk

9、wc统计命令:打印文本行数、单词数、字节数;

10、du命令:显示每个文件和目录磁盘使用空间的情况

11、命令后面加&,表示后台执行

12、shell脚本

    ‘string’单引号—>单一字符,代表变量的$没有作用;”string”双引号->代表的$起作用,单一字符串;`command`反引号->指命令;seq:用于产生从某个数到另外一个数之间的所有整数。%o以8进制输出整数,不带O前缀;%03o是输出3位8进制整数,不足3位的在前面补0;echo –n不换行输出,echo –e 处理特殊字符,如果字符串中出现特殊字符,不会当成一般字符输出。

13、stty

    stty –F/dev/ttyS0 speed 115200来测试串口通信。

(1)通过上面的命令分别设置ttyS0和ttyS1
(2)cat /dev/ttyS0 &

(3)echo hello> /dev/ttyS1

(4)把(2)和(3)反过来实验

14、硬链接和软连接

    硬链接:ln P1 P2

    软连接:ln –s P1P2

    P1:目标文件;P2:链接文件。

15、objdump可以用来反汇编:objdump –S hello.o

16、lshw查看硬件列表

17、pkill、kill、killall杀死进程

    (1)pkill和killall差不多,都是通过进程名字杀死进程

    (2)kill用于杀死指定PID的进程,kill -9  PID用于强制杀死进程

18、绑核

(1)显示进程运行的CPU

            taskset -p pid

            注意,此命令返回的是十六进制的,转换成二进制后,每一位对应一个逻辑CPU,低位是0号CPU,依次类推。如果每个位置上是1,表示该进程绑定了该CPU。例如,0101就表示进程绑定在了0号和3号逻辑CPU上了

 (2)绑核设定

            taskset -pc 3  pid    表示将进程pid绑定到第3个核上(注:不用将3弄成二进制的)

            taskset -c 3 command   表示执行command命令,并将command启动的进程绑定到第3个核上。

19、如果想要实现某个进程/线程独占某个核,就要使用cpuset命令去实现

# mkdir /dev/cpuset
# mount -t cpuset cpuset /dev/cpuset
# cd /dev/cpuset
# mkdir prodset             # create a cpuset called "prodset"
# cd prodset
# echo 7-10 > cpus          # assign CPUs 7-10
# echo 1 > cpu_exclusive    # make prodset exclusive
# echo 1159 > tasks         # assign PID 1159 to prodset

20、time命令:统计命令执行花费的总时间

time ls
anaconda-ks.cfg  install.log  install.log.syslog  satools  text

real    0m0.009s
user    0m0.002s
sys     0m0.007s

输出的信息分别显示了该命令所花费的real时间、user时间和sys时间。

  • real时间是指挂钟时间,也就是命令开始执行到结束的时间。这个短时间包括其他进程所占用的时间片,和进程被阻塞时所花费的时间。
  • user时间是指进程花费在用户模式中的CPU时间,这是唯一真正用于执行进程所花费的时间,其他进程和花费阻塞状态中的时间没有计算在内。
  • sys时间是指花费在内核模式中的CPU时间,代表在内核中执系统调用所花费的时间,这也是真正由进程使用的CPU时间。

21、file命令查看文件类型,file “filename”,ELF是可执行文件

22、readelf -h 可执行文件名用于查看可执行文件的头部信息

23、gcc -g

如果想用调试器执行一个可执行文件, 在用gcc编译时必须加上-g选项:

gcc -o sum sum.c -g

加上-g选项以后,gcc在编译是会做以下额外的操作:

1. 创建符号表,符号表包含了程序中使用的变量名称的列表。

2. 关闭所有的优化机制,以便程序执行过程中严格按照原来的C代码进行。

24、反汇编

#gcc –g stackframe.c –o stackframe (编译)

#objdump –dS stackframe > stackframe.S (反汇编)

25、dd命令

【1】sudo dd  if=[输入]  of=[输出]

eg:

     sudo dd if=/dev/sda  of=/dev/sdb

    其中/dev/sda为硬盘A,/dev/sdb为硬盘B

【2】 查看dd执行进度:

    在一个shell里面执行dd命令,在另一个shell里面执行下面的方法,然后可以在执行dd命令的shell中看到dd进度

   (1)方法1:watch -n 5 pkill -USR1 ^dd$

   (2)方法2:watch -n 5 killall -USR1 dd

   (3)方法3:while killall -USR1 dd; do sleep 5; done

   (4)方法4:while (ps auxww |grep " dd " |grep -v grep |awk '{print $2}' |while read pid; do kill -USR1 $pid; done) ; do sleep 5; done

     man dd可以看到这样的解释:“Sending a USR1 signal to a running 'dd' process makes it print I/O sta‐
       tistics to standard error and then resume copying.”只要给dd发送USR1信号,它就会在标准错误输出中输出I/O数据,并继续复制。这样的话就实现了当前进度的输出。 

使用上面方法可以看到如下的进度提示:

68411724288 bytes (68 GB) copied, 9134.46 s, 7.5 MB/s
133709641+0 records in//前面的就是柱面号,使用dd拷贝部分数据的时候,确保fdisk查看的end柱面号已经被dd完
133709641+0 records out
https://blog.csdn.net/puppylpg/article/details/51290363

dd部分数据

dd if=/dev/sda  of=/dev/sdb bs=512 count=1

bs指定扇区的大小,count指示dd多少个扇区,可以通过fdisk查看需要dd的end扇区,如果只dd一个分区的一部分会出现cannot access错误,需要dd整个分区。

26、watch命令

     周期性的执行程序,eg:

     watch -n 1 date

      1秒钟显示一次日期

27、修改进程的优先级

(1)nice命令,指定未运行进程(程序)的nice值

nice -n -5 /usr/local/mysql/bin/mysqld_safe &

(2)renice,对正在运行的进程更改nice值

renice -5 -p 5200

#PID为5200的进程nice设为-5

(3)top命令更改

 #进入top后按“r”–>输入进程PID–>输入nice值

(4)htop命令,F8、F9

28、查看DRAM速率

   dmidecode -t memory

  其中speed指示的就是DRAM的速率

 dmidecode还可以查看:查询BIOS、系统、主板、处理器、内存、缓存等信息,具体可以查看man

bios system baseboard chassis processor memory Cache connector slot

https://blog.csdn.net/u011641885/article/details/47010489

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值