常用的Linux命令介绍:13个基本命令和Shell脚本编程

常用的Linux命令介绍:13个基本命令和Shell脚本编程

本文档作为笔记整理的初次尝试

常用的Linux命令介绍:13个基本命令和Shell脚本编程_哔哩哔哩_bilibili

Untitled
# 文件和目录操作
ls
cd
pwd
# 文本文件的阅读和编辑
cat/tail/head
less/more
nano/vim
# 文件属性
file
where
# 打印
echo
# 例子
Shell programming: variables
Shell programming: for loop

ls

# ls: list
ls # 列出当前目录下所有的文件
ls -l # 列出当前目录下所有的文件和属性
ls -a # 列出当前目录下所有的文件,且包含隐藏文件
ls -la # 同时也列出隐藏文件的属性
ll # ls -l的缩写

Untitled

举例说明

drwxrwxr-x 29 cys cys     4096 4月  19  2023  anaconda3
  • drwxrwxr-x:表示权限
    • 第一个字母:例子中d表示该文件是目录
      • d:directory,目录
      • -: 普通文件
    • 第一个rwx:该文件所有者的权限,例子中rwx表示该文件所有者(对应第一个cys)具有读写和执行的权限
      • r:read,读
      • w:wirte,写
      • x:execute,执行
    • 第二个rwx:该文件所有者同组(group)的人的权限,例子中rwx表示该文件所有者同组(对应第二个cys,此处恰好也叫cys)的人具有读写和执行的权限
    • 第三个rwx:其他人的权限,例子中r-x表示其他人有读和执行的权限,没有写的权限
  • 4069:文件大小
  • 4月 19 2023:修改时间

Untitled

cd

# cd: change directory
cd omg-tools # 进入当前目录下的omg-tools目录
cd .. # 返回上级目录
cd . # 进入当前目录,相当于没变
cd ../.. # 返回上级目录的上级目录
cd - # 返回刚才所在的目录

Untitled

Linux中目录使用斜杠‘/’而不是反斜杠‘\’

pwd

# pwd: print working dirtectory
pwd # 打印当前路径

Untitled

cat/tail/head

cat setup.py # 查看当前目录下setup.py内容,可使用tab键自动补全文件名 
head setup.py # 查看当前目录下setup.py开头的内容
head --lines=3 setup.py  # 看开头3行
tail --lines=3 setup.py  # 看结尾3行

Untitled

Untitled

less/more

less setup.py  # 查看setup.py,只显示一部分,↑↓键上下移动,q键退出
more setup.py  # 查看setup.py,只显示一部分,只能向下(我这里是d键)移动(有的可以上下移动),q键退出

nano/vim

# 文本编辑器
nano readme.md # 编辑setup.py,下方有菜单
vim readme.md # 编辑setup.py,具体可以查手册

nano

Untitled

vim

Untitled

file/where

file readme.md # 查看文件属性
where gcc # 查询路径,where命令可能没有,因为where命令是zsh的内建命令,而不是bash的
which gcc  # 查询路径

Untitled

echo

echo abd # 打印abd
echo "abc hello" # 打印字符串abc hello"

Untitled

Shell programming: variables

# 使用变量
h="hello" # 定义变量h
echo h # 打印变量h
h="hellox" # 重新定义变量h
echo h # 打印变量h
echo "abc-$h-efg" # $表示使用变量h
echo "abc-${h}efg" #  {}可以避免歧义,echo "abc-$hefg"会认为使用变量hefg

Untitled

Shell programming: for loop

# 编写循环命令程序
for ff in LMPC.???  # 对于当前目录下所有LMPC.后面跟3个字符的文件(?表示单个字符)
> do echo $ff  # 打印变量ff
> done  # 结束

for ff in LMPC.???  # 对于当前目录下所有LMPC.后面跟3个字符的文件
> do echo $ff new_$ff  # 打印变量,以防下一步重命名出错
> done  # 结束

for ff in LMPC.???  # 对于当前目录下所有LMPC.后面跟3个字符的文件
> do mv $ff new_$ff  # mv表示重命名,原文件名$ff,新文件名new_$ff
> done  # 结束

# *LMPC.???表示LMPC.???之前有任意长度字符(*表示任意长度字符)
# #new_表示截取变量ff中new_之后的部分(掐头)
# 若为%new_则是截取变量ff中new_之前的部分(去尾),键盘上#和%正好在$左右两边
for ff in *LMPC.???; do echo $ff ${ff#new_}; done

# 重命名,把名字改回来
for ff in *LMPC.???; do mv $ff ${ff#new_}; done

Untitled

Untitled

posted @ 2024-01-15 22:14  Roanapur  阅读(5)  评论(0编辑  收藏  举报