[Linux]基础bash shell命令

Posted 鱼竿钓鱼干

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Linux]基础bash shell命令相关的知识,希望对你有一定的参考价值。

[Linux]基础操作命令

参考书本《Linux命令行与shell脚本大全》复习和查询用,别的用到了在慢慢补充

遍历目录

目录路径

绝对路径

cd /usr/bin

相对路径

cd Documents

返回主目录

cd

其他实用命令

显示当前目录

pwd

当前目录的父目录…
单点表示当前目录(在下面的文件复制当中很常用)

cd ../Downloads

文件和目录列表

ls及其参数

显示该目录下文件和目录,列表按字母排序,如果是彩色终端仿真器会用颜色区分不同类型的文件

ls

-F参数区分文件和目录,目录名后会加上/,可执行文件后会加上*

ls -F

-a参数会把隐藏的文件也显示出来(通常以点号开始)

ls -a

-R参数,递归地列出该目录下包含子目录中的文件

ls -F -R

多个参数还可以合并到一起

ls -FR

-l参数显示长列表展示文件信息:类型,权限,硬链接总数,属主用户名,属组组名,文件大小(字节为单位),上次修改时间,文件名或者目录名
下面这个组合很实用

ls -alF

-d只列出目录本身的信息

ls -Fd *Scripts

-i查看文件的inode编号

ls -i *data_file

过滤器

命令行参数后可以加过滤器来过滤文件
?表示一个字符,*表示0个或任意多个字符,[ai]表示可以匹配a或者i,[a-i]表示可以匹配a-i的字母,[!a]表示不匹配a

ls -l my_scri?pt
ls -l my*
ls -l my_scr[ai]pt
ls -l f[a-i]ll
ls -l f[!a]ll

使用tree工具

使用tree工具可以用一种美观的方式(树形)展示目录,tree工具不一定默认装在linux发行版里,如果没有需要自行安装
archlinux安装tree

sudo pacman -S tree

使用tree

tree Small_Dir

处理文件

创建文件

创建文件/改变文件修改时间,加-a只改变文件访问时间。(ls只有-l查看修改时间,加上参数–time=atime查看访问时间)

touch test_one
ls -l test_one
touch -a test_one
ls -l --time=atime test_one

复制文件

cp A B 复制A到B,不会有覆盖提醒

cp test_one test_two

加入参数-i,强制shell询问是否需要覆盖已有文件

cp -i test_one test_two

如果是复制到目录,最后加上/,避免把复制到目录的操作变成创建一个和目录同名的文件的操作
可以相对路径也可以绝对路径

cp -i test_one Documents/

复制到当前目录可以直接用单点表示,适合源对象名字很长的操作(不过最好pwd看看现在在哪里)

cp -i /etc/NetworkMannager/NetworkManager.conf .

-R递归复制整个目录的内容

cp -R Scripts/ Mod_Scripts

cp命令也可以使用通配符,下面命令表示把所有script结尾的文件复制到Mod_scripts/目录下(区分文件和目录!)

cp *script Mod_scripts/

制表健自动补全

给足够信息能和其他文件区分开就像,按两下就会列出所有把 已经输入的字母 作为开头的 文件名

链接文件

符号链接:链接文件独立,内容不同,大小不同,文件的inode编号不同,只是单纯指向原来文件而已,使用ls -l查看文件信息会有箭头指向原来的文件。
要尽量避免创建软链接的软链接,这会造成链接链混乱,容易破裂

ln -s data_file sl_data_file

硬链接:创建独立的虚拟文件,包含原文件的信息及位置,是同一个文件,只能对同一存储媒体的文件创建硬链接

ls code_file hl_code_file

重命名文件

重命名fall为fzll

mv fall fzll

把fzll移动到Pictures/下

mv fzll Pictures/

也可以直接移动整个目录及其内容,下面指令的效果相当于只是改变了目录的名字,里面内容没有变,也不需要加/

mv Mod_Scripts Old_scripts

删除文件

-i参数会在删除前询问

rm -i fall

-f参数可以免受过多提示符的打扰,但是小心点

rm -f f?ll

处理目录

创建目录

使用mkdir创建目录,区分使用touch创建文件

mkdir New_Dir

如果要同时创建多个目录和子目录需要加入-p参数,-p可以根据需要创建缺失的父目录。

mkdir -p New_Dir/Sub_Dir/Under_Dir

删除目录

rmdir删除空的目录

rmdir New_Dir

rm加上-r参数递归删除目录当中的文件和它本身,但是一个确认可能很慢

rm -ir Small_Dir

使用-f参数直接诶删完,没有提示,方便但是危险,如果是超级用户权限小心使用

rm -rf Small_Dir

查看文件内容

查看文件类型

file文件可以直接查看文件类型,如果有链接会告诉你链接到哪个文件了,如果是个二进制可执行文件可以告诉你面向哪个平台编译,需要那些库。

file New_Dir

查看整个文件

cat命令
cat命令是显示文本文件中所有数据的得力工具

cat test1

-n参数给所有行加上行号,-b参数只给有文本的行加上行号,如果不想要制表符可以加入参数-T(之后会用^I代替制表符显示)

cat -n test1
cat -b test1
cat -T test1

more命令和less命令
more命令会在显示完1页后停下来,使用空格或者回车可以继续浏览,下面有more标签显示当前文本的进度

more /etc/bash.bashrc

less命令是more的升级版,实现文本文件中前后翻动,还可以进行搜索之类的操作

查看部分文件

tail查看文件末尾,-n参数可设置查看多行,默认10行,也可以直接-加数字

tail -n 5 log_file

head查看文件开头,也可以-n设置查看多少行

head -5 log_file

以上是关于[Linux]基础bash shell命令的主要内容,如果未能解决你的问题,请参考以下文章

Linux之基础bash shell命令

Linux基础之-Bash命令优先级

生信基础Linux--基本的bash shell命令

linux基础:shell中的sh与bash区别与常用命令

Linux操作系统基础解析之——Bash(Shell)基础知识

Linux系统Bash(Shell)基础知识