Linux安全基础:shell及一些基础命令

1.什么是shell?
Shell是用户和Linux操作系统之间的接口。
Linux中有多种shell,其中缺省使用的是Bash。

2.shell的分类
(1)bash
bash shell 是 Bourne shell 的一个免费版本,它是最早的 Unix shell,包括许多附加的特点。Bash 有可编辑的命令行,可以回查历史命令,支持 tab 键补齐以使用户避免输入长的文件名。
(2)csh
C shell 使用的是“类C”语法,借鉴了 Bourne shell 的许多特点,只是内部 shell 命令集有所不同。
(3)ksh
Korn shell 的语法与 Bourne shell 相同,同时具备了 C shell 的易用特点。许多安装脚本都使用 ksh ,即使您不把它作为您的主 shell,您也应该在系统中安装它。
(4)tcsh
TC shell 是 C shell 的一个增强版本,与 C shell 完全兼容。
(5)zsh
Z shell 是 Korn shell 的一个增强版本,具备 bash shell 的许多特色。

3.shell基础
(1)Redhat Linux系统默认的shell是bash。
(2)对普通用户用$作提示符,对超级用户用#作提示符。
(3)查看当前系统支持的shell:cat /etc/shells
(4)查看当前的bash版本:echo $0
(5)查看当前shell的版本信息:bash --version

4.shell控制台使用方法
(1)什么是“控制台”console?
控制台就是使用字符操作界面的人机接口。
(2)操作控制台
Linux一般有6个虚拟控制台
按Ctrl-Alt-(F1-F6)来实现虚拟控制台的选择。F2到F5是命令行界面,F1是图形化界面。
从一个控制台切换到新的虚拟控制台以后,linux也会先显示登录提示符,就象第一次登录一样。在装入另一个命令解释器之前,也会询问用户名和口令。 所以,我们可以在不同的控制台以不同的用户身份登录,更方便了用特定的身份执行特定的操作。当用户从一个虚拟控制台切换到一个新的虚拟控制台以后,在原来 那个控制台运行的程序将继续运行。
(3)虚拟控制台的优点
当一个进程出错锁住输入时可以切换到其他虚拟控制台来终止这个进程。
(4)如果想启动后不让系统在图形下登陆,直接进入字符状态,则可以通过修改/etc/inittab文件实现,方法如下(KDE下操作):
vim /etc/inittab文件看到如下内容:
  #
  # inittab This file describes how the INIT process should set up
  # the system in a certain run-level.
  #
  # Author: Miquel van Smoorenburg,
  # Modified for RHS Linux by Marc Ewing and Donnie Barnes
  #
  
  # Default runlevel. The runlevels used by RHS are:
  # 0 - halt (Do NOT set initdefault to this)
  # 1 - Single user mode
  # 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
  # 3 - Full multiuser mode
  # 4 - unused
  # 5 - X11
  # 6 - reboot (Do NOT set initdefault to this)
  #
  id:5:initdefault:
  
  将上面最后一行的5改成3,就能让系统不在图形下登陆,对其它几个数字我也作一下介绍:
  0:停机(不要设置为启动默认级别)
  1:单用户模式
  2:多用户,无NFS(如果您没有配置网络,该级别与3一样)
  3:完全多用户模式
  4:不使用
  5:图形模式
  6:重启(不要设置为启动默认级别)

5.系统的登录流程
BIOS启动引导阶段:从MBR中装载启动引导管理器,并运行该启动引导管理。
GRUB为例启动引导阶段:读取/boot/grub.conf文件并显示启动菜单
内核阶段:挂载根文件系统
Sys V init 初始化阶段:启动/sbin/init程序和读取/etc/inittab文件

6.基础命令
(1)ls命令
ls-a查看显示一般文件和.开头的隐藏文件
ls-l查看更详细的文件资料,可查看文件权限。
ls-F在列出的文件或目录名称后加一符号,例如可执行文件加*,目录则加/。
(2)cd命令
进出目录的命令。
cd cd~ 回到home目录
cd - 回到之前操作过的目录
cd .. 回到上一层目录
cd / 回到根目录
cd ../../ 回到上两级目录
(3)mkdir命令
创建文件
mkdir -p /abc/bc/a 多层目录创建
touch 1.txt新建一个名为1的txt文件
(4)rmdir 命令
删除已存在的空目录
(5)mv移动目录或给文件重命名
mv /tmp/xx.txt /root把tmp目录下的xx.txt文件移动到root目录下
mv xx.txt yy.txt把xx.txt重命名为yy.txt
(6)cp命令
复制文件或文件夹
cp -r 源文件 目的文件
例:cp /abc/1.txt /cd 把abc文件夹里的1.txt复制到cd里
-r是递归 连同子目录一起复制。
(7)rm命令
删除文件命令
rm -i 系统会询问我们是否删除该文件
rm -r 连同子目录一起删除
rm -f 不经确认强制删除文件
(8)cat命令
显示或链接一般的ascii文本文件
cat a.txt 显示a.txt这个文件的内容
cat a.txt b.txt 依顺序显示a.txt b.txt里的内容
cat a.txt b.txt>c.txt把a.txt b.txt的内容结合起来再重新定向到c.txt中。
cat -n显示行号
cat -b空行不显示行号
cat -A显示制表符
head -n 5 ip.txt显示ip.txt文件里的前5行内容
tail -n 5 ip.txt显示ip.txt文件里的后5行内容
pwd显示当前路径
more显示一般的文本文件,可翻页。比cat理想。
(9)用户及用户组管理命令
新建用户和删除用户
useradd 用户名 -p 123
userdel 用户名
新建组合删除组
groupadd 组名
groupdel 组名
passwd改密码
超级用户可改其他用户的密码
passwd 其他用户用户名
(10)su su- 和sudo的区别
su:环境变量不改变,用的不是root的环境变量。离开当前用户身份exit。
su-:全部切换过来,用的是root的环境变量
sudo:暂时提高该命令权限
(11)文件权限的总结
User宿主 group组 other其他
r是read权限,值为4
w是write权限,值为2
x是可执行权限,值为1
rwx是可读可写可执行。
rws是暂时提升权限执行。
rwt可读可写不可删。
(12)chmod命令
修改目录或文件的权限的命令
chmod u+x ip.txt给ip这个文件加可执行命令。
chmod -R 递归加权或降权
(13)进程及任务管理命令
ps命令-----最基本也是最强大的进程查看命令
ps -e 显示所有进程
-f 全格式
-l 长格式
top命令-----动态显示进程信息
zombie 僵尸进程、挂死进程
wa I/O读写
id CPU空闲空间
kill命令-----删除进程
kill -q 强制删除
killall httpd删除所有httpd的进程
(14)磁盘及文件系统管理命令
df查看磁盘利用率
-k显示当前磁盘剩余的磁盘空间
-h显示为符合人类阅读习惯
du查看文件大小

时间: 2025-01-11 13:16:13

Linux安全基础:shell及一些基础命令的相关文章

Linux中的shell脚本编程——基础篇

概述: shell脚本在Linux系统管理员的运维工作中非常重要.shell脚本能够帮助我们很方便的管理服务器,因为我们可以指定一个任务计划,定时的去执行某一个脚本以满足我们的需求.本篇将从编程基础.脚本基本格式.变量.运算.条件测试这几个方面详细介绍shell脚本编程的基础内容,也是我们必须要掌握熟练的内容. 一.编程环境 1.程序:指令+数据 程序编程的风格有两种: 过程式:以指令为中心,数据服务与指令 对象式:以数据为中心,指令服务于数据 2.程序的执行方式: □计算机:只能识别二进制文件

第九章、shell脚本编程基础

第九章.shell脚本编程基础 本章内容 编程基础 脚本基本格式 变量 运算 条件测试 配置用户环境 编程基础 程序:指令+数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 程序的执行方式 计算机:运行二进制指令 编程语言: 低级:汇编 高级: 编译:高级语言-->编译器-->目标代码 java,C# 解释:高级语言-->解释器-->机器代码 shell, perl, python (系统后台

Linux Shell学习之基础篇

在学习Linux和OpenStack过程中,感觉不管是大规模部署部署还是运维,Shell脚本都已经是标配,所以学好脚本很有必要. 以下仅为Linux Shell的一些基础笔记,这里作为笔记记下. ===============linux shell简介====================== 1.命令补全:连续按两次Tab   文件或者文件夹补全:一次Tab   命令帮助:--help 2.chmod u=rwx,g+w,o+r filename   chown root.root file

Linux学习笔记——Shell基础(八)

+++++++++++++++++++++++++ +++++Shell基础+++++++++++++++++++++++++++++++ 1. Shell概述 Shell定义: Shell 是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动.挂起.停止甚至编写一些程序. Shell还是一个功能相当强大的编程语言,易编写.调试.Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令. Shell分类: Bo

Linux入门——基础shell

Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, Linux/UNIX系统的底层及基础应用软件的核心大都涉及Shell脚本的内容.每一个合格 的Linux系统管理员或运维工程师,都需要能够熟练地编写Shell脚本语言,并能够阅 读系统及各类软件附带的Shell脚本内容.只有这样才能提升运维人员的工作效率,适 应曰益复杂的工作环境,减少不必要的重复工作,从而为个人的职场发展奠定较好的基础 1脚本语言的种类 1.1编译型语言 指用专用的编译器,针对特定的操作平台(操

零基础学习Linux必会的60个常用命令

Linux必学的60个命令Linux提供了大量的命令,利用它可以有效地完成大量的工 作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在Linux系统上工作离不开使用系统提供的命令.要想真正理解Linux系统, 就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统. 不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个.这里笔者把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分一一介绍. ◆ 安装和登录命令

Linux shell脚本编程基础之练习篇

shell脚本编程基础之练习篇. 1.编写一个脚本使我们在写一个脚本时自动生成”#!/bin/bash”这一行和注释信息. #!/bin/bash if [ $# -ne 1 ] then echo "请输入一个参数" exit else echo "参数正确" newfile=$1 fi #echo `grep "^#\!" ${newfile}` if ! grep "^#\!" ${newfile} &>/

Shell脚本编程基础——Linux基本命令(11)

1.Shell脚本基础 (1)shell脚本 包含一些命令或声明,并符合一定格式的文本文件 格式要求:首行shebang机制 #!/bin/bash #!/usr/bin/python #!/usr/bin/perl (2)格式要求 脚本代码开头约定: 1.第一行一般为调用使用的语言 2.程序名,避免更改文件名为无法找到正确的文件 3.版本号 4.更改后的时间 5.作者相关信息 6.该程序的作用,及注意事项 7.最后是各版本的更新简要说明(也可以不写) 其实最重要的是第一行,其他行也可以不写,但

Linux学习之Shell基础

一.Shell概述 1.Shell概述: Shell:壳,Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面级程序,用户可以用Shell来启动.挂起.停止甚至是编写一些程序.类似于翻译,相当windows的操作界面 Shell同时还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强.Shell是解释执行的脚本语言,在Shell中可以直接调用Linux命令. 2.Shell的分类: Bourne Shell:从1979起Unix就开始使用的Bourne