• Linux常用命令


    常见命令表

    chmod 777 myFile/

    改变文件打开模式(权限)

    其中7是是二进制的111,rwx分别对应读、写、执行权限;三个7分别对应属主、属组、其他用户。改变当前目录下所有文件的读写权限去:chmod -R 777 *

    nano file.c

    打开文件并进行编辑

    ctrl+o保存;ctrl+x退出;如果需要显示当前行列参数打开是用:nano -c file

    mkdir file

    创建文件夹

    可以同时创建多个或者创建多层

    touch test.sh

    创建文件

    同上,sh为脚本命令

    #!/bin/bash

    # 第1个#号用于引用对应头文件,后面的都是注释

    var=10

    echo var = $var

    cp -i test_one test_two

    复制文件

    rm test.sh

    删除文件

    删除所以文件及文件夹:rm -r *

    mv test.sh /files/

    移动文件

    chmod u+x test.sh

    改变文件属性(默认创建的sh没有权限执行)

    u代表用户、g代表组、o代表其他、a代表上述所有

     X:如果对象是目录或者它已有执行权限,赋予执行权限。 s:运行时重新设置UID或GID。 t:保留文件或目录。

    ./test.sh

    执行上面创建的文件脚本

    这里会打印var = 10

    expr 1 + 5

    简单数据计算命令

    可以计算基础的= - * / ( ) | & < > != > %

    bc -q

    解决计算执行过程中无法整数与浮点数计算。进入bc计算后需要输入quit退出

    bash命令中不一定包含,则需要sudo apt-get install bc;

    如果在命令行中直接使用bc进去,结束后用quit退出

    如果在脚本中使用参考如下:

    echo "15+5" | bc

    echo 'scale=2; (2.777 - 1.4744)/1' | bc

    var3=$(echo "scale=4; $var1 / $var2" | bc)

    tar

    tar -czf test.tar.gz *

    tar -cf * test.tar

    tar –xvf file.tar

    tar -xzvf file.tar.gz

    tar -xjvf file.tar.bz2

    tar –xZvf file.tar.Z

    unrar e file.rar

    unzip file.zip

    将当前目录下所有文件打包在一起并压缩

    将当前目录下所有文件打包在一起

    解压 tar 包

    解压 tar.gz

    解压tar.bz2

    解压 tar.Z

    解压 rar

    解压 zip

    arp

    arp -a

    查看同一网段所有ip

    netstat

    netstat -ano | findstr 192.168.0.10

    netstat -apnt

    netstat -apnt | grep java

    netstat -apnt | grep 8080

    windows下运行,查看有哪些端口

    显示端口占用

    查找java占用端口

    查找占用8080端口

    free

    free -h

    查看内存使用情况

    find

    find / -name nginx*

    find -type f -size +100M

    查找 目录 文件名属性 包含nginx的文件*为后面随意

    查找文件大小大于100m的文件

    nohup

    nohup /root/runoob.sh &

    nohup java -jar xxx.jar > /dev/null 2>&1 &

    在系统后台不挂断地运行命令,退出终端不会影响程序的运行。

    &:让命令在后台执行,终端退出后命令仍旧执行。

     > /dev/null 2>&1默认会讲当前打印内容保存到同级目录的nohup.out中,一直追加,导致文件太大,加上这句命令后将输出信息重定向到“黑洞”

    ps

    ps -A | grep java

    ps -ef

    -A显示所有进程,grep所有进程中筛选名字为java的

    -ef显示所有命令,连带命令行

    killall

    killall java

    通过进程名杀死进程(不需要知道PID)

    -e | --exact : 进程需要和名字完全相符

    -I | --ignore-case :忽略大小写

    -u | --user :结束指定用户的进程

    sleep

    sleep 1

    sleep 1s

    延时1秒

    其中 s 为秒,m 为 分钟,h 为小时,d 为日数

    cat

    cat test.log | tail -n 10

    显示文件最后10行

    ifstat

    ifstat -S

    sudo apt-get install ifsta

    -a #监测能检测到的所有网络接口的状态信息

    -z #隐藏流量是无的接口

    -h #显示帮助信息

    -j #用JSON格式输出信息

    -n #关闭显示周期性出现的头部信息

    -t #在每一行的开头加一个时间戳

    -T #报告所有监测接口的全部带宽

    -w #用指定的列宽

    -W #如果内容比终端窗口的宽度还要宽就自动换行

    -S #在同一行保持状态更新(不滚动不换行)

    -q #安静模式

    -v #显示版本信息

    -d #指定一个驱动来收集状态信息

    top

    top

    CPU使用率显示

    grep

    grep xxx file

    grep xxx | yyy file

    -r

    -n

    -R

    文件中查找有xxx的一行显示

    文件中xxx和yyy都匹配的一行

    递归查找

    显示行号

    查找所有文件包含子目录

    iftop

    iftop

    实时显示和对应ip网络速度

    if

    if [ ! -d "/soft/nginx/sbin/" ];then

    mkdir /soft/nginx/sbin/

    else

    echo "nginx文件夹已经存在"

    fi

    ! 取反

    -d 判断文件夹是否存在

    -f 判断文件是否存在

    -e 判断对象是否存在

    -L 判断文件是否存在,并且符号链接

    -h 判断文件是否存在,并且软链接

    -s 判断文件是否存在,并且长度不为0

    -r 判断文件是否存在,并且可读

    -w 判断文件是否存在,并且可写

    -x 判断文件是否存在,并且可执行

    -O 判断文件是否存在,并且属于当前用户

    -G 判断文件是否存在,并且属于当前拥护者

    find命令

    1. -name 按照文件名查找文件。
    2. -perm 按照文件权限来查找文件。
    3. -prune 使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用了- depth选项,那么-prune选项将被find命令忽略。
    4. -user 按照文件属主来查找文件。
    5. -group 按照文件所属的组来查找文件。
    6. -mtime -n +n 按照文件的更改时间来查找文件, -n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime选项,但它们都和-mtime选项
    7. 相似,所以我们在这里只介绍-mtime选项。
    8. -nogroup 查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
    9. -nouser 查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
    10. -newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件。
    11. -type 查找某一类型的文件,诸如:
    12. b - 块设备文件。
    13. d - 目录。
    14. c - 字符设备文件。
    15. p - 管道文件。
    16. l - 符号链接文件。
    17. f - 普通文件。
    18. s - socket文件

    查看有哪些进程

    ps -ef 查看全部

    ps -ef | grep 名字或id

    查看网络占用端口和进程id

    netstat -apnt

    根据子进程查看父进程,显示的pid为子进程,ppid为父进程

    netstat不同环境命令不一样,我的ubuntu服务器上如下

    1. usage: netstat [-vWeenNcCF] [] -r netstat {-V|--version|-h|--help}
    2. netstat [-vWnNcaeol] [ ...]
    3. netstat { [-vWeenNac] -i | [-cWnNe] -M | -s }
    4. -r, --route display routing table
    5. -i, --interfaces display interface table
    6. -g, --groups display multicast group memberships
    7. -s, --statistics display networking statistics (like SNMP)
    8. -M, --masquerade display masqueraded connections
    9. -v, --verbose be verbose
    10. -W, --wide don't truncate IP addresses
    11. -n, --numeric don't resolve names
    12. --numeric-hosts don't resolve host names
    13. --numeric-ports don't resolve port names
    14. --numeric-users don't resolve user names
    15. -N, --symbolic resolve hardware names
    16. -e, --extend display other/more information
    17. -p, --programs display PID/Program name for sockets
    18. -c, --continuous continuous listing
    19. -l, --listening display listening server sockets
    20. -a, --all, --listening display all sockets (default: connected)
    21. -o, --timers display timers
    22. -F, --fib display Forwarding Information Base (default)
    23. -C, --cache display routing cache instead of FIB
    24. ={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom
    25. =Use '-6|-4' or '-A ' or '--'; default: inet
    26. List of possible address families (which support routing):
    27. inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)
    28. netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP)
    29. x25 (CCITT X.25)

    cat /proc/子进程id/status

    根据父进程查看子进程

    pstree -p pid

    apt-get install codeblocks    //安装软件

    apt-cache search opencv    //查询软件

    pkg-config --cflags opencv //输出opencv头文件位置

    pkg-config --libs opencv    //输出库文件

    sudo gedit /etc/id.so.conf.d/opencv.conf                        //打开文本编辑

    sudo ldconfig                        //配置之前保存文本

    unzip opencv-2.4.9             //解压

    cmake .                            //查找CMakeList.txt

    sudo make                        //编译

    sudo make install                //安装编译

    sudo su                                //获取root权限

    g++ `pkg-config --cflags --libs opencv` hello.cpp-o hello进行编译

    cp -r source_dir dest_dir       //复制一个文件到另一个文件夹 移动:mv  A1/DATABASE/X.php      A2 rm     //删除文件 rm -rf 

        //删除文件夹 Ctrl+z使当前任务在后台挂起 bg %N 使第N个任务在后台运行(%前有空格) fg %N 使第N个任务在前台运行 ./name.sh                    //运行bash shell  如果无法运行先更改权限 sudo chmod 777 filename //更改文件权限 //扫描局域网内其他ip地址使用nmap工具 namp -sP 192.168.1.255/24      //列出所有局域网内192.168.1.*下的主机

    //ftp文件访问命令 ftp    //进入ftp环境 open host || open 192.168.1.118    //打开主机,之后会让输入用户名和密码,例如pi,raspberry get filename newfilename                //下载文件并重新命名存放 mget  filename [filename ……]         //下载多个文件,支持通配符,如mget *.mp3 put filename newfilename               //上传文件并重新命名存放,或者使用send命令 delete filename                                 //删除文件 close                                                   //关闭当前ftp会话 quit                                                     //关闭当前ftp会话并退出ftp环境 help [cmd]                                         //显示帮助信息

    //树莓派安装ftp服务器

    1,安装vsftpd服务器 (约400KB) sudo apt-get install vsftpd

    2,启动ftp服务 sudo service vsftpd start

    3,编辑vsftdp的配置文件

    1. sudo nano /etc/vsftpd.conf     //找到以下行,定义一下
    2. anonymous_enable=NO     //表示:不允许匿名访问
    3. local_enable=YES      //设定本地用户可以访问。
    4. write_enable=YES     //设定可以进行写操作
    5. sudo service vsftpd restart     //重启vsftpd服务 //树莓派使用静态IP sudo nano /etc/network/interfaces iface wlan0 inet static        //修改里边内容为左边部分 address 192.168.1.88 netmask 255.255.255.0 gateway 192.168.1.1       //sudo service networking restart 
    6. //树莓派更改软件源,中科大
    7. sudo nano /etc/apt/sources.list deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main contrib non-free rpi
    8. deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main contrib non-free rpi //树莓派vnc使用电脑或者手机显示
    9. sudo apt-get install tightvncserver
    10. sudo tightvncserver     //IP地址连接后加(:窗口号)
    11. vncpasswd         //忘记vnc密码无法登陆,通过这个修改密码

    百度云服务器打开vncserver(我的服务器120.48.61

    1. // 启动服务1
    2. vncserver -kill :1 // 关闭服务1
    3. vncserver -geometry 1280x720 // 按照1280*720分辨率运行界面
    4. // 修改默认分辨率大小
    5. nano /usr/bin/vncserver // 打开这个配置文件,在里面更改$geometry = "1280x720"
    6. // 查看vnc有哪些命令在运行
    7. ps aux | grep vnc

    //树莓派安装中文字体及输入法

    1. sudo apt-get install ttf-wqy-zenhei   //安装中文字体或者
    2. sudo apt-get install ttf-wqy-microhei
    3. sudo apt-get install scim-pinyin      //拼音输入法 装输入法后容易崩溃 
    4. sudo raspi-config //选择change_locale,在Default locale for the system environment:中选择zh_CN.UTF-8
    5. //树莓派屏幕自适应
    6. sudo nano /boot/config.txt     //disable_overscan=1
    7. //raspberry update
    8. sudo apt-get update
    9. sudo apt-get upgrade
    10. sudo rpi-update         //update fireworks such as bios and linux kernal

    拷贝共享代码编译安装:

    以安装tensorflow为例(参考https://github.com/samjabrahams/tensorflow-on-raspberry-pi/blob/master/GUIDE.md

    从网站上克隆下来:

    1. git clone --recurse-submodules https://github.com/tensorflow/tensorflow.git
    2. cd tensorflow
    3. 检查更新
    4. git checkout
    5. 显示安装配置
    6. sudo nano tensorflow/workspace.bzl
    7. 安装
    8. sudo pip install /tmp/tensorflow_pkg/tensorflow-1.1.0-cp27-none-linux_armv7l.whl

    pip命令实现

    1)查找安装包:pip search flask

    2)检查安装包是否有完整的依赖:pip check flask

    3)安装特定版本:pip install flask==0.9

    4)删除安装包:pip uninstall flask

    5)查看安装包信息:pip show flask

    6)查看安装包列表:pip list //树莓派修改系统分区,利用剩余空间,可以试试直接在raspi-config中设置 sudo fdisk /dev/mmcblk0 p查看分区,n新建分区,q退出不保存,w保存并退出 分区1:引导启动分区 分区2:Linux主分区 分区3:swap  重启后sudo resize2fs /dev/sda2 分区信息才能生效 //常用命令

     基础命令

    安装软件 apt-get install softname1 softname2 softname3……

    卸载软件 apt-get remove softname1 softname2 softname3……

    卸载并清除配置 apt-get remove –purge softname1

    更新软件信息数据库 apt-get update

    进行系统升级 apt-get upgrade

    搜索软件包 apt-cache search softname1 softname2 softname3……

    如果使用 apt-get 遇到速度慢或者源不存在等错误,可能需要更换源,请参考此处。

    安装deb软件包 dpkg -i xxx.deb

    删除软件包 dpkg -r xxx.deb

    连同配置文件一起删除 dpkg -r –purge xxx.deb

    查看软件包信息 dpkg -info xxx.deb

    查看文件拷贝详情 dpkg -L xxx.deb

    查看系统中已安装软件包信息 dpkg -l

    重新配置软件包 dpkg-reconfigure xxx

    清除所有已删除包的残馀配置文件

    dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

     

    如果报如下错误,证明你的系统中没有残留配置文件了,无须担心。

    dpkg: –purge needs at least one package name argument

    dpkg安裝的可以用apt卸載,反之亦可。

    aptitude 命令

    aptitude 与 apt-get 一样,是 Debian 及其衍生系统中功能极其强大的包管理工具。与 apt-get 不同的是,aptitude 在处理依赖问题上更佳一些。举例来说,aptitude 在删除一个包时,会同时删除本身所依赖的包。这样,系统中不会残留无用的包,整个系统更为干净。以下是笔者总结的一些常用 aptitude 命令,仅供参考。

    aptitude update 更新可用的包列表

    aptitude upgrade 升级可用的包

    aptitude dist-upgrade 将系统升级到新的发行版

    aptitude install pkgname 安装包

    aptitude remove pkgname 删除包

    aptitude purge pkgname 删除包及其配置文件

    aptitude search string 搜索包

    aptitude show pkgname 显示包的详细信息

    aptitude clean 删除下载的包文件

    aptitude autoclean 仅删除过期的包文件

    当然,你也可以在文本界面模式中使用 aptitude。

    常用apt命令列表

    apt-cache search # ------(package 搜索包)

    apt-cache show #------(package 获取包的相关信息,如说明、大小、版本等)

    sudo apt-get install # ------(package 安装包)

    sudo apt-get install # -----(package - - reinstall 重新安装包)

    sudo apt-get -f install # -----(强制安装?#"-f = --fix-missing"当是修复安装吧...)

    sudo apt-get remove #-----(package 删除包)

    sudo apt-get remove - - purge # ------(package 删除包,包括删除配置文件等)

    sudo apt-get autoremove --purge # ----(package 删除包及其依赖的软件包+配置文件等(只对6.10有效,强烈推荐))

    sudo apt-get update #------更新源

    sudo apt-get upgrade #------更新已安装的包

    sudo apt-get dist-upgrade # ---------升级系统

    sudo apt-get dselect-upgrade #------使用 dselect 升级

    apt-cache depends #-------(package 了解使用依赖)

    apt-cache rdepends # ------(package 了解某个具体的依赖?#当是查看该包被哪些包依赖吧...)

    sudo apt-get build-dep # ------(package 安装相关的编译环境)

    apt-get source #------(package 下载该包的源代码)

    sudo apt-get clean && sudo apt-get autoclean # --------清理下载文件的存档 && 只清理过时的包

    sudo apt-get check #-------检查是否有损坏的依赖

    linux下codeblocks中配置openMP支持多线程

    Compiler Setting里的Other Options中粘贴-fopenmp(若直接使用gcc只用加这个)

    Link Setting里的Other Options中粘贴-lgomp -lpthread

    gzip 命令 

    减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。gzip 是在 Linux 系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。

    语法:gzip [选项] 压缩(解压缩)的文件名该命令的各选项含义如下:

    -c 将输出写到标准输出上,并保留原有文件。-d 将压缩文件解压。-l 对每个压缩文件,显示下列字段:     压缩文件的大小;未压缩文件的大小;压缩比;未压缩文件的名字-r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。-t 测试,检查压缩文件是否完整。-v 对每一个压缩和解压的文件,显示文件名和压缩比。-num 用指定的数字 num 调整压缩的速度,-1 或 --fast 表示最快压缩方法(低压缩比),-9 或--best表示最慢压缩方法(高压缩比)。系统缺省值为 6。指令实例:

    gzip *% 把当前目录下的每个文件压缩成 .gz 文件。gzip -dv *% 把当前目录下每个压缩的文件解压,并列出详细的信息。gzip -l *% 详细显示例1中每个压缩的文件的信息,并不解压。gzip usr.tar% 压缩 tar 备份文件 usr.tar,此时压缩文件的扩展名为.tar.gz。

    wget后加下载链接,下载内容

    wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

    sudo dpkg -i google-chrome-stable_current_amd64.deb 

  • 相关阅读:
    WRT1900ACS搭建openwrt服务器小记
    ubuntu20.04安装FTP服务
    字符串中的assert和strcat
    网络安全笔记 -- RCE代码及命令执行漏洞
    Android端自定义铃声
    【乐吾乐2D可视化组态编辑器】导出HTML,下载离线部署包
    【Java 进阶篇】JavaScript 事件详解
    分布式概念与协议
    华为云云耀云服务器L实例评测|如何保障华为云云耀云服务器L实例的安全和性能
    C++设计实现日志系统
  • 原文地址:https://blog.csdn.net/qq_17242837/article/details/127889183