Linux之基础bash shell命令

linux系统构成

linuxpng

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?pt
  2: $ls –l my*
  3: $ls –l my_s*t

[ai]代表a或者i,[a-i]字母范围a-i,[!a]排除a

创建文件

  1: touch filename
  2: 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_file
  2: 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_file
  2: 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_dir
  2: file si_date_file
  3: file my_script
  4: file /bin/ls

查看内容

查看整个文件

cat命令,-n给所有行加上行号,-b只给有文本的行叫上行号,-T用^I代替制表符

more命令,可以手动每页每页地显示。

less命令,more的升级版

查看部分文件

tail命令 默认下显示文件的末尾10行。-n参数修改所显示的行数。-f可以查看其它进程使用中的文件

  1: tail -n 2 log_file

head命令 显示开头文件的内容,同样它也支持-n,但不支持-f参数。

猜你喜欢

转载自www.cnblogs.com/haoqirui/p/10289994.html