• Linux常用shell命令


    1.>>>>>刚安装好的ubuntu需要为root创建密码
    【解决】
    passwd root


    2.>>>>>安装完ubuntu后需要更新
    【解决】
    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get dist-upgrade


    3.>>>>>ubuntu vi不能正常使用方向键与退格键的问题
    【解决】
    ubuntu预装的是vim tiny版本,而需要的是vim full版本,sudo apt-get install vim


    4.>>>>>ubuntu远程登录不了
    【解决】
    第一步 检测是否真的启用了SST -server
    使用命令 ps -e |grep ssh

    如果只有ssh-agent, 没有sst-server

    则说明ssh-server还没有安装或者没有启用.需要检验一下它是否真的被安装到了你的ubuntu上。(默认情况下是没有被安装的)
    第二步 检验是否安装了 SST -server
    在终端中输入命令:/etc/init.d/ssh start,如果在返回结果中看到sshd那说明ssh-server已经启动了。
    第三步 安装 SST -server
    在终端中输入命令 :sudo apt-get install openssh-server

    Ubuntu缺省安装了openssh-client,所以在这里就不安装了,如果你的系统没有安装的话,再用apt-get安装上即可。

    然后确认sshserver是否启动了:

    ps -e |grep ssh


    5.>>>>>创建samba用户
    【解决】
    安装samba:
    sudo apt-get install samba
    sudo apt-get install smbclient
    sudo smbpasswd usrname
    Samba服务器的启动、关闭和重启
    启动Samba服务器只需执行如下命令:
    #sudo /etc/init.d/samba start
    关闭Samba服务器:
    #sudo /etc/init.d/samba stop
    重新启动Samba服务器:
    #sudo /etc/init.d/samba restart
    #sudo service smbd restart
    启动Samba服务器后,可以使用ps命令查看进程:
    #ps -aux

    配置samba账户
    [andy]
    comment = andy samba
    path = /home/andy
    browseable = yes
    writeable = yes
    valid users = andy
    admin users = andy


    6.>>>>>两台ubuntu计算机相互传输文件
    【解决】
    查看防火墙状态:
    /etc/init.d/iptables status
    若防火墙启用,暂时关闭防火墙:
    /etc/init.d/iptables stop
    检查两台linux系统服务器网络是否通畅。
    在A上pingB。
    保证两台linux服务器网络是畅通的。
    在本地A拷贝远端的服务器B上的文件:
    scp root@[B的ip地址或主机名]:[B上存放文件路径] /文件 [A上存放的文件路径]
    如:scp root@192.168.3.58:/home/oracle/test.sql /home/oracle
    在本地A拷贝远端的服务器B上的文件夹及文件夹下的文件:
    scp -r root@[B的ip地址或主机名]:[B上存放文件路径] [A上存放的文件路径]
    如:scp -r root@192.168.3.58:/test /test


    7.>>>>>使用rsync命令从网络服务器下载代码
    【解决】
    rsync –avz rsync://10.10.10.254/iSDK/ /home/iSDK/


    8.>>>>>在ubuntu下安装rpm包
    【解决】
    下载rpm包后,可以通过安装 fakeroot 和 alien 工具将 rpm 包转换为 deb
    包, 安装命令为: sudo apt-get install alien fakeroot
    使用 alien 将 rpm 包转换为 deb 包:fakeroot alien package.rpm
    一旦转换成功,我们可以即刻使用以下指令来安装:sudo dpkg -i package.deb


    9.>>>>>修改下载源镜像
    【解决】
    可以使用以下列表中的任何一个源镜像只要往 /etc/apt/sources.list 文件中像下面这样添加一行:
    deb http://cz.archive.ubuntu.com/ubuntu utopic main universe

    sudo add-apt-repository ppa:ubuntu-wine/ppa
    sudo apt-get update
    sudo apt-get install wine

    安装好的软件也可以直接到這裏找 deb 檔案 (如果還未被移除的話)
    sudo ls -al /var/cache/apt/archives/


    10.>>>>>编译vlc开源代码
    【解决】
    1.下载vlc源码包
    sudo apt-get install vlc
    2.把源代码解压之后也是先运行一下bootstrap,看看缺什么工具没有,例如gcc、make、libtool、automake、autoconfig等是否有合适的版本
    #sudo apt-get build-dep vlc
    3.安装必须的工具包否则后面会出错
    #apt-get install autoconf automake libtool git subversion
    4.安装最新的VLC
    #cd /home/git_work
    #git clone git://git.videolan.org/vlc.git
    5.配置环境
    ./configure --prefix=/home/andy/project/git_work/vlc/ (指定make install 要安装的目录)
    6.如果显示错误,则分别安装下面的软件
    sudo apt-get install liblua5.2
    sudo apt-get install libxcb-shm0-dev
    sudo apt-get install libavcodec-dev
    sudo apt-get install libavformat-dev
    sudo apt-get install libswscale-dev
    sudo apt-get install libpostproc-dev
    sudo apt-get install liba52-dev
    sudo apt-get install libxcb-xv0-dev
    7.然后执行下面的命令
    ./configure --disable-lua --disable-mad --disable-avcodec --disable-avformat --disable-swscale --disable-postproc --disable-a52
    然后执行make


    11.>>>>>ubuntu下格式化U盘
    【解决】
    首先执行sudo fdisk -l查看你的u盘的序号,通常是/dev/sdb之类的,U盘分区通常是/dev/sdb1
    对于u盘我们一般格式化为FAT格式或者FAT32格式,不过在linux下这些会都显示为FAT格式。我们只需要执行命令:
    sudo mkfs.vfat -F 32 /dev/sdb1即可将u盘格式化为fat32格式。
    假如你要把指定磁盘格式化为NTFS格式那么你需要sudo apt-get install ntfsprogs来安装ntfs读写工具,然后执行sudo mkfs.ntfs /dev/sda1,此过程会很慢。对于要格式化为linux ext格式的分区就更容易了:
    sudo mkfs.ext4 /dev/sda1 # 格式化为ext4分区
    sudo mkfs.ext3 /dev/sda1 # 格式化为ext3分区
    sudo mkfs.ext2 /dev/sda1 #格式化为ext2分区
    PS:对于要格式化的分区必须要先用umount卸载掉才能格式化哦。


    12.>>>>>安装doxygen工具
    【解决】
    apt-get install doxygen doxygen-gui graphviz
    http://www.doxygen.org/官网
    使用命令:doxywizard


    13.>>>>>ubuntu脚本sh默认使用dash,建议使用bash
    【解决】
    ls -al /bin/sh可以查看当前使用哪种方式,sudo dpkg-reconfigure dash命令选择NO选项改为Bash


    14.>>>>>设置网络IP、mask、GW
    【解决】
    ifconfig eth0 10.8.11.245 netmask 255.255.248.0
    route add default gw 10.8.8.1
    LC640415040000000020


    15.>>>>>修改默认进入图形界面
    【解决】
    每次都进入unity界面再进入命令行很不方便,不需要界面的话,可以通过设置来开机进入命令行模式。
    命令:sudo vi /etc/default/grub找到这一行
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 改成 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash text"
    在输入命令:sudo update-grub
    开机后就自动进入tty1了。


    16.>>>>>使用git命令下载json-c代码并编译
    【解决】
    下载命令:
    $ git clone https://github.com/json-c/json-c.git ./
    $ cd json-c
    $ sh autogen.sh
    编译命令:
    $ ./configure
    $ make
    $ make install
    运行test程序:
    $ make check
    If your system has pkgconfig , then you can just add this to your makefile :
    CFLAGS += $(shell pkg-config --cflags json-c)
    LDFLAGS += $(shell pkg-config --libs json-c)


    17.>>>>>编译命令
    【产测】
    source build.sh husky HEAD mtest /home/andy/project/xtest/trunk/output
    【SDK】
    source mickey_build.sh /home/andy/project/bcm7583/trunk/output_mickey/ mickey


    18.>>>>>shell脚本通配符 $* $@ $#
    脚本名称叫test.sh 入参三个: 1 2 3运行test.sh 1 2 3后
    $*为"1 2 3"(一起被引号包住)
    $@为"1" "2" "3"(分别被包住)
    $#为3(参数数量)

    $$ Shell本身的PID(ProcessID)
    $! Shell最后运行的后台Process的PID
    $? 最后运行的命令的结束代码(返回值)
    $- 使用Set命令设定的Flag一览
    $* 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
    $@ 所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
    $# 添加到Shell的参数个数
    $0 Shell本身的文件名
    $1~$n 添加到Shell的各参数值。$1是第1参数、$2是第2参数…。

    文件比较运算符
    -e filename 如果 filename存在,则为真 [ -e /var/log/syslog ]
    -d filename 如果 filename为目录,则为真 [ -d /tmp/mydir ]
    -f filename 如果 filename为常规文件,则为真 [ -f /usr/bin/grep ]
    -L filename 如果 filename为符号链接,则为真 [ -L /usr/bin/grep ]
    -r filename 如果 filename可读,则为真 [ -r /var/log/syslog ]
    -w filename 如果 filename可写,则为真 [ -w /var/mytmp.txt ]
    -x filename 如果 filename可执行,则为真 [ -L /usr/bin/grep ]
    filename1-nt filename2 如果 filename1比 filename2新,则为真 [ /tmp/install/etc/services -nt /etc/services ]
    filename1-ot filename2 如果 filename1比 filename2旧,则为真 [ /boot/bzImage -ot arch/i386/boot/bzImage ]
    字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)
    -z string 如果 string长度为零,则为真 [ -z "$myvar" ]
    -n string 如果 string长度非零,则为真 [ -n "$myvar" ]
    string1= string2 如果 string1与 string2相同,则为真 [ "$myvar" = "one two three" ]
    string1!= string2 如果 string1与 string2不同,则为真 [ "$myvar" != "one two three" ]
    算术比较运算符
    num1-eq num2 等于 [ 3 -eq $mynum ]
    num1-ne num2 不等于 [ 3 -ne $mynum ]
    num1-lt num2 小于 [ 3 -lt $mynum ]
    num1-le num2 小于或等于 [ 3 -le $mynum ]
    num1-gt num2 大于 [ 3 -gt $mynum ]
    num1-ge num2 大于或等于 [ 3 -ge $mynum ]


    19.>>>>>Ubuntu终端里面显示路径名称太长, 修改只显示当前目录
    【解决】
    $: sudo vi ~/.bashrc 这个文件记录了用户终端配置
    找到
    if [ "$color_prompt " = yes ]; then
    PS1 ='${debian_chroot:+($debian_chroot)}
    else
    PS1 ='${debian_chroot:+($debian_chroot)}u@h: ——————W —修改这个——————— $ '
    将红色的w由小写改成大写,可以表示只显示当前目录名称.


    20.>>>>>挂在nfs文件系统
    【解决】
    mount -t nfs -o rw 10.140.133.9:/export/homesky /mnt/nfs
    首先安装nfs-kernel-server:apt-get install nfs-kernel-server
    然后创建一个目录:mkdir -p /opt/share
    并赋予权限777:chmod -R 777 /opt/share
    在/etc/exports文件中添加配置:/opt/share 10.112.18.0/255.255.255.0(rw,no_root_squash)
    在/etc/hosts.allow中添加配置:portmap:10.112.18.0/255.255.255.0
    在/etc/hosts.deny中添加配置:portmap:ALL

    重新启动两个服务:service portmap restart
    service nfs-kernel-server restart

    在另一台Ubuntu上安装nfs-common:apt-get install nfs-common
    然后创建目录test:mkdir ~/test
    然后运行测试命令看一下:# showmount -e 10.112.18.158
    Export list for 10.112.18.158: /opt/share 10.112.18.0/255.255.255.0
    找到nfs server的挂载目录了。现在手工挂载:mount -t nfs4 10.112.18.158:/opt/share ~/test/
    现在可以测试了,应该成功。


    21.>>>>>设置虚拟机静态IP
    【解决】
    1、配置静态IP地址:
    # vim /etc/network/interfaces
    原内容有如下4行:
    auto lo
    iface lo inet loopback

    auto eth0
    iface eth0 inet dhcp
    以上表示默认使用DHCP分配IP,修改为如下:
    auto lo
    iface lo inet loopback

    # The primary network interface
    auto eth0
    #iface eth0 inet dhcp

    iface eth0 inet static
    address 192.168.80.129
    netmask 255.255.255.0
    gateway 192.168.80.2
    保存退出。
    注意:只需要设置address(IP地址)、netmask(子网掩码)、gateway(网关)这三项就OK,network和broadcast这两项参数是可以不写的。
    2、手动设置DNS服务器:
    # vim /etc/resolv.conf
    添加如下内容(这点所有Linux发行版都通用):
    nameserver 192.168.80.2
    nameserver 8.8.8.8
    保存退出。
    注意:重启Ubuntu后发现又不能上网了,问题出在/etc/resolv.conf。重启后,此文件配置的dns又被自动修改为默认值。所以需要永久性修改DNS。方法如下:
    # vim /etc/resolvconf/resolv.conf.d/base
    nameserver 192.168.80.2
    nameserver 8.8.8.8
    3、重启networking服务使其生效:
    # /etc/init.d/networking restart
    这样网络配置就永久生效。


    22.>>>>>apt-get命令参数使用
    【解决】
      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 package - - purge 删除包,包括删除配置文件等
      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 检查是否有损坏的依赖


    23.>>>>>64bit系统兼容32bit问题
    【解决】
    使用64bit系统编译时遇到很多兼容性问题,需要安装以下兼容库,
    sudo apt-get install ia32-libs, 如果提示无法安装此库可以安装下面几个兼容库
    sudo apt-get install lib32stdc++6 lib32z1 lib32ncurses5 lib32bz2-1.0


    24.>>>>>linux下svn递归添加文件
    【解决】
    svn st | awk '{if ($1 == "?") {print $2} }' | xargs svn add
    svn add . --no-ignore --force


    25.>>>>>海思项目出现异常编译错误
    【解决】
    “DoorBell HD”目录不能带空格;

    26.>>>>>ubuntu静态IP不能上网问题
    【解决】
    sudo vi /etc/network/interfaces
    添加如下内容:
    iface eth0 inet static
    address 192.168.1.122
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 202.106.0.20
    sudo /etc/init.d/networking restart
    sudo reboot
    ifconfig检查是否设置正确
    ping www.baidu.com检查是否可以联网

  • 相关阅读:
    mysql 数据库信息常用命令
    Linux 目录详细介绍
    RPC调用和HTTP调用的区别
    maven 常见命令
    SpringCloud微服务常见组件理解
    Java实现CORS跨域请求
    Java 静态代理和动态代理例子
    Mabatis中#{}和${}的区别
    针对海量数据和高并发的主要解决方案
    SOAP webserivce 和 RESTful webservice 对比及区别
  • 原文地址:https://www.cnblogs.com/liudeen/p/10157015.html
Copyright © 2020-2023  润新知