linux常用命令

91 篇文章 4 订阅
66 篇文章 1 订阅

ln 创建硬连接

ln -s  创建软连接(符号连接)

示例:

andrew@andrew-Thurley:~/work/filedir$ date > date.txt
andrew@andrew-Thurley:~/work/filedir$ ln -s date.txt l_date
andrew@andrew-Thurley:~/work/filedir$ ls
a.out  bin  date.txt  include  l_date  obj  src  zieckey_fifo
andrew@andrew-Thurley:~/work/filedir$ more l_date
2018年 08月 22日 星期三 21:33:32 CST
andrew@andrew-Thurley:~/work/filedir$ 
S_ISLNK(st_mode):是否是一个连接.
S_ISREG(st_mode):是否是一个常规文件.
S_ISDIR(st_mode):是否是一个目录
S_ISCHR(st_mode):是否是一个字符设备.
S_ISBLK(st_mode):是否是一个块设备
S_ISFIFO(st_mode):是否 是一个FIFO文件.
S_ISSOCK(st_mode):是否是一个SOCKET文件 

使用方式:

一般在之前都会先调用函数stat( FileName, &fp)类函数,意味着将FileName这个文件的信息保存到了地址fp中。此时fp.st_mode就是文件FileName的模式,所以S_ISDIR(fp.st_mode)的函数功能是判断fp所指向文件(也就是FileName)是否为目录(dir)类型。

 

使用ps命令查看linux中的进程:

可以使用:ps -ef查看所有的进程,若是进程过多可以使用more进行分页显示;

ps -ef | more

 

使用:

ps -aux | more

查看系统CPU占用资源使用等情况

andrew@andrew-Thurley:~$ ps -aux | more
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1 185416  6036 ?        Ss   17:32   0:01 /sbin/init spla
sh
root         2  0.0  0.0      0     0 ?        S    17:32   0:00 [kthreadd]
root         4  0.0  0.0      0     0 ?        I<   17:32   0:00 [kworker/0:0H]
root         6  0.0  0.0      0     0 ?        I<   17:32   0:00 [mm_percpu_wq]
root         7  0.0  0.0      0     0 ?        S    17:32   0:00 [ksoftirqd/0]
root         8  0.0  0.0      0     0 ?        I    17:32   0:04 [rcu_sched]
root         9  0.0  0.0      0     0 ?        I    17:32   0:00 [rcu_bh]
root        10  0.0  0.0      0     0 ?        S    17:32   0:00 [migration/0]
root        11  0.0  0.0      0     0 ?        S    17:32   0:00 [watchdog/0]
root        12  0.0  0.0      0     0 ?        S    17:32   0:00 [cpuhp/0]
root        13  0.0  0.0      0     0 ?        S    17:32   0:00 [cpuhp/1]
root        14  0.0  0.0      0     0 ?        S    17:32   0:00 [watchdog/1]
root        15  0.0  0.0      0     0 ?        S    17:32   0:00 [migration/1]
root        16  0.0  0.0      0     0 ?        S    17:32   0:00 [ksoftirqd/1]
root        18  0.0  0.0      0     0 ?        I<   17:32   0:00 [kworker/1:0H]
root        19  0.0  0.0      0     0 ?        S    17:32   0:00 [cpuhp/2]
root        20  0.0  0.0      0     0 ?        S    17:32   0:00 [watchdog/2]
root        21  0.0  0.0      0     0 ?        S    17:32   0:00 [migration/2]
root        22  0.0  0.0      0     0 ?        S    17:32   0:00 [ksoftirqd/2]
root        24  0.0  0.0      0     0 ?        I<   17:32   0:00 [kworker/2:0H]
root        25  0.0  0.0      0     0 ?        S    17:32   0:00 [cpuhp/3]

输入:id

查看当前用户id 等信息

andrew@andrew-Thurley:~$ id
uid=1000(andrew) gid=1000(andrew) 组=1000(andrew),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare)

ps [选项]
下面对命令选项进行说明:
-e   显示所有进程。
-f    全格式。
-h   不显示标题。
-l    长格式。
-w  宽输出。
a    显示终端上的所有进程,包括其他用户的进程。
r    只显示正在运行的进程。

u  以用户为主的格式来显示程序状况。

x     显示所有程序,不以终端机来区分。


ps -ef 显示出的结果:

    1.UID       用户ID
    2.PID        进程ID
    3.PPID      父进程ID
    4.C           CPU占用率
    5.STIME     开始时间
    6.TTY         开始此进程的TTY----终端设备
    7.TIME       此进程运行的总时间
    8.CMD       命令名

 

pstree命令,使用pstree命令可以查看进程树

 

 

kill -l
1) SIGHUP     2) SIGINT     3) SIGQUIT     4) SIGILL     5) SIGTRAP
6) SIGABRT     7) SIGBUS     8) SIGFPE     9) SIGKILL    10) SIGUSR1
11) SIGSEGV    12) SIGUSR2    13) SIGPIPE    14) SIGALRM    15) SIGTERM
16) SIGSTKFLT    17) SIGCHLD    18) SIGCONT    19) SIGSTOP    20) SIGTSTP
21) SIGTTIN    22) SIGTTOU    23) SIGURG    24) SIGXCPU    25) SIGXFSZ
26) SIGVTALRM    27) SIGPROF    28) SIGWINCH    29) SIGIO    30) SIGPWR
31) SIGSYS    34) SIGRTMIN    35) SIGRTMIN+1    36) SIGRTMIN+2    37) SIGRTMIN+3
38) SIGRTMIN+4    39) SIGRTMIN+5    40) SIGRTMIN+6    41) SIGRTMIN+7    42) SIGRTMIN+8
43) SIGRTMIN+9    44) SIGRTMIN+10    45) SIGRTMIN+11    46) SIGRTMIN+12    47) SIGRTMIN+13
48) SIGRTMIN+14    49) SIGRTMIN+15    50) SIGRTMAX-14    51) SIGRTMAX-13    52) SIGRTMAX-12
53) SIGRTMAX-11    54) SIGRTMAX-10    55) SIGRTMAX-9    56) SIGRTMAX-8    57) SIGRTMAX-7
58) SIGRTMAX-6    59) SIGRTMAX-5    60) SIGRTMAX-4    61) SIGRTMAX-3    62) SIGRTMAX-2
63) SIGRTMAX-1    64) SIGRTMAX

语法

kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]

参数说明

  • -l <信息编号>  若不加<信息编号>选项,则-l参数会列出全部的信息名称。
  • -s <信息名称或编号>  指定要送出的信息。
  • [程序]  [程序]可以是程序的PID或是PGID,也可以是工作编号。

杀死进程

# kill 12345

强制杀死进程

# kill -KILL 123456

发送SIGHUP信号,可以使用一下信号

# kill -HUP pid

彻底杀死进程

# kill -9 123456

NC命令

测试协议的时候若是没有数据抓包可一下linux上自己创造,比如使用:
nc 命令:
可以使用linux自带的nc命令进行聊天,再使用wireshark进行抓包;

    nc -l 1234 # Server 1
    nc 127.0.0.1 1234 # 127.0.0.1 换成 Server 1 的 IP 即可.


   打开两个终端之后,就可以直接进行相互之间的通话了,想结束聊天可以使用^D (Ctrl + D)
扫描PORT看那个Port是开放的
 

  nc -v -w 2 localhost -z 30-80

  localhost [127.0.0.1] 80 (http) open
  localhost [127.0.0.1] 53 (domain) open

传送资料

    cat filename | nc -l 9090 # 通过 9090 port 传送 filename 的档案内容
    nc localhost 9090 # 接收 9090 port 传来档案内容

档案传送

   

nc -l 1234 > filename # 接收 Server 先建立 (Port: 1234)
nc 127.0.0.1 1234 < test.txt # 传送 Server 然后建立连接并产送档案的内容. (要是使用的是其他                                    的IP将127.0.0.1换成要使用的额IP)
Server 端加密: nc localhost 1567 | mcrypt –flush –bare -F -q -d -m ecb > file.txt
Client 端解密: mcrypt –flush –bare -F -q -m ecb < file.txt | nc -l 1567

nc 与 telnet 连通

   

nc -l 1234 # 建立 1234 port socket server
telnet localhost 1234 # 連到 socket server
# 再來互相打字, 都可以相互接收
Server 直接打開一個 Shell: nc -l 1567 -e /bin/bash -i
Client 連進來: nc 172.31.100.7 1567

nc 跑影音流

      

  Server: cat video.avi | nc -l 1567
  Client: nc localhost 1567 | mplayer -vo x11 -cache 3000 -

1.iso镜像就是将文件包括文件系统本身制作成一个后后缀为iso的文件
在ubuntu上使用cat命令制作ios镜像
2.查看iso文件


1.
cat /dev/cdrom > a.iso   将cdrom中的文件制作成iso文件
想要查看一个iso文件的时候使用:
mount -t iso9660 -o loop a.iso /mnt
然后iso文件就会出现在 /mnt目录下,因为iso文件是二进制文件,因此必须加 -o 将其虚拟成回环文件

grep 命令:

grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

-a 不要忽略二进制数据。
-A<显示列数> 除了显示符合范本样式的那一行之外,并显示该行之后的内容。
-b 在显示符合范本样式的那一行之外,并显示该行之前的内容。
-c 计算符合范本样式的列数。
-C<显示列数>或-<显示列数>  除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
-d<进行动作> 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。
-e<范本样式> 指定字符串作为查找文件内容的范本样式。
-E 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。
-f<范本文件> 指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。
-F 将范本样式视为固定字符串的列表。
-G 将范本样式视为普通的表示法来使用。
-h 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。
-H 在显示符合范本样式的那一列之前,标示该列的文件名称。
-i 忽略字符大小写的差别。
-l 列出文件内容符合指定的范本样式的文件名称。
-L 列出文件内容不符合指定的范本样式的文件名称。
-n 在显示符合范本样式的那一列之前,标示出该列的编号。
-q 不显示任何信息。
-R/-r 此参数的效果和指定“-d recurse”参数相同。
-s 不显示错误信息。
-v 反转查找。
-w 只显示全字符合的列。
-x 只显示全列符合的列。
-y 此参数效果跟“-i”相同。
-o 只输出文件中匹配到的部分。

 

示例:

只搜索后缀为  .c的文件

grep "config_dm9000".  -rin --include *.c
#在搜索结果中排除所有README文件
grep "main()" . -r --exclude "README"

#在搜索结果中排除filelist文件列表里的文件
grep "main()" . -r --exclude-from filelist

嵌入式中基本上所有的文件都是由busybox中生成的。

可以看到    ls 其实就是   busybox ls

# ls -l /bin/ls
lrwxrwxrwx    1 1000     1000            7 Jan  6  2010 /bin/ls -> busybox
# ls -l bin/cp
lrwxrwxrwx    1 1000     1000            7 Jan  6  2010 bin/cp -> busybox
# busybox ls
bin         lib         mnt         sbin        usr
dev         linuxrc     proc        sys
etc         lost+found  root        tmp
# ls -l /sbin/init
lrwxrwxrwx    1 1000     1000           14 Jan  6  2010 /sbin/init -> ../bin/busybox

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Achou.Wang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值