unix磁盘限额 机器人操作系统ROS Indigo 入门学习(0)——ROS的UNIX基础
ls 列出当前目录下的文件
ls -a列出当前目录所有文件,包括隐藏的文件
mkdir unixstuff 创建名为unixstuff的目录
cd unixstuff 改变目录进入unixstuff
cd .当前目录
cd
UNIX Tutorial One ls 列出当前目录下的文件 ls -a列出当前目录所有文件,包括隐藏的文件 mkdir unixstuff 创建名为unixstuff的目录 cd unixstuff 改变目录进入unixstuff cd .当前目录 cd ..父目录 pwd打印绝对路径 cd ~家目录 UNIX Tutorial Two Cp 复制 mv file1 file2 移动文件或者改变名字 rm移除文件 rmdir 移除目录 clear清屏 cat file显示文件内容 less 显示文件内容(q退出,/+内容,可以搜索) head 显示文件头10行 tail显示文件尾10行 grep Science science.txt 在science.txt 中搜索文字,区分大小写,搜索内容grep -i science science.txt 不区分大小写 grep -i 'spinning top' science.txt 不区分大小写搜索spinning top -v 反选 -n显示行号 -c打印匹配的总的行号数 wc -w science.txt计算文本里的字数(不是字节数) wc -l science.txt 计算文本里的行数 UNIX Tutorial Three 重定向输出(本来是输出到终端,现在输出到文本中) Cat > list1到list1,会覆盖原来的内容 cat >>list1添加到list1,不会覆盖原来的内容 Ctrl+d to stop cat list1 list2 > biglist将list1和list2的内容合并到biglist 重定向输入(本来是在键盘输入,现在可以利用一个文件当做输入) sort < biglist 将biglist打印到屏幕 sort < biglist > slist 最终输出到slist who查看这个系统上的有哪些用户 pipe管道 管道可以连接两个命令,将前一个命令的输出数据当做到后一个命令的输入 UNIX Tutorial Four *号,通配符 ls *.txt列出所有txt格式的文件 ls ?llst?代表一个字符 whatis wc显示单行的帮助 man wc显示详细的帮助文档 apropos keyword当你不确定一个命令的名字时,他会打印出所有含有关键字的命令 UNIX Tutorial Five ros@ros-K45VD:~/桌面$ ls -l 总用量56 -rw-rw-r-- 1 ros ros 5524 1月30 08:00 04program_flow .docx -rw-rw-r-- 1 ros ros 18 1月30 17:40 1.txt -rw-rw-r-- 1 ros ros 8 1月30 15:30 1.txt~ -rw-rw-r-- 1 ros ros 8 1月30 17:32 a.txt -rw-rw-r-- 1 ros ros 11 1月30 17:33 b.txt -rw-rw-r-- 1 ros ros 2 1月30 17:46 c.txt -rw-rw-r-- 1 ros ros 19 1月30 17:33 c.txt~ -rw-rw-r-- 1 ros ros 400 1月30 17:25 note.txt -rw-rw-r-- 1 ros ros 400 1月30 17:06 note.txt~ -rw-rw-r-- 1 ros ros 18 1月30 17:29 zhangbo.txt -rw-rw-r-- 1 ros ros 21 1月30 17:22 zhangbo.txt~ -rw-rw-r-- 1 ros ros 5277 1月30 17:56 未命名1.docx -rw-rw-r-- 1 ros ros 0 1月30 08:23 脏angbo ~ 列出来的内容分别是: 第一个字符是文档属性,接下来是九个权限,分别是拥有者、同用户用户组、其他用户的读(r)、写(w)、执行(x)的权限,没有权限用'-'代替,再下来是用户名,用户组名,文件大小,创建时间,文件名 改变权限: chmod 用户+-文件名 chmod 权限文件名(r=4,w=2,x=1) chmod go-rwx biglist 给biglist文件的同用户组用户和其他用户去除读写执行的权限,不影响其他权限 chmod a+rw biglist 给biglist文件的所有用户添加读写权限,不影响其他权限ps查看进程 命令+ & 让进程在后台运行 Ctrl + z 暂停一个正在运行的进程,然后bg将进程放到后台运行 jobs查看停止或者在后台运行的进程 fg %jobnumber激活停止的进程 kill %jobnumber用jobnumber杀死进程 kill PID用进程编号杀死进程 kill -9 PID 强制杀死进程 UNIX Tutorial Six quota 命令显示磁盘使用情况和限额(ubuntu14.04下使用没有反应) df .显示文件系统的剩余空间 du 常用来查看哪个文件最大 gzip压缩 gunzip解压 zcat阅读压缩的文件内容,无需解压 find -name "*.txt" -print 查询以.txt为扩展名的文件 find -size +1M -ls 显示大小大于1M的文件 history显示输入的历史命令 !! 重新调用上一个命令 !-3重新调用倒数第三个命令 !grep 重新调用以grep开头的命令 !5 重新调用第五个命令 set history=100 增加记录history命令的缓冲区大小 UNIX Tutorial Seven 7.1 编译UNIX 软件 对我们所有的用户,在我们的系统中有许多的公用的和商业软件都是可用的。此外,学生还可以在他们的home目录中下载和安装软件,这些软件通常只供他们个人使用。 安装软件的步骤: 1、下载源码压缩包; 2、解压源码; 3、安装可执行程序; 4、设置安装路径。 以上步骤中,最复杂的是编译阶段。 编译源代码: 所有的语言代码必须转换为计算机能够理解的形式。比如C语言会转变为更低级的汇编语言,然后汇编语言再转变为目标语言,这是一种计算机可以直接理解的代码碎片。最后一步是链接目标语言到包含特定内置函数的代码库。最后阶段会产生一个可执行程序。 手动去做这些步骤对于一个新手来说是复杂而且超出他们的能力的。于是为了为为程序员和终端用户简化步骤,开发了许多的实用程序和工具。 Make和Makefile: Make命令允许程序员处理大的的程序或者程序组。它可以通过跟踪整个程序的哪些部分被改变了帮助开发大型程序,只编译被改变的程序部分。 Make命令从makefile文件中获取一系列的编译规则,makefile和源代码在同样的目录下。Makefile里有各种关于如何编译源码的信息,比如优化等级,在 可执行文件中是否包含调试信息。也包含了关于在安装编译完成的二进制代码,手册,数据文件,依赖库文件,配置文件等等。 有些安装包需要你去手动编辑makefile文件以设置最后的安装目录和其他参数。但是,现在发布的许多安装包都带有GUN的通用配置。 配置: 因为UNIX版本过多,很难写出一个程序能在所有的版本上运行。开发人员通常没有机会基础所有版本的系统,和有些系统升级的特色。GUN配置和编译系统简化了以源代码形式发布的程序的编译。所有的程序只需要简单的,标准化的两个过程就可以编译好。程序编译者不需要安装任何特殊的工具去编译程序。 Configure shell脚本文件尝试着去纠正编译时使用的各种依赖系统的变量的值。它也使用这些值在安装包的目录中创建一个makef文件。 最简单的编译步骤是: 1、cd到源码所在的目录 2、./configure去配置你的系统 3、make check对安装包进行自我检查 4、make install去安装程序 5、make clean从源码目录中移除二进制源码和目标文件 配置提供了很多选择,最常用的是—prefix和—exec-prefix可以用来指定安装目录,由—prefix命名的目录会保持为机器的独立文件比如文档,数据和配置文件,由—exec-prefix命令的目录,(通常是--prefix的子目录),会保持为机器的独立文件比如可执行文件。 1>下载源码 mkdir download 2>提取源码 先用gunzip解压为.tar文件gunzip units-1.74.tar.gz ; 抽取tar文件的内容tar -xvf units-1.74.tar ; 3>配置和创建Makefile文件 注意:仔细阅读README和INSTALL文本 我们需要指定安装目录,因为默认的系统区域我们没有写的权限,所以 我们需要在家目录新建文件夹mkdir ~/units174 运行configure文件去设置安装路径./configure --prefix=$HOME/units174 $HOME是环境变量,它的值就是你的家目录,echo $HOME可以查看这个值,如果配置正确,会生成一个Makefile文件。 紧着者是运行是make去编译,make check去检查编译是否成功;如果编译没有问题,就可以运行make install安装了。 进入/bin目录运行命令. 4>剥离不需要的代码: 有些代码是程序员用来调试程序的,对用户没有用,可以去掉。到/bin目录执行strip +文件命令,也可以在安装的时候执行make install-strip。UNIX Tutorial Eight 运行程序时,变量是shell和程序之间传递信息的一种途径。程序会在环境变量中寻找特定的变量,如果找到了就会使用它储存的值。有些变量是系统设置的,有些是你,有些是shell或者装载其他程序的程序。 标准的UNIX变量被分为两类,环境变量和shell变量,大部分条件下,shell 变量只用于少量需要设置短期工作路径的场合,环境变量则有更长远的意义,在登录时设置的变量在整个回话期间都是有效的。通常来说,环境变量是大写的,而shell变量是小写的。 环境变量 查看环境变量echo $环境变量 USER:你的登录名 HOME:你的家目录路径 HOST:你的计算机名 ARCH: 计算机进程的架构 DISPALY: 显示X windows的计算机屏幕名 PRINTER: 发送jobs的默认打印机 PATH :shell可以寻找目录的路径 用setenv来设置环境变量,printenv来打印,unsetenv来移除设置 Shell变量 set用来设置和展现环境变量unset来移除变量 PATH和path之间的区别 除了大小写外,环境变量和shell变量有同样的名字,每次shell变量home,user 和term的改变都会使相应的环境变量HOME,USER和TERM变为相同的值,但是,改变环境变量的值不会对相应的shell变量产生影响。 PATH和path都指定的路径去搜索命令,两个命令都代表着相同的目录列表,改变他们当中任意一个都会使另一个发生变化。 使用和设置变量 每次登录系统时,系统都会在你的家目录寻找安装文件,这里面有建立你的工作目录的信息。.login和.cshrc(在ubuntu是.bashrc,以下皆同)文件。 在.cshrc文件中设置shell变量 比如 set history = 200 echo $history 但是这样设置只有暂时的作用,如果要长久生效需要在.cshrc中设置 nedit ~/cshrc 在最后添加set history = 200 用source .cshrc命令是设置马上生效 检查是否生效echo $history 设置路径 在运行命令时如果提示没有找到命令,可能是你没有把命令的路径添加进pathunix磁盘限额,使得shell找不到命令,这时,要么执行带路径的命令,要么把命令的路径添加进入。 Set path = ($path ~/units174/bin) 要让这个路径永久生效,就要写进.cshrc set path = ($path ~/units174/bin) (编辑:成都站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |