前言
这里列举一些常用的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文件权限
常见问题
- 文件夹右下角带锁:
$ chown -R fa example - su: Authentication failure Sorry.
$ sudo passwd root - sudo指令执行速度很慢问题
$ hostname (eg:ubuntu) $ echo '127.0.0.1 ubuntu.localdomain ubuntu' >> /etc/hosts
- 修改源
$ sudo gedit /etc/apt/sources.list - 安装完sogou输入法后无法使用
搜索fcitx configuration 软件,打开左下角 “+” ,去掉单选框(only show current language)的对勾,添加sogou注销登录即可 - 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
- 当使用sh脚本执行可执行程序(程序有创建文件的功能)时,直接执行可执行程序,可以创建文件,当执行脚本启用可执行程序时,不能创建文件?
解决办法:在应用程序中创建的文件,请务必使用绝对路径!当在脚本下创建文件时,若文件路径为相对路径,linux会按照默认规则去补全路径,有可能因为默认规则不确定造成创建不了文件。
小技巧:在脚本中使用echo $?
可以获取应用程序执行状态,应用程序中getenv()函数
可以获取命令行返回值
- 增加快捷命令:(vim ~/.bashrc 重启依旧生效)
$ qt:alias qt='/home/moro/Qt5.7.0/Tools/QtCreator/bin/qtcreator &'
- 关于源
在执行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 删除卡顿的地方
-
查看已连接wifi的密码
$ cat /etc/NetworkManager/system-connections
-
安装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