Linux基础命令(一)

一 、虚拟机初涉

     虚拟机的作用(通俗):顾名思义就是虚拟出来的电脑,这个虚拟出来的电脑和真实的电脑几乎完全一样,所不同的是他的硬盘在一个文件中虚拟出来的,所以你可以随意修改虚拟机的设置,而不用担心对自己的电脑造成损失,因此可以用来做试验什么的,呵呵,差不多就是这样了,不知道我说的能明白不^_^,简单说就是一句话,虚拟 出来的电脑,你干什么都行。 现在说一下虚拟机的软件,主要是两中,VirtualPC和VMware。软件的选择也是有门道滴,嘿嘿,简单来说,VPC的设置很简单,一路next就行了,VM设置相对麻烦一些,不过也不是麻烦很多,但是VM拥有更好的性能,可以说和真实的电脑性能完全一样,还可以用桥接的方式和现在的电脑互连^_^,可以研究的东西就更多了

常见的命令

    1  rht-vmctl start desktop               ##开启虚拟机
    2  rht-vmctl view desktop               ##显示虚拟机的UI界面
    3  rht-vmctl reset desktop              ##重置(虚拟机被玩坏了或者虚拟机的东西太多-->交互:询问是否重置y表示yes)
    4  rht-vmctl poweroff desktop        ##断电,关闭虚拟机

补充:rht-vmctl status desktop         ##查看虚拟机的运行状态

manualrht-vmctl(翻译):redhat virtual machine controller

细节:终端字体变(ctrl+shift+“+”-->保护眼睛);( ctrl+"-")

(2)虚拟机的用户登陆问题

普通用户:回车键进入student(相当于输入了student)--->输入用户名的密码--->进入到系统用户的登陆界面(左上角的位置显示用户)

超级用户:默认隐藏,必须点击Not Lists,输入用户名(root)和密码才能进入登陆界面

补充:用户登出

gnome-session-quit --force 或者 logout(点击)

(3)语言调整

需求:系统的创建如果没有设置字体,则无法输入中文,因此必须设置

[Applications]----->[System Tools]---->settings----->Region & language --->language---->Chinese

或者gnome-control-center --->命令控制中心--->命令行的形式进入[Settings]

(4)设置终端快捷键的开启

[Applications]----->[System Tools]---->[settings]------>[keyboard]---->[Shortcuts]---->+---->Name:随意  Command:gnome-terminal(开启终端的命令,最好是绝对路径)--->点击diasbled---->选则对应的快捷键(eg:ctrl+t)来替代,然后测试!

简洁方式同上

############################分割线###################################

二  、命令初涉

(1)基本概念

[kiosk@foundation1 ~]$:用户名(当前打开shell的用户)+分隔符+机器名(默认主机名的简写形式)+当前的工作目录 身份提示符

身份提示符#表示超级用户(root),$表示普通用户

行提示符:光标闪动的地方

注意:命令要在行提示符之后输入才能执行,单向的输入!

后续:"[kiosk@foundation1 ~]$"这一部分修改方式

(2)切换用户

[kiosk@foundation0 Desktop]$ su -l username

说明1:高级用户切换到低级用户不需要密码,低级用户切换到高级或者平级用户的切换需要密码

(3)控制台的开启

应用:可以解决死机的问题,运维人员通常在此黑窗口执行命令(电脑可能不配置显卡)

Ctrl+Alt+F(1|7)     ------>进入图形界面桌面(纯文本)
Ctrl+Alt+F(2~6)   ------->进入虚拟控制台(黑窗口,终端),用户名和密码的登陆!

补充运行级别

init 0        -->关机

init 1        -->单用户模式

init [2-4]    -->无图模式(常用 init 3),进入虚拟控制台(黑窗口,终端)

init 5        -->Linux的X11图形界面,进入图形界面桌面(纯文本)

init 6        -->重启

后续:通过脚本的形式(for in)来进行关闭多台主机的图形界面

应用界面卡死的流程

#################################分割线#####################################

虚拟控制台相关信息

Red hat Enterprise Linux Server 7.0 (Maipo)    ##系统版本
Kernel 3.10.0-123.el7.x86_64 on an x86_64    ##内核版本,系统位数

desktop0 login:root                                            ##登陆用户名称输入
Password:                                                           ##密码输入无回显

后续补充:控制台信息的相应配置文件

(4)屏幕管理

ctrl+L--->(终端命令的清屏);windows(图标)+L--->(锁屏--安全考虑,否则会扣钱)

(6)在当前终端中,通过快捷键打开其它终端

ctrl+shift+t----->打开终端显示在同一个界面显示

ctrl+shift+n---->分页打开一个的终端

注意:以上两种方式的前提必须是已经打开一个terminal!

提示:鼠标的两种方式、命令的一种方式、自定义快捷键的方式

(5)命令的执行

1.命令必须在行提示符之后输入
2.命令格式  :命令 参数 目标
3.ctrl +c            ##撤销命令的执行 c-->cancel --->测试:ping 域名
4.命令参数
-参数                ##单词缩写
--参数               ##单词的

(6)命令的帮助

   1)查看命令用途
whatis 命令    ##查看命令的用途

   2)查看命令的用法(基本)
命令 --help    ##查看命令的基本用法,适用于多数命令
[]          ##标示选项可以加也可以不加
...         ##标示选项加入的个数任意
<>       ##标示选项是必须要加入的
Userage:    ##标示命令用法
Opetions:    ##对参数的作用做说明

   3)man查看命令或文件的说说明手册(更详细!)

       man:manual(手册)

       mandb-->一般是刚装的系统没有更新!

   man的级别

1    #常规命令(类比:passwd)-->常用1
2    #系统调用接口(API)
3    #函数库调用接口
4    #特殊设备文件(/dev/null等)
5    #系统配置文件(类比:/etc/passwd)->文件的说明!-->常用2
6    #游戏规则说明
7    #包说明
8    #系统管理命令-->常用3
9    #内核调用规则

man -k    字符串    ##看当前字符串在系统中拥有的man的级别(类比:passwd级别)

/usr/share/doc       ##系统中所有安装过的软件帮助文档(大型软件文档)

man 命令 界面的常用命令的展示

上下键                             ##以行为单位递进,向上或向下一行
pageup|pagedown         ##按页查询,向下一个屏幕或者向上一个屏幕
d|u                                    ##向下或者向上半个屏幕
G|gg                                 ##跳转页面到man最下面或最上面
/关键字                            ##搜索关键字,关键字会高亮显示搜索方向:n向下匹配,N向上
:q                                   ##退出帮助页面

注意:上面的也是less的相关命令的操作

#######################分割线##############################

三、系统的使用基础方法

(1)系统登陆(两种,后续关注)

图形登陆方式-->logout
文本登陆方式-->gnome-session-quit  --force    #注销用户 --force强制注销,不询问

(2)工作界面转换

ctrl+alt+上|下------>四个界面的轮换转换

(3)终端开启(开启bash)

1.Applications>Utilities>Terminal
2.鼠标右键----->open in terminal
3.命令行:gnome-terminal
4.ctrl+shift+n         ##在新窗口中打开shell
   ctrl+shift+t          ##同一个窗口中打开新的tab
5.退出终端:exit | ctrl+d

(5)锁屏
ctrl + alt +L        ##在rhel7.0
win键 + L          ##在rhel7.2(采用

######################################分割线###############################################

四 、简单的系统命令

(1)date

watch -n 1 命令:动态监视某条命令(date)的运行轨迹(每一秒显示一次)

watch -n 1 date   ###监控:让date命令每秒执行(监控)一次,ctrl +c 可以退出监控模式

需求1修改系统时间

date命令将日期设置为2014年6月18日                                                               ----------->   date -s 06/18/14

时间设置为14点20分50秒                                                                                 ----------->   date -s 14:20:50

将时间设置()为2014年6月18日14点16分30秒(MMDDhhmmYYYY.ss)  ----------->date 06181416(21世纪)14.30

需求2:显示多少天前(后),系统时间不变

查看x天前或者后的时间:date  -d +(-)xday

设定date的输出格式:+%....

需求3:显示年月日,带上下午上午还是下午(AM,PM--->%p)

date +%(起始分隔符)【"分隔符(%或者-)"】m分隔符d%p

eg:%Y:%m:%d %p

(2)passwd

改用户的密码:普通和超级

普通

[kiosk@foundation0 Desktop]$ passwd
Changing password for user kiosk.                                                     ##改变普通用户密码
Changing password for kiosk.    
(current) UNIX password:                                                                    ##输入当前密码
New password:     
BAD PASSWORD: The password is the same as the old one        ##和原始密码不能相似
New password:
BAD PASSWORD: The password fails the dictionary check - it is too simplistic/systematic ##密码必须是无序数字+字母组合
New password:
BAD PASSWORD: The password is shorter than 8 characters        ##密码必须>8位

超级

[root@foundation0 ~]# passwd        ##默认是在当前登陆用户(不指定用户)

Changing password for user root     ##改变超级用户密码
New password:                                   ##输入密码
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:                      ##确认密码
passwd: all authentication tokens updated successfully.

passwd参数的基本信息

passwd       参数              用户名称
    -S          student            ##用户密码信息
    --status student             。。。。。。
    -l            student            ##锁定帐号(锁,权限控制,相当于封号,普通用户之间不能相互切换)
    -u           student            ##解锁
    -n   1      student            ##设定密码最短有效期
    -x   30    student            ##设定密码最长有效期
    -w   3     student            ##警告期(密码到期的倒计时)
    -i     2     student            ##设定用户非活跃天数(密码到期的延长时间,判死缓)
    -d           student            ##清除用户密码

需求:提升用户密码的级别(安全)

思路:定期修改,即用户一登陆就改密码(-e参数)

监控passwd密码信息:watch -n 1 passwd -S student

#################################分割线#########################################

(3)file

file 文件名字                    ##查看文件类型(Linux下一切皆文件)

(4)需求:文件的查看

   前提:测试文本的产生  

for i in `seq 1 30`
  do echo "$i">>number.txt
done

cat                   filename    ##显示文件的全部内容(-b 加上行号; -n显示空行的行号)

less                 file              ##分页浏览(用户体验好),按“q”退出
head               filename    ##显示一个文件的前10行
head -n  5       filename    ##前五行

补充:head -n -3 file        ##打印除了后三行之外的其它行

tail                   filename     ##显示文件后几行(默认10行)
tail    -n   5       filename     ##显示一个文件的后5行

补充:tail -n +3 file           ##3行开始打印到最后

##############################分割线##############################

(5)wc

需求:统计文件容量信息
wc    -l      行数
        -w     字数
        -c     字节数(Byte)
       -m     字符

字符与字节的关系取决于编码方式(UTF-8|GBK等!)

默认:wc file -->默认是行数单词字符

补充:统计文件的大小(KB/M/T)------>du -sh 文件(目录)

细节:默认会多加一个回车(空格),所以总是多一个字节或字符!

###############################################################

(6)tab

说明:在系统中table键可以自动补齐存在的命令,文件名称和某些命令的参数
    (1) 可以补齐系统中存在的命令,文件名称,和部分命令的参数
    (2)当一次<TAB>补齐不了时代表以此关键字开头的内容不唯一
    (3)可以用两次<TAB>来列出所有以此关键字开头的内容

(7)history历史调用

history                   ##显示历史(所有的命令操作,每个命令对应一个行号)
history -c              ##清除"当前环境"(bash)当中的历史命令(关闭bash后重新显示)-->常用
!数字                  ##执行第多少行命令(基于history中命令的行号)
!字母                  ##执行最近一条以这个字母开头的命令
ctrl +R +关键字    ##执行历史命令中最近一条"含有"这个关键字的命令--->如果不想执行--->ctrl+u来退出
上下键                  ##逐行调用命令(了解)---->重复高效

后续详细记录每条命令的执行时间

history -c 引申-->程序关闭,占用的资源(内存)被回收-->临时配置起效,关闭后history重新显示!

(8)linux命令行中的快捷键

左右                         ##一个字符一个字符移动
ctrl +左右                 ##一个字一个字移动
ctrl   + a                    ##光标移动到行
        + e                    ##光标移动到行尾
        + u                    ##光标所在位置删除到行首--->(vim的插入模式也可以用)
        + k                    ##光标所在位置删除到行尾
        + r+关键字      ##调出最近一条含有关键字的命令
        + c                    ##撤销以输入的命令
        + d                    ##关闭当前环境
        + L                    ##清空屏幕
        + shift + c         ##复制(区别Windows下的操作)
        + shift + v         ##粘贴
        + shift + t          ##在现有shell中重新打开一个table
        + shift + n         ##在shell中打
        + alt +上|下      ##切换工作界面
        + alt + f1|f7      ##进入图形界面
        + alt + f2-f6      ##进入虚拟控制台

补充1ctrl+w        ##删除前一个单词(vim的插入模式也可以用)

补充2:ctrl+&          ##可以恢复ctrl+u撤销的内容!

###############################分割线################################

五 、文件(目录)的操作

(1)touch

作用:创建新文件或者修改文件的时间戳

touch file             ##创建文件!

查看文件的时间戳stat filename

Access: 2018-07-27 20:45:32.203353882  +0800------------------->文件最后一次被读取的时间(access time---->cat时变化)
Modify: 2018-07-27 20:45:32.220354009   +0800------------------->文件最后一次内容被修改的时间(modify time)
Change: 2018-07-27 20:45:32.233354106 +0800------------------->文件属性最后一次发生变化时间(名字/权限属性等--status time)

用法:touch -t YYMMDDhhmm 的格式

原因:回头补充

(2)mkdir

目录:容器,里面放一些文件或者子目录!

############################

1)创建

创建单级目录:mkdir 目录名 路径

创建多级目录:mkdir -p(pass-->默认不存在的目录也创建) 目录名(westos/wzj/com) 路径

############################

2)删除(remove)-->细节的斟酌

需求:(1)删除文件(2)删除目录

参数说明:

-r :级联删除,可以删除目录以及目录下的文件(只要目录不为空就必须加r参数)!

-f :忽略不存在的文件从不给出提示,如果删除的文件"不存在"忽略(容错率很高)!

-i :每次删除的时候,给出提示,提醒是否确认删除(y/n) -->交互

root:默认包含i参数!--> alias | grep rm

###############细节问题##############

说明:以下图片仅仅是为了说明dir1/dir2与dir1/dir2/*的删除问题

图1需求-->删除目录下的内容(包含文件和目录)

错误信息提示:删除的如果是目录必须加上-r,不管目录下有内容没有!

图2:需求-->删除目录下的内容(不包含自身),但是目录下的内容除了文件还有目录

说明:并没有删除隐藏的文件或者目录!

图3:删除目录下面的内容(只有文件没有目录),不删除当前目录的两种对比!

注意:如果目录下只有文件(没有目录),删除目录里面的内容-->最好加上"-r"参数,表示一种选择,实际我们并不知道目录下是否有目录!

说明:带有*的表示直接定位到目录里面的内容

补充:文件名或者目录,以特殊字符开头的,删除的处理办法

特殊字符(在shell中有特殊含义的):~、-等

处理方法:rm -- -file 或者 rm  ./-file

Linux下面如何拷贝和删除隐藏的目录和文件

后续:可以通过脚本的形式,找到当前的文件名(包含隐藏)!

####################################################

提示关于复制和移动另外所写的博客

3)复制

cp 源文件的路径 目标路径

说明:如果是当前目录必须写上".",不能为空

复制的特点:相当于创建了一个的文件(时间发生改变了)

目录:同上

4)移动

语法:mv 源文件路径 目标路径

同一磁盘:重命名

不同磁盘:复制后删除

理解:剪切后粘贴

注意:移动关于目录不需要递归(-r)参数

补充:mv的专题!

##########################分割线###################################

六、 文件的寻址

1)文件的地址分为:
    相对路径
         相对与当前系统所在目录的一个文件名称的简写
         此名称省略了系统当前所在目录的名称
         此名称不以“/”开头
         此名称在命令执行时会自动在操作对象前加入“PWD”所显示的值
        
2)绝对路径
         绝对路径是文件在系统的真实位置
         此命令是以“/”开头的
         此命令在命执行时系统不会考虑现在所在位置的信息

引用:把动作变成名称字符,这种方法叫引用--->创建有空格的文件

##########################分割线##################################

七、关于路径的命令

1)目录的切换(cd----change directory)

cd directory        ##切换工作目录到指定目录

cd -                      ##切换工作目录到之前所在目录(退回上一次操作所在的目录)

cd ~                     ##切换到自己的家目录(等效-->cd)

cd ~usernmae    ##切换到指定用户家目录(只有root可以用)

cd ..                      ##进入到当前目录的上级目录

cd .                       ##进入当前目录

说明:"."场景,自己经历过的,创建了一个"~"目录,然后删除竟然将家目录删除

后续:家目录的恢复!

2)高级的用法

(1)说明:关于当前目录的说明-->"."

".":表示的是redhat Linux系统版本的用法
"~+":表示的是所有Linux(类Unix)通用的方式

(2)说明:关于当前目录之前所在的目录的说明-->"-"

"-":只是cd命令所特有的!(记录的是OLDPWD变量保存的值)
"~-":表示的是所有Linux(类Unix)命令通用的方式

需求:将文件复制(移动)到当前用户的之前所在的目录

cp /etc/passwd -   #想法:将此文件移动到当前目录的之前所在的目录

ls                 #发现当前目录有一个"-"

{cat -、cat "-"、cat \-、cat .\-} -->无法查看文件的内容

cat ./\-           #正确(转义)

cat ./-            #正确

常规做法

#之前-->在/mnt/目录中

cp /etc/passwd ~-   ======说明:"-"是cd特有的!

cd ~-

后续引用和转义-->在shell编程中会见讲到!

###########################分割线#############################

八、查看

ls(list)                                  ##如果后面没有目标那么默认目标为当前目录
ls direcory|filename           ##列出文件或目录内容
ls -d direcotry                     ##列出目录本身
ls -l filename|dorectory      ##列出文件或目录里面内容的属性(长列表的形式)(inode-->文件被记录的次数)
ls -ld directory                    ##列出目录本身属性
ls -a                                     ##显示目录中的所有内容,包括以"."开头的隐藏文件
ls -R                                     ##递归显示目录中的内容(子目录的内容)-->类似tree命令的含义!

补充:ls -F                       ##后缀加上文件类型的指示符号 (*/=@| 其中一个)、-S(排序)、-s(size-->大小)

#############################分割线##################################

、统配符(touch、rm、ls、cp、mv应用)

(1)统配符的说明

目的:主要是对一些文件统一管理,方便后续操作

 *                      ###匹配0到任意字符[0,+无穷](特殊符号、字母、数字、空格)
?                    ###匹配单个字符(1位)
[[:alpha:]]         ###匹配单个字母
[[:lower:]]         ###匹配单个小写字母
[[:upper:]]        ###匹配单个大写字母
[[:digit:]]           ###匹配单个数字
[[:alnum:]]        ###匹配单个数字字母
[[:punct:]]         ###匹配单个符号(特殊--@#&一类的)
[[:space:]]       ###匹配单个空格(制表符!)

补充:[[:punct:][:upper:]]    ##单个符号或单个大写字母

(2){}与[]的说明

{}表示存在的--->精确
{1..9}             ###1-9
{a..f}              ###a-f
{1,3,5}          ###135
{a,c,e}          ###a c e
{1..3}{a..c}   ###(9个)1a 2a 3a 2a 2b 2c 3a 3b 3c--->笛卡尔坐标系

[]表示存在的(1位)---->模糊
[a-C]        ###aA bB cC(不区分大小写)-->ASCII码
[a-c]         ###aA或者bB或者c
[1-3]         ###1或者2或者3--->等效形式([123])

!、^取反

[!3-5]        #1位,不是3-5的数字
[^3-5]        #1位,不是3-5的数字

补充:^[3-5]        #含义!

模糊删除可以,创建不行(不明确-->不知道到底创建哪个)!

案例:

测试:

touch WESTOS_class{1..2}_linux{1..6}

mkdir study;mv WESTOS* study/

touch redhat_version{1..8}

mkdir /mnt/VERSION

mv redhat_version* /mnt/VERSION/

mkdir SINGL;cp /mnt/VERSION/redhat_version{1,3,5,7} SINGL/

mkdir DOUBLE;cp /mnt/VERSION/redhat_version{2,4,6,8} DOUBLE/

mkdir CLASS{1..2}; mv study/WESTOS_class1_linux? CLASS1/

mv study/WESTOS_class2_linux? CLASS2/

mkdir confdir;cp /etc/*[[:digit:]]*.conf confdir

rm -fr confdir/ study/ /mnt/VERSION/ DOUBLE/ SINGL/CLASS{1..2}

补充:cp、rm、mv关于统配符的细节问题

(1)cp源文件不存在时-->{}与[]的区别

图1:cp时,精确匹配出错-->因为要求源文件存在,但是实际情况并不存在!

图2:cp时,模糊匹配没有出错--->原因:此源文件不一定存在!

应用场景:shell脚本的批处理--->涉及命令回传码的应用!

(2)mv同上

(3)rm的小细节

思考:如果不想考虑源文件存不存在的问题--->有则删,无则略过!

小结:cp、mv如果不采用文件名模式(来源于精通正则表达式)匹配,源文件必须存在,如果不存在则报错!

相关链接:Linux 通配符、元字符和特殊字符详解

###########################分割线#############################

十、FHS结构(面试)

linux是一个倒树型结构,最大的目录名称叫“/” (根目录)

#####linux系统中的二级目录######背(默写)

/bin         ##二进制可执行文件,系统"常规"命令
/boot        ##启动目录,存放系统开机启动文件,内核,初始化程序(文件)
/dev         ##系统设备管理文件-->光驱、内存条、硬盘(看得见模的着的)
/etc         ##大多数系统配置文件存放路径(杂七杂八的文件)-->系统的运行方式-->案例演示:用户名的改变
/home/子目录  ##普通用户家目录-->普通用户一进入bash中的默认位置
/lib         ##函数库-->命令运行所必须的函数!
/lib64/      ##64位函数库
/media       ##临时挂载点-->    光驱(不常用)
/mnt         ##临时挂载点-->一般是手动挂载点(redhat的镜像文件的挂载-->软件的安装)
/run         ##自动临时设备挂载点-->U盘-->(/run/media/用户/U盘的名字/)
/opt         ##第三方软件安装路径
/proc        ##系统硬件信息和系统"进程信息"(开启一个软件-->资源管理器的id-->此目录查询子目录)
/root        ##超级用户家目录
/sbin        ##系统"管理"命令,通常只有root可以执行(useradd)
/srv         ##系统数据目录
/var         ##系统数据目录
/sys         ##内核相关数据
/tmp         ##临时文件产生目录(一般关机前最好删除)
/usr/        ##用户相关信息数据(unix system resource)

后续:三级和四级目录的文件!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值