常用linux命令

前言

这里列举一些常用的linux操作,后续随时添加

工具

$ getconf LONG_BIT #获取系统位数
$ sudo apt-get install nautilus-open-terminal #添加终端至鼠标右键
$ sudo apt-get install ssh #winscp xshell

串口

$ lsmod|grep usbserial #确认系统是否支持
$ dmesg|grep ttyUSB #查看串口设备          
$ sudo apt-get install minicom #安装minicom 
$ sudo minicom -s #配置minicom
$ sudo vim /etc/udev/rules.d/70-ttyusb.rules #设置串口权限
  KERNEL=="ttyAMA[0-9]*",MODE="0666"
$ stty -F /dev/ttyAMA3 speed 115200 cs8 -parenb -cstopb # 简单调试串口
$ cat /dev/ttyAMA3
$ echo -e -n "\xff\xff" > /dev/ttyAMA3
$ echo "hello"> /dev/ttyAMA3

远程

$ sudo apt-get install xrdp
$ sudo apt-get install vnc4server tightvncserver

网络

$ sudo nano /etc/network/interfaces #配置无线&有线
  auto lo
  iface lo inet loopback

  auto eth0
  allow-hotplug eth0
  iface eth0 inet static

  address 121.194.93.87
  netmask 255.0.0.0
  gateway 121.194.93.254
  broadcast 121.194.93.255

  dns-nameservers 202.204.105.1
  dns-nameservers 202.204.105.5

  auto wlan0
  allow-hotplug wlan0
  iface wlan0 inet dhcp
          wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf    

$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf #配置无线
  network={
      ssid="root"
      psk="123456789"
      }
$ /etc/init.d/network restart #更新配置
$ ifconfig -a

文件说明

时间

$ date
$ date -s "2017-03-22 11:43:30" #校时
$ sudo apt-get install ntpdate #校时
$ ntpdate 210.72.145.44 #中国(国家授时中心)

清理

$ sudo apt-get clean #清理升级缓存以及无用包
$ sudo apt-get autoclean
$ sudo apt-get autoremove
$ sudo apt-get remove 软件名 #卸载

磁盘

$ df -h #查看磁盘状况
$ mount/umount #eg:mount [选项] 设备 目录(选项-a 把/etc/fstab文件中列出的文件系统都挂载上)
$ ls /dev/sd* #eg:sdb sdb1 sdb2
$ umount /dev/sdb
$ umount /dev/sdb1
$ umount /dev/sdb2
$ umount /dev/sdb3

$ mkfs.vfat /dev/sdb1  #fat32格式
$ mkfs.vfat /dev/sdb2   
$ mkfs.vfat /dev/sdb3
$ mkfs.vfat -I /dev/sdb

文件

$ pwd #当前所在目录
$ ls -l | more #以列表方式分页显示
$ touch #建立空文件,eg:touch file1 file2 file3
$ du #查看文件(夹)大小
$ ln -s #链接
$ head #查看文本文件开头部分
$ tail #查看文本文件末尾几行
$ more #分页显示内容
$ less #显示文件内容带分页
$ grep #在文本中查询内容

压缩

$ tar -zcvf FileName.tar.gz DirName
$ tar -zxvf FileName.tar.gz

$ tar -cvf test.tar /usr/test #tar (只是打包动作,相当于归档处理,不做压缩)
$ tar -xvf test.tar

$ tar -jcvf test.tar.bz2 /usr/test #tar.bz2
$ tar -jxvf test.tar.bz2

$ gzip -d examples.gz examples #gz
$ gunzip examples.gz

$ zip -r examples.zip examples (examples为目录) #zip
$ zip examples.zip

$ rar -a examples.rar examples #rar
$ rar -x examples.rar

用户

$ passwd #修改密码
$ passwd root #修改root密码
$ groupadd 组名 #添加组
$ groupdel 组名 #删除组
$ userdel fa #删除用户
$ useradd fa 组名 #添加用户HJ
$ users #查看所有用户
$ cat /etc/group #查看所有组的信息
$ chmod 777 用户名 #修改目录权限
$ chown [用户:组] 文件 #更改文件所有的组或用户,eg:sudo chown fa:fa widora.zip

搜索

$ find / -name xxx #从根目录开始查找名为xxx的文件(/代表根目录)
$ find / -amin -10 #10分钟内存取过的文件或目录
$ find / -atime -10 #10小时内存取过的文件或目录
$ find / -size +10k #查找大于10K的文件
$ whereis ser2net
$ find .|xargs grep -ri "要查找的字符串" #r表示递归 i表示不区分大小写

进程

$ ps -a #当前窗口的全部进程
$ ps -x #查看全部进程
$ ps -ef|grep demo|grep -v grep|awk '{print $2}' #获取进程 PID(这里添加-v grep是为了避免匹配到grep进程)
$ ps -ef | awk '/[d]emo/{print $2}' #(名称首字母加[]的目的是为了避免匹配到 awk自身的进程)
$ ps x | awk '/[d]emo/{print $1}' #只使用x参数,pid位于第一位
$ pgrep -f name
$ pkill -f name
$ kill -9 进程号 #结束进程
$ pidof name #可执行程序,可以直接使用 pidof
#eg:根据进程名获取进程 PID
	#! /bin/bash
	# process-monitor.sh
	process=$1
	pid=$(ps x | grep $process | grep -v grep | awk '{print $1}')
	echo $pid
$ . process-monitor.sh demo

# 根据 pid 查看对应的进程是否存在(运行),这个方法也可以用于 kill 指定的进程
if ps -p $PID > /dev/null
then
   echo "$PID is running"
   # Do something knowing the pid exists, i.e. the process with $PID is running
fi

man

/string #向上搜索
?string #向下搜索
$ man -f 关键字 #关键字搜索
  q #退出

服务

$ sudo update-rc.d 服务名 defaults 99 #添加一个服务
$ sudo update-rc.d 服务名 remove #删除一个服务
$ /etc/init.d/服务名 restart #临时重启一个服务
$ /etc/init.d/服务名 stop #临时关闭一个服务
$ /etc/init.d/服务名 start #临时启动一个服务

开机自启

方法1:编辑/etc/rc.local/etc/init.d/rc.local 文件,添加运行可执行程序的命令,注意运行权限

方法2:添加开机启动服务

$ sudo cp demo /etc/init.d #将可执行程序复制或软链接到`/etc/init.d/`目录下
$ sudo chmod 755 /etc/init.d/demo #设置权限
$ cd /etc/init.d && sudo update-rc.d demo defaults 5 #5表示启动顺序
$ cd /etc/init.d && sudo update-rc.d -f demo remove #卸载启动脚本
$ ps -ef|grep demo
$ ps -aux|grep demo #查看进程

快捷命令

$ vim ~/.bashrc
$ alias lss='ls -al' #添加到最后一行即可
$ unalias run #删除别名

ser2net

$ sudo apt-get install ser2net
$ whereis ser2net
  ser2net:  /usr/sbin/ser2net /etc/ser2net.conf
  /usr/share/man/man8/ser2net.8.gz
$ vi ser2net.conf
  8081:raw:600:/dev/ttyAMA3:115200 8DATABITS NONE 1STOPBIT banner
$ sudo nano /etc/rc.local
  /usr/sbin/ser2net -c /etc/ser2net.conf
$ ps -ef | grep ser2net

配置格式说明
<TCP port> : <state> : <timeout> : <device> : <options>

  • TCP port:TCP/IP端口号(可以加IP,如127.0.0.1,2000或者localhost,2000)
  • state: 四种可选状态
    off: 禁止该端口的连接
    raw: 端口和串口设备之间双向通信
    rawlp: 端口向串口设备单向通信
    telnet: 使用telnet协议
  • timeout:单位s,没有数据传输时,该端口到设定时间时自动关闭。写0关闭该功能
  • device: 指定映射本机的哪个串口(This must be in the form of /dev/)
  • options:设置串口的参数如:波特率(115200)校验(EVEN,ODD,NONE)等

samba服务

$ sudo apt-get install samba
$ sudo apt-get install smbclient
$ sudo vi /etc/samba/smb.conf # 编辑配置

[global]
security = user #share:使用此等级,用户不需要帐号及密码可以登陆Samba服务器
guest account = nobody
map to guest = bad user
[FriendlyARM Debian]
comment = FriendlyARM debian share
browseable=yes
path=/home/fa/Desktop/rofish/ #共享文件夹路径
public=yes
readonly=no #和writeable=yes等效
guest ok=yes

$ sudo testparm /etc/samba/smb.conf #测试参数
$ smbpasswd -a fa #添加用户,最后要注意linux文件权限

常见问题

  1. 文件夹右下角带锁:
    $ chown -R fa example
  2. su: Authentication failure Sorry.
    $ sudo passwd root
  3. sudo指令执行速度很慢问题
    $ hostname (eg:ubuntu) $ echo '127.0.0.1 ubuntu.localdomain ubuntu' >> /etc/hosts
  4. 修改源
    $ sudo gedit /etc/apt/sources.list
  5. 安装完sogou输入法后无法使用
    搜索fcitx configuration 软件,打开左下角 “+” ,去掉单选框(only show current language)的对勾,添加sogou注销登录即可
  6. sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set
    $ chown root:root /usr/bin/sudo $ chmod 4755 /usr/bin/sudo
  7. 当使用sh脚本执行可执行程序(程序有创建文件的功能)时,直接执行可执行程序,可以创建文件,当执行脚本启用可执行程序时,不能创建文件?

解决办法:在应用程序中创建的文件,请务必使用绝对路径!当在脚本下创建文件时,若文件路径为相对路径,linux会按照默认规则去补全路径,有可能因为默认规则不确定造成创建不了文件。
小技巧:在脚本中使用echo $?可以获取应用程序执行状态,应用程序中getenv()函数可以获取命令行返回值

  1. 增加快捷命令:(vim ~/.bashrc 重启依旧生效)
    $ qt: alias qt='/home/moro/Qt5.7.0/Tools/QtCreator/bin/qtcreator &'
  2. 关于源

在执行sudo apt-get update 之后,出现错误:
正在读取软件包列表… 完成
W: Duplicate sources.list entry http://cn.archive.ubuntu.com karmic/main Packages (/var/lib/apt/lists/cn.archive.ubuntu.com_ubuntu_dists_karmic_main_binary-i386_Packages)
解决办法:sudo vim /etc/apt/sources.list 删除卡顿的地方

  1. 查看已连接wifi的密码
    $ cat /etc/NetworkManager/system-connections

  2. 安装sublime

    $ sudo add-apt-repository ppa:webupd8team/sublime-text-3
    $ sudo apt-get update 
    $ sudo apt-get install sublime-text-installer
    #sublime无法输入中文: http://www.cnblogs.com/fench/p/6792028.html
    
  • 5
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值