Linux之基础bash shell命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux之基础bash shell命令相关的知识,希望对你有一定的参考价值。
linux系统构成
linux内核主要负责
系统内存管理
软件程序管理
硬件设备管理
文件系统管理
GNU工具
执行一些标准功能,比如控制文件和程序。又分为核心工具和shell.
大部分Linux发行版的默认shell都是GNU bash shell.
浏览文件目录
常见的linux目录名称:
虚拟的根目录:/ 二进制目录:/bin root用户的主目录: /root …等等
遍历目录:cd destination 后面的参数可以使用绝对文件路径,也可以使用相对文件路径
绝对路径输入
输入: ~$ cd /usr/bin
结果:/usr/bin$:
~符号用来追踪当前所在的虚拟目录结构中的位置,表示shell会话位于你的主目录中。
pwd命令 可以显示出shell会话的当前目录,这个目录被称为当前工作目录。
纯cd命令可以从任何一级跳回主目录
相对路径输入
假如你位于home目录,希望切换到子目录document,可以直接使用
1: cd doc
~/doc$
两个特殊字符
单点符(.),表示当前目录
双点符(..),表示当前的父目录
比如你现在处于主目录下的doc目录,想要切换到主目录的dow下,可以这样做:
1: cd ../dow
也可以在其他切换中加多个双点符比如
1: cd ../../etc
文件和目录列表
ls命令显示当前目录下的文件和目录,可以用-F参数命令轻松区分文件和目录,-a显示隐藏文件(前面带点的),-R列出当前目录下包含的子目录中的文件。这些参数可以叠加,比如 ls -alF
-l参数产生长列表格式的输出。按照顺序显示:文件类型,权限,硬链接总数,属主的用户名,组的组名,大小(单位字节),上次的修改时间,文件名和目录
过滤输出列表
只会显示该文件的信息,文件名放在所有参数后面。
1: $ls –l my_script
?代表一个任意的字符,*代表0个或多个
1: $ls –l my_scr?pt2: $ls –l my*3: $ls –l my_s*t
[ai]代表a或者i,[a-i]字母范围a-i,[!a]排除a
创建文件
1: touch filename2: touch dir/filename
touch命令创建一个空文件,并将你的用户名作为文件的属主。这个命令还可以改变文件的修改时间,并不会改变文件的内容。只想改变访问时间,可用-a参数。
查看文件的访问时间,加入--time=atime
复制文件
源对象和目标对象
1: cp source destination
当两者都是文件名时,源文件复制成一个全新的文件(destination为名),有新的修改时间。加上-
i强制询问是否需要覆盖已有的文件。
也可以将文件复制到现有的目录中。
1: cp –i test_one /home/christine/Document/
注意Document后面有一个正斜线,代表这是一个目录而不是一个文件,否则会创建一个document的文件。这个路径也可以使用相对路径。下面这个点代表当前的工作路径。
1: cp –i /etc/Network/conf.conf .
-R 参数可以递归地复制整个目录的内容。
1: cp –R Scripts/ Mod_Scripts
使用通配符
1: cp *script Mod_Scripts/
可以用man cp来来查看所有的参数。
制表键(tab)自动补全目录名文件名命令名,如
1: ls really*
如果匹配成功不会显示任何信息,
输入cp really直接按tab就会自动补全。
链接文件
符号链接:一个实实在在的文件,它指向存放在虚拟目录结构中某个地方的另一个文件。这两个通过符号链接在一起的文件,彼此的内容并不相同。ln命令以及-s选项来创建符号链接。
1: ln –s data_file s1_data_file
ls –i *data_file查看inode的编号可以发现它们是不同的文件。
硬链接:会创建独立的虚拟文件,其中包含了原始文件的信息及位置。但是它们从根本上而言是同一个文件。引用硬链接文件等于同于引用了源文件。
1: ln data_file s2_data_file2: ls li *data_file
两个文件共享inode编号。
说明:想要在不同存储媒体的文件之间创建链接,只能用符号链接。不要创建软链接的软链接。
重命名文件
在linux中,重命名文件称为移动(moving)。mv命令可以将文件和目录移动到另一个位置或者重命名。
1: mv oldfile newfile
inode编号和时间戳不变,只影响文件名。mv也可以移动文件的位置。
1: mv file_name dir
这两步可以合为一步
1: mv olddir/file newdir/file
也可以移动整个目录
1: mv old_scripts new_scripts
删除文件
一般加上-i来强制询问是否真的删除。也可以使用通配符来删除成组的文件。
1: rm –i f?ll
处理目录
1: mkdir New_dir
创建多个目录和子目录,需要加入-p参数
1: mkdir –p New_Dir/Sub_Dir/Under_Dir
删除目录
默认情况下,rmdir命令只删除空目录.所以首先要删除目录里的文件。
1: rm -i New_dir/my_file2: rmdir New_dir
或者使用-ri命令进入目录,先删除文件,再删除目录
1: rm -ri My_Dir
不建议使用-rf直接删除,这样不会有任何的提示和反应。
1: rm -rf New_dir
查看文件
查看文件类型
file命令,探测功能,后面跟文件,目录,符号链接,脚本,二进制文件
1: file New_dir/my_file
1: file New_dir2: file si_date_file3: file my_script4: file /bin/ls
查看内容
查看整个文件
cat命令,-n给所有行加上行号,-b只给有文本的行叫上行号,-T用^I代替制表符
more命令,可以手动每页每页地显示。
less命令,more的升级版
查看部分文件
tail命令 默认下显示文件的末尾10行。-n参数修改所显示的行数。-f可以查看其它进程使用中的文件
1: tail -n 2 log_file
head命令 显示开头文件的内容,同样它也支持-n,但不支持-f参数。
以上是关于Linux之基础bash shell命令的主要内容,如果未能解决你的问题,请参考以下文章
Linux操作系统基础解析之——Bash(Shell)基础知识
Linux操作系统基础解析之——Bash(Shell)基础知识