3 linux的学习
3.1学习内容
3.1.1linux基本命令
1)硬链接不能跨分区、不能链接文件夹。(共用inode号,使用unlink,硬连接数-1)。软链接(符号链接)相当于Windows下的快捷方式,没有任何文件系统的限制。
2)main函数的参数argc表示命令行参数的个数,包括命令本身。
3)gcc指定编译生成的文件名:gcc hello.c -o hello
4)cp命令比mv命令慢,因为cp不共用inode号,要重新化分区,而mv只是新建一个目录项就行。
5)pwd命令打印当前路径,cd命令切换当前命令,touch命令如果文件不存在则创建空文件,文件存在则可修改文件时间。mkdir命令创建文件夹,可以使用-p选项穿件一条完整的路径或目录结构。如:mkdir -p d1/d2/d3/d4(若没有-p,该命令只代表在d3下创建d4,但此时无d3)。
6)rm命令为文件、文件夹删除命令,rm命令的常见选项为:-rf。
3.1.2linux环境变量和命令行技巧
1)普通用户想使用root权限,则在命令前加sudo。
2)在修改系统配置前,应先做备份在修改,以免出错。
3)修改为阿里源下载速度加快,安装vmtools后系统可全屏。
4)ssh是用来安全替代Telnet的远程登录机制,使用ssh协议传输数据都是安全加密的。
5)安装lrzsz软件包sudo apt install -y lrzsz 后可以使用rz上传文件到远端linux服务器上,使用sz下载文件到本地windows主机上,但此操作仅限于secureCRT软件和文件类型。
6)环境变量PATH告诉shell去哪里找命令对应的程序、echo $ PATH 可以查看值,export可以打印全部的环境变量和设置环境变量。
7)编译生成的hello程序,在命令行下使用 ./hello 可以正常运行,但直接输入 hello 却不可以运行,这该怎么解决? 将hello程序所在的路径位置添加到PATH环境变量中,export PATH=$PATH:pwd
(`:命令置换符),但这只是临时生效,要永久生效需修改shell配置文件(修改:vi ~/.bashrc)(生效:source ~/.bashrc)。
8)alias别名:用于经常写错的命令和较长的命令。Alias maek=”make’。
3.1.3linux命令行标准输出重定向与管道
1)basename可以获取路径名的文件名部分,dirname可以获取路径名的目录部分。
2)linux下所有内容皆文件,用file命令辨别文件类型,动态库(linux下:.iso,Windows下:.dll)。
3)Windows下采用\r和\n表示下一行,而linux下只采用\n表示下一行,所以要进行相应的转换,dos2unix将Windows格式转换成linux格式,unix2dos将linux格式转换成Windows格式。
4)od命令查看二进制文件,格式:od [-t TYPE] 文件名。
5)常用的压缩命令:tar -czf xx.tar.gz dir file tar -cjf xx.tar.bz2 die file tar -cJf xx.tar.xz dir file 对应的解压命令:tar -xzf xx.tar.gz -C path tar -xjf xx.tar.bz2 -C path tar -xJf xx.tar.xz -C path 。
6)命令是否执行成功,用echo $? 判断,连续命令执行(; && ||)。
7)标准输入(0):默认键盘,标准输出(1):默认屏幕,标准出错(2):默认屏幕。
8)标准重定向:输出到屏幕只会一闪而过,所以将输出重定向到某个文件中去慢慢看,有时候我们不想从键盘输入,希望从某个文件中去获取数据,也需要用到重定向,<:输入重定向符,>:输出重定向符,2>:出错重定向符,>>:输出追加重定向符。
9)linux下两个特殊的字符设备文件:/dev/null:通常被用于丢弃不需要的文件输出,/dev/zero:会提供连续不断数据流,数据其值全为0。
10)find命令:根据不同条件(权限、拥有者、修改时间、文件大小等)查找文件,grep命令:(awk,sed,grep:三剑客),对文本或者输出的内容进行过滤。
11)正则表达式:基本(^ $ . [] *),扩展(() {} ? + |)例如:查找w出现2到5次的行(egrep w{2,5} /etc/passwd)。
12)管道:管道符(|)把一个命令的输出作为另外一个命令的输入,例如:ls | wc -l。
3.2学习体会及总结
Linux基本命令很多也很杂,光学习肯定效果不佳,应该结合到相应的题目和程序中去实践,其中我也做了相关题目写了少量代码,由于篇幅原因就不展示了。
小贴士:
1)linux命令行不能用Ctrl+c和Ctrl+v实现内容的复制、粘贴,因为它们有其他用途。这时可使用Ctrl+Insert(复制),Shift+Insert(粘贴)来替代,Windows也支持!2)atoi()函数的作用是将字符串转换成整数的。