linux shell 基础
2023-09-27 14:23:32 时间
ls -a
#添加 -F参数 显示区分文件和目录(目录后面带斜杠),F 参数大写 ls -F
pwd输出当前目录
pwd
# .表示当前目录 # .. 表示父级目录
# -R 列出子目录 ls -R
# 列出文件详细信息 -l 小写 ls -l
# 过滤 通配符*代表零个或多个字符,?表示一个字符 ls -l *sh
#[si] 表示[]对应一个s或者i ls -l connect_2_ecs.[si]h
# [a-z] 表示 a到z 的范围 ls -l connect_2_ecs.[a-z]h
# [!a] 排除a(a之外的其他字符) ls -l connect_2_ecs.[!a]h
# 如果文件不存在touch 创建文件,否则他只会修改文件的修改时间 touch test_one
#参数 -a 修改文件test_one的访问时间 # ls -l 默认输出修改时间 如果想输出访问时间 加参数 --time=atime 如 # ls -l --time=atime touch -a test_one
文件拷贝
# cp 复制文件如果文件已经存在会覆盖不会询问 # 所以安全起见 可以加上 -i 参数 cp -i source destination destination # 可以是文件名 也可也是目录 ,如果是目录那cp 只会拷贝文件, # 如果是文件名cp会拷贝文件并重命名 # 如果要拷贝到当前目录可以打个点 cp -i ../test_one . # cp命令参数还很多可以用man cp 命令查看 其他参数的用法 # 按q退出 按上下键翻页
# cp命令还可以用通配符批量拷贝文件
创建文件链接
# ../connect_2_ecs.sh是源文件 run.sh新创建的链接文件 vim打开run.sh # 会发现run.sh是connect_2_ecs.sh run.sh内容,而且 run.sh颜色也不一样 # run.sh 是个链接文件大小很小,而且文件的Info编码也不一样 # info编码是linux为每一个文件分配的唯一的一个编码,用ls -li 查看 ln -s ../connect_2_ecs.sh run.sh
移动文件
# mv 命令只修改文件的名字跟未知不改变修改时间
删除文件
# rm 彻底删除文件无法找回,可以加 -i 参数删除之前询问
操作目录
# mkdir 创建单个目录 mkdir test_2 # 创建多个目录 nurmemt test mv 要加参数 -p mkdir -p nurmemet/test/mv
# rmdir 只能删除空目录 rmdir test
# 删除test 以及里面的子目录, rm -r test
# 强制删除test 以及里面的子目录, rm -rf test
# 强制删除test 以及里面的子目录,删除之前询问 rm -ri test
# 查看文件类型 file connect_2_ecs.sh
# 查看文本文件内容 cat connect_2_ecs.sh
# 查看文本文件内容 # -n 参数文本内容前面加上行号 # -b 参数也可以输出行号,但是它不计空行 cat -n connect_2_ecs.sh
# 命令不适合查看大文件内容 # 大文件可以用 more 命令查看,可以分页查看 # 按回车逐行查看 # 按空格分页 # 按q退出
# less 命令是more 命令的升级版,包含more命令所有的功能 # tail 命令直接定位到文件末尾 # tail -n 可以显示行数 # tail -f 循环读取文件末尾 (查看tomcat日志时很有用) # head 命令输出文件头部几行查看进程信息
# ps 默认情况下只输出当前用户所属的进程信息 # root 登录进来只是运行了bash和当前的ps ps
# top命令实时查看进程信息 top
# kill PID # killall 命令行名称 如 killall java 会杀死所有java进程 # killall 命令还可以使用通配符 如 killall http*
# 查看当前挂载的硬盘状态 # 当前很多图形界面系统如ubuntu已实现插入移动存储设备就自动挂载 # 但是假如系统没有这个功能,管理员得用命令挂载 # 磁盘挂载与卸载都可以mount命令实现这里不详细介绍 mount
# df 命令可以查看已挂载磁盘使用 情况 # df -h 会易读的方式输出信息如Kb转换成mb,gb之类的 df
# 文件中搜索文本 # 结果只显示对应的行的数据 # 还可以加 -n 参数搜索结果的行号 grep 孙俪 test_one # grep -n 孙俪 test_one # 也可以加 -v 参数进行反向搜索 # grep -v 孙俪 test_one
# shell 一次执行多条命令 # ( pwd ; (echo $BASH_SUBSHELL)) # 每个括号对应一个shell # 会创建单独的shell 执行括号内的内容 pwd ; ls ; cd /etc ; pwd ; cd ; pwd ; ls
# 输出命令属于哪个程序 # 也可以用which 命令
# 用 history命令可以查看 用户使用bash 命令历史记录 # 用户bash命令历史记录时保存在用户目录下.bash_history目录中 # 可以用cat .bash_history查看
# 为命令起别名 alias li=ls -li # 之后输入li 相当于输入了ls -li 命令 # 系统本身也会提供些别名,可以用alias -p 命令查看
# 环境变量分为全局环境变量和局部环境变量 # 局部环境变量只是创建他的shell中有效 # env 命令可以查看所有系统环境变量 # printenv命令也可以查看所有系统环境变量 # 也可以用命令输出环境变量的值 如echo $HOME # 通常系统提供的环境变量全部都是大写字母
# 设置局部环境变量 echo myname myname=nurmemet # 如果要给变量赋带空格字符时字符串必须空引号括起来如下面 myname=nurmemet hamut # 如果用户自己创建的shell局部环境变量请都用小写字母,shell规范 # 局部环境变量只在当前shell中才能访问 #设置全局环境变量 # 先设置局部环境变量然后用export命令导出为全局环境变量 # 子shell中可以改变父shell中定义的全局环境变量但是这种改变只有 # 在子shell中有效并不会影响到父shell,即父shell中变量的值不会发生变化 # 用unset命令删除环境变量例如 unset school # 请注意此时变量前面没有$符号 # 跟修改一样子shell中删除全局环境变量不会反映到父shell中,父shell依然可以访问 #PATH环境变量 #PATH环境变量的值是用冒号隔开的 # 下面是配置java的过程 #配置好了之后任何目录都可以访问java命令了
条件语句if else
echo 选择云服务器 1. 预发布环境 2.测试环境 3.nurmemet ecs read replay if [ $replay -eq 1 ] ; then echo 126.26.246.36 预发布环境连接中... ssh root@126.26.246.36 elif [ $replay -eq 2 ] ;then echo 48.98.48.118 测试环境连接中... ssh root@48.98.48.118 elif [ $replay -eq 3 ] ;then echo 59.119.229.209 nurmemet连接中... ssh root@59.119.229.209 else echo 输入有误 # 注意 [] 前后空格是必须的,还有本例子中输入是整型数据 所以没有引号括起来,如果输入是字符串类型那条件语句应该 $replay
相关文章
- Linux基础
- 如何在Windows下查杀Linux恶意文件
- (一)linux定时任务的设置 crontab 基础实践
- linux下安装mysql初始化报错:bin/mysqld: error while loading shared libraries: libnuma.so.1
- Linux优化和程序监视器stacer
- 单片机成长之路(51基础篇) - 006 在Linux下搭建51单片机的开发烧写环境
- Linux入门第五天——shell脚本入门(下)基础语法之循环
- linux服务器编程初步
- Linux再学--shell基础3环境变量
- 【Hack The Box】linux练习-- Lame
- 七天LLVM零基础入门(Linux版本)------第五天
- Linux shell 基础之Vim编辑器
- Linux shell 基础之--基本脚本
- linux 基础学习之三:bash shell初识 上
- linux 基础学习之一:文件管理
- Linux动态链接库的创建与使用
- Linux 基础命令和符号
- Linux基础
- 解析Linux中的VFS文件系统之文件系统的来源与简介(一)
- Linux:检查当前运行级别的五种方法