常见命令表
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 -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命令
-name 按照文件名查找文件。
-perm 按照文件权限来查找文件。
-prune 使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用了- depth选项,那么-prune选项将被find命令忽略。
-user 按照文件属主来查找文件。
-group 按照文件所属的组来查找文件。
-mtime -n +n 按照文件的更改时间来查找文件, -n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime选项,但它们都和-mtime选项
相似,所以我们在这里只介绍-mtime选项。
-nogroup 查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
-nouser 查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
-newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件。
-type 查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
s - socket文件
查看有哪些进程
ps -ef 查看全部
ps -ef | grep 名字或id
查看网络占用端口和进程id
netstat -apnt
根据子进程查看父进程,显示的pid为子进程,ppid为父进程
netstat不同环境命令不一样,我的ubuntu服务器上如下
usage: netstat [-vWeenNcCF] [<Af>] -r netstat {-V|--version|-h|--help}
netstat [-vWnNcaeol] [<Socket> ...]
netstat { [-vWeenNac] -i | [-cWnNe] -M | -s }
-r, --route display routing table
-i, --interfaces display interface table
-g, --groups display multicast group memberships
-s, --statistics display networking statistics (like SNMP)
-M, --masquerade display masqueraded connections
-v, --verbose be verbose
-W, --wide don't truncate IP addresses
-n, --numeric don't resolve names
--numeric-hosts don't resolve host names
--numeric-ports don't resolve port names
--numeric-users don't resolve user names
-N, --symbolic resolve hardware names
-e, --extend display other/more information
-p, --programs display PID/Program name for sockets
-c, --continuous continuous listing
-l, --listening display listening server sockets
-a, --all, --listening display all sockets (default: connected)
-o, --timers display timers
-F, --fib display Forwarding Information Base (default)
-C, --cache display routing cache instead of FIB
<Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom
<AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: inet
List of possible address families (which support routing):
inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)
netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP)
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的配置文件
sudo nano /etc/vsftpd.conf //找到以下行,定义一下
anonymous_enable=NO //表示:不允许匿名访问
local_enable=YES //设定本地用户可以访问。
write_enable=YES //设定可以进行写操作
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
//树莓派更改软件源,中科大
sudo nano /etc/apt/sources.list deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main contrib non-free rpi
deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main contrib non-free rpi //树莓派vnc使用电脑或者手机显示
sudo apt-get install tightvncserver
sudo tightvncserver //IP地址连接后加(:窗口号)
vncpasswd //忘记vnc密码无法登陆,通过这个修改密码
百度云服务器打开vncserver(我的服务器120.48.61
// 启动服务1
vncserver -kill :1 // 关闭服务1
vncserver -geometry 1280x720 // 按照1280*720分辨率运行界面
// 修改默认分辨率大小
nano /usr/bin/vncserver // 打开这个配置文件,在里面更改$geometry = "1280x720"
// 查看vnc有哪些命令在运行
ps aux | grep vnc
//树莓派安装中文字体及输入法
sudo apt-get install ttf-wqy-zenhei //安装中文字体或者
sudo apt-get install ttf-wqy-microhei
sudo apt-get install scim-pinyin //拼音输入法 装输入法后容易崩溃
sudo raspi-config //选择change_locale,在Default locale for the system environment:中选择zh_CN.UTF-8
//树莓派屏幕自适应
sudo nano /boot/config.txt //disable_overscan=1
//raspberry update
sudo apt-get update
sudo apt-get upgrade
sudo rpi-update //update fireworks such as bios and linux kernal
拷贝共享代码编译安装:
以安装tensorflow为例(参考https://github.com/samjabrahams/tensorflow-on-raspberry-pi/blob/master/GUIDE.md)
从网站上克隆下来:
git clone --recurse-submodules https://github.com/tensorflow/tensorflow.git
cd tensorflow
检查更新
git checkout
显示安装配置
sudo nano tensorflow/workspace.bzl
安装
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