linux小白学习入门篇

什么是linux shell

linux shell是与linux内核之间的接口程序,为用户提供使用操作系统的接口,当xshell向linux传输命令时,内核会做出相应的反应,当普通用户登录时,系统将执行hshell程序,shell会提供一个命令行提示,作为默认值,普通用户是$作为提示符,超级用户(root)用“#”作为提示符,在xshell下,你可以使用如下按键组合键来编辑和回调命令

命令描述
ctrl+w删除光标位置前的单词
ctrl+u删除光标之前的所有内容
tab自动补全文件名称,目录名称等
ctrl+r搜索先前使用的命令
ctrl+c终止当前命令
ctrl+d退出登录xshell,也可以输入logout,exit命令
ctrl+t调换光标前的两个单词
Ctrl+a光标移到命令行头
Ctrl+e光标移动到命令行尾
Ctrl+k删除光标之后的所有内容
Ctrl+y在光标处粘贴复制或者剪切的内容
Ctrl+l清屏
Crtl+Alt+T开启一个shell终端。
为什么使用xshell
  1. 使用简单
  2. 节约时间,可以吧冗长的重复的一连串命令合并成一条简单的命令
  3. 使系统管理任务自动化
常用到xshell的实例
  1. 监控linux系统
  2. 备份数据或创建快照
  3. 创建邮件告警系统
  4. 查找耗尽系统资源的进程
  5. 查找是否所有的网络服务都正常运行等等
linux的重要组成部分
名称描述
内核linux操作系统的核心内核分为进程管理系统,内存管理系统,i/o管理系统,文件管理系统等四个子系统
shell为用户和内核提供一个交互的接口 ,其中包括读取命令行,解释他的含义并执行等
终端模拟器它允许用户输入命令并在屏幕上回显命令的运行结果
linux桌面和窗口管理器linux左面是各种软件应用程序的集合,它包括文件管理器,窗口管理器,终端模拟器等等
linux系统变量

env/printenv 查看系统变量
echo $变量名/printf 查看某个变量的值
变量名=值,给变量赋值或定义变量
unsetv 变量名、函数,删除变量或函数(注意:不能删除一个只读的变量)
${变量名?错误信息/变量名:?错误信息},判断变量名是否存在
####系统变量的命名规则
变量名必须以字母或下划线字符“_”开头,后面跟字母,数字或下划线字符,第一个字符不能为字符,不要使用?、*等特殊字符(变量名是大小写敏感的)

xshell中的扩展

| 扩展类型 |描述 |实例|
| ------------ | ------------ |
| 大括号扩展 | 是一种能够生成任意字符串的机制,在形式上有一种可选的前缀,是一组包含在大括号内的用逗号分隔的字符串或者序列表达式,按照从左到右的顺序依次排列 |echo{a…f}(a到f的字符),echo{1,5}(1到5的数字),在bash4中,新增了在序列表达式中指定增量。eg:{start…end…incr}(incr代表增量)
| 破浪号扩展| 用来指代自己或他人的主目录 |cd ~
|参数和变量扩展|||
|命令替换|| |
|算数扩展|||
|进程替换|||
|单词拆分|||
|文件名扩展||||

linux的创建和使用别名

注意:虽然别名的使用简单而方便,但你要非常谨慎的使用别名替换标准命令
创建别名
注意:修改~/.bashrc文件,需要重新启动xshell后才会生效
语法:alias name=‘conmand’ (name:别名,conmond:xshell命令)
例子:alias ll=‘ls -l’
查看别名
语法:alias name
例子:alias ll
删除别名
语法 :unalias name
例子:unalias ll

xshell常用命令

查看文件和目录

命令描述
ls -l每一行显示一条记录
ls -lh显示的格式更容易满足人的阅读习惯
ls -f将使用不同的特殊字符归类不同的文件类型(/:(表示目录),无特殊字符:表示普通文件,@:表示连接文件,*:表示可执行文件)
ls -ltr将以长列表格式按文件或目录的修改时间倒序的列出文件和目录
ls -ls将以长列表格式按文件的大小顺序列出文件和目录
ls -a将列出包括隐藏文件或目录在内的所有文件和目录,包括“.”(当前目录)“和…(父目录)”

cat命令实例
cat命令让我们可以查看文件的内容、连接文件,创建一个或多个文件和重定向输出到终端或文件

命令描述
cat 文件名称查看文件的内容(可以查看读个文件,用空格隔开)
cat -n 文件名称查看文件内容并显示行号
cat -b 文件名称与-n相似,只是只查看非空白行的行号

less、more命令实例,分频显示文件
more命令时用于一次翻阅一整屏文件的过滤器,less命令与more命令类似,支持向前向后翻页,但less命令不需要再查看前加载整个文件,所有更快速

命令描述
more文件名称查看文件 ,按空格键会自动显示下一页的内容
more -num 文件名称指定一次显示的行数

显示头部和尾部命令
head:显示头部命令。head -number 文件名称
tail:显示文件尾部(默认显示最后十行内容)tail -number 文件名称,使用-f命令可以及时打印新写入的行,常用这个监控实时的日志信息
file命令,查看文件类型
语法: file 文件名称或目录名称
f ile -i 文件名称或目录名称类型的信息
wc命令,查看文件统计信息
wc命令用于查看文件的行数,单词书和字符数等信息,语法如下:
wc filename
X :表示行数
Y: 表示单词数
Z:字节数
fineame:表示文件名
其他使用:
-l:只统计文件的行数
-w:只统计文件的单词数
-c:只统计文件的字节数
-L:只统计文件最长行的长度

find命令实例:查找文件或目录

用于根据你指定的参数搜索和定位文件和目录的列表,简单的使用语法如下:
find 目录 -name 搜索的关键字
常用命令:

命令描述
find . name test在当前目录下,查找文件名为test的文件
find . iname test在当前目录下,不区分大小写,查找文件名为test的文件
find . -type d -name tem在当前目录下,目录名称是tem的目录
find . -type f -name “*txt”tem在当前目录下,所有名称是txt的文件
find . -type f -perm 777在当前目录下,文件权限是777的所有文件
find . -type f ! -perm 777在当前目录下,文件权限不是777的所有文件
find . -type f ! -perm /a+w在当前目录下,所有文件只读文件
find . -type f -empty在当前目录下,找出所有空文件
find . -type d -empty在当前目录下,找出所有空目录
find . -type f -name “.*”在当前目录下,找出所有隐藏文件
find . -user root在当前目录下,找出所有所有者是root的文件或目录
find . -group developer在当前目录下,找出所有用户组是developer的文件或目录
find ~ -type f -mtime 3找出该账号主目录下,3天前修改的文件
find ~ -type f -mtime +3找出该账号主目录下,30天以前修改的文件
find ~ -type f -mtime -3找出该账号主目录下,3天以内修改的文件
find ~ -type f -mtime +30 -mtime -60找出该账号主目录下,30天以前60天以内修改的文件
find main -type f -cmin -60找出main目录下,1小时以内修改的文件
find main -type f -amin -60找出main目录下,1小时以内访问过的文件
find ~ -type f -size -50MB找出主目录下,大小是50MB的的文件
find ~ -type f -size +50MB -size -100MB找出主目录下,大小是大于50MB小于100MB的文件
touch命令实例,创建文件

touch命令可用于创建,变更和修改文件的时间戳,touch命令有如下选项:
touch -a 文件名称:改变或更新文件的最新访问时间,如果文件不存在,则会自动创建
touch -c 文件名称:文件不存在不创建任何文件,用当前时间更新文件的时间戳
touch -m 文件名称:只改变修改时间,而访问时间不修改
touch -c -t YYMMDDHHMM filename 可以用-c和-t选项,来明确设置文件的时间
touch -r 文件名称 文件名称2:使用文件名称的时间戳更新文件名称2的时间戳
创建文件命令:
touch 文件名称(一次性创建多个文件 touch 文件名称 文件名称)
####mkdir命令实例,创建目录
语法:
**mkdir: **父目录/子目录
**mkdir -p 主目录/子目录: **创建父目录和子目录,即递归创建目录(注意:使用-p选项,如果目录已经存在或不存在会阻止错误的发生)
** mkdir -p -m 777 父目录/子目录或mkdir -p a=rwx 父目录/子目录: **创建目录的同事,设置权限(777:任何人都可以读写和访问)

cp命令实例:复制文件或目录

语法:

  • cp file.txt newfile.txt:创建file.txt的副本
  • cp file.txt /tmp/:复制当前目录下的文件file.txt到tmp目录下
  • cp * /tmp:复制当前目录下的所有文件到/tem目录下
  • cp -p filename 新地址及文件名,使用-p选项,可以保留源文件的所有者,用户组,权限,修改和访问时间,以及其他扩展属性
    (使用-R和-r选项,可以递归复制目录)
    cp的常用选项:
    -a:存档模式,相当于-dpR
    -d:保留软连接
    -p:保留权限,所有权和时间戳等信息
    -R:递归的复制目录
    ####ln命令实例:连接文件和目录
    ln命令用于创建软连接和硬连接
    eg:
    ln -s source dist # 建立软连接
    ln source dist # 建立硬连接
    (注意:linux不允许给目录创建硬链接,当你创建软连接时,如果已经存在与此软连接同名的文件,那么你可以使用-backup选项,让ln命令在创建这个新链接之前,先备份已经存在的同名文件,如果不想备份,而是覆盖已存在的文件,则使用-f)
    实例:
    ln -s httpd.conf confighttp
      其中 httpd.conf 就是源文件,confighttp是链接文件名,其作用是当编辑confighttp
    ,实际上是链接编辑httpd.conf。
      如果要删除软链接:
      rm -rf confighttp
      这样只会删除confighttp链接文件,而不会删除源文件httpd.conf。
      相对于软连接,还有硬链接,
      建立硬链接命令:
      ln httpd.conf confighttp
      硬链接文件相当于一个文件存储在两个位置,可以有效防止误删。
    ####mv命令实例,重命名文件和目录
    mv命令用于将文件和目录从一个位置移动到另外一个位置,除了移动文件,mv命令还可用于修改文件或目录的名字
    语法:mv source… 目录
    例子:
    mv source.txt /tmp:将当前目录下的文件source.txt移动目录tmp下
    mv dir1 dir2 dir_dist:将目录dir1,dir2一道目录dir_dist下
    mv old.txt new.txt:使用mv命令将当前目录下的文件old.txt更名为new.txt
    mv olddir newdir:将目录olddir更名为newdir
    mv * /rmp/ :当前目录下的多有文件移动到tmp目录下
    mv -u dir1/* dir2/:移动dir中所有且不存在dir2中的文件

注意:默认情况下,如果目标文件或目录已存在,mv命令并不会提示你任何信息,而是直接覆盖,为了避免这个问题,可以使用-i选项,来提示确认是否覆盖。eg:mv>注意:默认情况下,如果目标文件或目录已存在,mv命令并不会提示你任何信息,而是直接覆盖,为了避免这个问题,可以使用-i选项,来提示确认是否覆盖。eg:mv -i old.txt new.txt

#### rm命令实例:删除文件或目录 rm *:删除当前目录下的所有文件 rm ~/temp/*:删除,前账号主目录下temp目录中的所有文件 rm -i test.txt:使用i选项,在删除前提示用户是否删除 rm -i test.txt rm *.doc :删除当前目录下“.doc“为后缀的文件 rm *movie*:删除当前目录下所有文件名包含movie字符串的文件 rm a*:删除当前目录下所有以小写字母“a”开头的文件 rm *.??:删除当前目录下文件扩展名有两个字符的所有文件(一个?匹配一个字符) rm * [abc] *: 删除当前目录下文件名中包含字母a,b,c的所有文件 注:[]用于匹配括号内的任意一个字符 rm *[0-9]* :删除当前目录下文件名中包含字母0-9有文件 rm *.[ch]:删除当前目录下文件扩展名是a或者h的所有文件 rm -rf /tmp/*:删除/tmp目录下所有文件以及子目录

注意: -f:删除前不提示用户确认,并忽略不存在的文件 -r(或-R):递归的删除目录及其下的内容

Linux文件权限详解

Linux系统中不仅是对用户与组根据UID,GID进行了管理,还对Linux系统中的文件,按照用户与组进行分类,针对不同的群体进行了权限管理,用他来确定谁能通过何种方式对文件和目录进行访问和操作。
####一:文件权限
查看权限:ls -l
返回结果详解:

文件的权限针对三类对象进行定义

  • owner 属主,缩写u
  • group 属组,缩写g
  • other 其他,缩写o
    每个文件针对每类访问者定义了三种主要权限
  • r:Read 读
  • w:Write 写
  • x:eXecute 执行

另 X:针对目录加执行权限,文件不加执行权限(因文件具备执行权限有安全隐患) 注意:root账户不受文件权限的读写限制,执行权限受限制

**对于文件和目录来说,r,w,x有着不同的作用和含义:**

1. 针对文件:

  • r:读取文件内容
  • w:修改文件内容
  • x:执行权限对除二进制程序以外的文件没什么意义

2. 针对目录:目录本质可看做是存放文件列表、节点号等内容的文件

  • r:查看目录下的文件列表
  • w:删除和创建目录下的文件
  • x:可以cd进入目录,能查看目录中文件的详细属性,能访问目录下文件内容(基础权限)
  • 用户获取文件权限的顺序: 先看是否为所有者,如果是,则后面权限不看;再看是否为所属组,如果是,则后面权限不看。
二:修改文件访问权限的方法

chmod 修改权限 change mode
方法1:mode法
语法:chmod who opt per file
参数描述:

  • who:u g o a(all)
  • opt:+ – =
  • per:r w x X
    方法2:数字法
    语法:chmod XXX file
    参数描述:
    rwx rw- r–
    111 110 100
    7 6 4
    r:4
    w:2
    x:1
    例:chmod 764 file 给file文件添加 rwxrw-r– 权限
    chmod -R +X dir 给dir目录添加X执行权限,dir目录下文件不添加执行权限
    (如果dir目录下有文件已具备执行权限,则添加该文件执行权限)
    ####三、UMASK值
    作用:取消对应的权限,影响创建文件和目录的默认权限
  • 对目录:umask+default=777(dir)
  • 对文件:666-umask:观察结果,如果有奇数,奇数位+1,偶数不变
    ####四、文件权限操作的常用命令
  • chown 设置文件所有者(普通用户无法修改文件所有者)
  • chgrp 设置文件所属组(普通用户要想该所属组,前提是文件所有者为自己,自己在所属组中)
  • chmod 设置指定文件权限
    ( -R 递归,–reference=f1 f2 f3 参考f1文件权限设置f2,f3文件)
  • chattr 给指定文件添加保护,避免root账户误操作
  • lsattr 查看指定文件是否有锁定状态
  • setfacl 设置文件ACL权限
  • getfacl 查看文件ACL权限

df -h: df命令用于显示硬盘当前的使用情况,h参数的意思是以易于理解阅读的方式显示结果,这个命令会输出硬盘使用的百分比,以及剩余的大小。

命令行提示符的意义

例如:[root@localhost dev]#

  • roo:代表当前用户
  • @localhost 代表当前主机名
  • dev:代表当前目录
  • #:代表管理员权限 ,¥代表普通用户权限
    ##帮助命令
    man 命令名称,如:man ls
    命令名称 --help ,如:ls --help

##关机命令
shutdown -h now:立马关机
shutdown -h 20:00 :今晚八点关机
shutdown -h+10:十分钟以后关机
shutdown -r now :立马重启
shutdowm -r +10:十分钟以后重启
halt 关机 (等于shutdown -h now命令)
reboot 重启(等于shutdown -r now )
init 6 重启

创建开机启动项:
(1)编辑文件 /etc/rc.local

输入命令:vim /etc/rc.local 将出现类似如下的文本片段:

#!/bin/sh

This script will be executed after all the other init scripts.

You can put your own initialization stuff in here if you don’t

want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
/etc/init.d/mysqld start #mysql开机启动
/etc/init.d/nginx start #nginx开机启动
/etc/init.d/php-fpm start #php-fpm开机启动
/etc/init.d/memcached start #memcache开机启动

#在文件末尾(exit 0之前)加上你开机需要启动的程序或执行的命令即可(执行的程序需要写绝对路径,添加到系统环境变量的除外),如:

/usr/local/thttpd/sbin/thttpd -C /usr/local/thttpd/etc/thttpd.conf
** (2)自己写一个shell脚本**

将写好的脚本(.sh文件)放到目录 /etc/profile.d/ 下,系统启动后就会自动执行该目录下的所有shell脚本。

(3)通过chkconfig命令设置
将启动文件cp到 /etc/init.d/或者/etc/rc.d/init.d/(前者是后者的软连接)下

vim 启动文件,文件前面务必添加如下三行代码,否侧会提示chkconfig不支持

#!/bin/sh 告诉系统使用的shell,所以的shell脚本都是这样
#chkconfig: 35 20 80 分别代表运行级别,启动优先权,关闭优先权,此行代码必须
#description: http server(自己随便发挥)//两行都注释掉!!!,此行代码必须

chkconfig --add 脚本文件名 操作后就已经添加了

文件的权限

文件的所有者:用户user(u前三位数,),用户组group(g中间三位数),其他other(o后三位数)
可读:r ,4 可写:w ,2 可执行:x ,1
分配权限:
1:chmod 777 文件名称(代表用户,用户组,other的权限都赋值为:可读可写可执行)
2:chmod u=wx 文件名称(代表给用户赋权为可写和可执行)
3:chmod +x 文件名称(给三个所有者都赋权限为执行)
4:chmod u-r 文件名称 ( 表示用户的权限减去可读权限)
4:chmod g-w 文件名称 ( 表示用户组权限减去可写权限)

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值