linux常用命令

一 文件
1 、grep命令
  它能使用正则表达式搜索文本,并把匹配的行打印出来。
grep -r "static\ void\ get_file" ../(搜索带空格的字符)
  显示行号-n
2、find命令
  形式:find path -name filename
  find ~ -name ap 在~目录下查找以ap开始的文件
  find / | xargs grep function查找系统根目录下面的所有文件的内容中包含有function字符串的文件列表。find 得到的结果是一串文件名集合,如果直接传递给grep的话,grep会把这些文件名看作一些无意义的字符串来处理。
  find . | xargs grep -r "static\ void\ get_file"
  find . | xargs grep static  
3、文件个数和行数
  源文件数目:
$ find . -name “
.[hc]” | wc -l
  源代码总行数:
$ find . -name “*.[hc]” | xargs wc -l | tail -n1
25562 总计
4、远程拷贝
  scp命令是用于Linux与Linux主机之间的传输数据通信,而XCOPY命令用于Windows与Windows主机之间的数据传输。
  linux 本地文件上传到服务器:
scp /home/liujia/file.1txt liujia@172.16.252.32:/user/liujia
  从服务器下载文件
scp liujia@172.16.252.32:/user/liujia/file1.txt /home/liujia
  错误not a regular file:原因是这样是相当于下载文件夹,而非文件。解决办法加参数-r。
5、软连接
文件软链接
ln -s x x
目录软连接
ln -s /x/x /x/x
必须为绝对路径。
二、进程
1、&符号
  用途:可以在Linux命令或者脚本后面增加&符号,从而使命令或脚本在后台执行,例如:$ ./my-shell-script.sh &
2、nohup
  使用&符号在后台执行命令或脚本后,如果你退出登录,这个命令就会被自动终止掉。要避免这种情况,你可以使用nohup命令,如下所示:$ nohup ./my-shell-script.sh &,如果想要找到这个运行在后台的命令:ps -ef | grep filename
3、at
  将一个命令作为批处理执行,使用at命令,你可以让一个命令在指定的日期和时间运行,例如要在明天上午10点在后台执行备份脚本,执行下面的命令:$ at -f backup.sh 10 am tomorrow 在批处理模式下执行某些任务需要启用一些选项。
4、watch
  连续地执行一个命令 要想按一个固定的间隔不停地执行一个命令,可以使用watch命令,如下所示:$ watch df -h
5、查看使用某端口的进程
  lsof -i:<port>AxiTrader代理申请www.kaifx.cn/broker/axitrader.html (在ubuntu平台上如果前面不加sudo,毛都打印不出来)netstat -tunlp |grep <port>
三 网络
1、查看进程占用端口
  netstat -nap|grep <pid>
2、nslookup(dns域名解析)
  nslookup可以指定查询的类型,可以查到DNS记录的生存时间还可以指定使用哪个DNS服务器进行解释。在已安装TCP/IP协议的电脑上面均可以使用这个命令。主要用来诊断域名系统 (DNS) 基础结构的信息。nslookup(name server lookup)(域名查询):是一个用于查询 Internet域名信息或诊断DNS 服务器问题的工具。
  nslookup是一个程序的名字,这个程序让因特网服务器管理员或任何的计算机用户输入一个主机名(举例来说,“whatis.com.cn”)并发现相应的IP地址。它也会相反的名字查找为一个你指定的 IP 住址找出主机名。
  举例,如果使用者输入了“whatis.com.cn”(TechTarget中国站点之一),将会接受该网站的IP地址作为回应,是: 65.214.43.37或如果你输入了“65.214.43.37”,它会返回“sites.techtarget.com.cn”。
重启网络服务:sudo /etc/init.d/networking restart
3、 ifconfig
  ifconfig命令简单使用,打印出网卡信息,一般电脑上的网卡为有线网卡和无线网卡,以及本路回环地址:lo信息。
[sunjimeng@localhost ~]$ ifconfig         //未联网时的参数
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:0c:29:4d:a3:cc txqueuelen 1000 (Ethernet)
RX packets 1914 bytes 174936 (170.8 KiB)
RX errors 0 dropped 36 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 3246 bytes 281472 (274.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3246 bytes 281472 (274.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[sunjimeng@localhost ~]$ ifconfig //连接到有线网时的参数
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 //mtu表示最大传输单元
inet 192.168.117.128 netmask 255.255.255.0 broadcast 192.168.117.255
inet6 fe80::20c:29ff:fe4d:a3cc prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:4d:a3:cc txqueuelen 1000 (Ethernet)
RX packets 1969 bytes 181974 (177.7 KiB)
RX errors 0 dropped 36 overruns 0 frame 0
TX packets 48 bytes 6324 (6.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 3590 bytes 310452 (303.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3590 bytes 310452 (303.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
  1、en(Number)指的是网卡,可以看到目前这个网卡的物理地址(MAC地址)是 00:0c:29:4d:a3:cc。
  2、inet后表示ip地址,此网卡的ip地址是192.168.117.128,广播地址是192.168.117.255,掩码地址为255.255.255.0。
  3、lo是表示主机的回坏地址,这个一般是用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。
  打开或关闭网卡:
[root@localhost sunjimeng]# ifconfig eno16777736 down
[root@localhost sunjimeng]# ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 3598 bytes 311224 (303.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3598 bytes 311224 (303.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@localhost sunjimeng]# ifconfig eno16777736 up
[root@localhost sunjimeng]# ifconfig
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:0c:29:4d:a3:cc txqueuelen 1000 (Ethernet)
RX packets 2013 bytes 185705 (181.3 KiB)
RX errors 0 dropped 36 overruns 0 frame 0
TX packets 88 bytes 9726 (9.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 3602 bytes 311520 (304.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3602 bytes 311520 (304.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
  ifconfig -a无论是否激活,显示所有配置的网络接口,不带参数的只显示已激活的网络接口。
四、显示内存中所有进程详细信息
ps aux
查询某个进程信息
ps -aux | grep <进程号>
stat 中的参数意义如下:
D 不可中断 Uninterruptible(usually IO)
R 正在运行,或在队列中的进程
S 处于休眠状态
T 停止或被追踪
Z 僵尸进程
W 进入内存交换(从内核2.6开始无效)
X 死掉的进程
< 高优先级
n 低优先级
s 包含子进程

  • 位于后台的进程组
    五、linux上进程有5种状态:
    运行(正在运行或在运行队列中等待)
    中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
    不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
    僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
    停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)
    ps工具标识进程的5种状态码:
    D 不可中断 uninterruptible sleep (usually IO)
    R 运行 runnable (on run queue)
    S 中断 sleeping
    T 停止 traced or stopped
    Z 僵死 a defunct (”zombie”) process
    注: 其它状态还包括W(无驻留页), <(高优先级进程), N(低优先级进程), L(内存锁页).
    要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而ps命令就是最基本同时也是非常强大的进程查看命令.使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等等.
    六、拷贝文件命令
    格式:cp [-参数] 源文件(source) 目标文件(destination)
    例如:复制myPro_lm文件夹到backup文件夹下。-r表示递归复制文件夹下的子文件
    cp a.txt a.txt.bak #备份a.txt文件在当前目录
    七、新建、删除目录命令
    新建:
    mkdir [选项] 目录名
    -p选项:递归建立所需目录
    删除:
    rm [选项] 文件名
    例如:删除backup文件夹
    删除文件夹的内容包括文件夹:
    rm -rf 文件夹的名字 (-r 是 循环的意思, f是不询问的意思)
    删除文件夹的内容不包括文件夹:
    rm -rf 文件夹的名字/ (后面加上/表示删除内容不删除文件夹)
上一篇:errors


下一篇:sqlalchemy.exc.IntegrityError: (mysql.connector.errors.IntegrityError) 1062 (23000): Duplicate entry