前面咱们已经成功安装了Linux系统--centos7,那么现在奔向Linux命令行的世界。
1.一般情况下,【参数】是可选的,一些情况下【文件或路径】也是可选的
2.参数 > 同一个命令,跟上不同的参数执行不同的功能
执行linux命令,添加参数的目的是让命令更加贴切实际工作的需要!
linux命令,参数之间,普遍应该用一个或多个空格分割!
命令提示符
[py@pylinux ~]$ 普通用户py,登陆后
[root@pylinux ~]# 超级用户root,登录后
root代表当前登录的用户
@ 分隔符
pylinux 主机名
~ 当前的登录的位置,此时是家目录
# 超级用户身份提示符
$ 普通用户身份提示符
windows平台命令行目录分隔符
Linux平台命令行目录分隔符
Linux首先是建立一个根"/"文件系统,所有的目录也都是由根目录衍生出来。
登录系统后,在当前命令窗口输入命令:
ls /
查看结果如下图:
在Linux底下,所有的文件与目录都是由根目录开始,是目录与文件的源头,然后一个个的分支下来,如同树枝状,因此称为这种目录配置为:目录树。
目录树的特点是什么呢?
Linux与windows区别
Linux 系统目录结构基本特点:
1.Linux下一切从根
开始
2.Linux下面的目录是一个有层次的目录结构
3.在linux中每个目录可以挂载到不同的设备(磁盘)上
4.Linux 下设备不挂载不能使用,不挂载的设备相当于没门没窗户的监狱(进不去出不来),挂载相当于给设备创造了一个入口(挂载点,一般为目录)
挂载通常是将一个存储设备
挂接到一个已经存在的目录
上,访问这个目录
就是访问该存储设备的内容。
对于Linux系统来说,一切接文件,所有文件都放在以根目录
为起点的树形目录结构中,任何硬件设备也都是文件形式
如图所示,是U盘存储设备和Linux系统自己的文件系统结构,此时Linux想要使用U盘的硬件设备,必须将Linux本身的目录
和硬件设备的文件目录合二为一,此过程就称之为挂载
。
挂载操作会隐藏原本Linux目录中的文件,因此选择Linux本身的目录,最好是新建空目录用于挂载
挂载之后,这个目录被称为挂载点
此时U盘文件系统已经是Linux文件系统的一部分,访问/sdb-u文件夹,即是访问访问U盘系统中的文件夹。
/bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令。
/boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
/dev :dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
/etc:这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
/opt: 这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。 这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/root:该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
/selinux: 这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
/srv: 该目录存放一些服务启动之后需要提取的数据。
/sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
/tmp:这个目录是用来存放一些临时文件的。
/usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
/usr/bin:系统用户使用的应用程序。
/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src:内核源代码默认的放置目录。
/var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
在linux系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。
值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。
/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。
ssh客户端
完成,没有图形界面Linux命令学习方法
当年浩哥在一家美资企业,一位台湾老程序员送我的一本书。。。
可能是看我骨骼惊奇吧!!
命令
对应英文
作用
ls
list
查看文件夹内容
pwd
print work directory
查看当前所在目录
cd 目录名
Change directory
切换文件夹
touch 文件名
touch
如果文件不存在,则创建
mkdir 目录名
Make directory
创建目录
rm 文件名
Remove
删除指定文件
我们知道切换目录的指令是cd,那么首先得知道如何切换目录,这个得用心记呀!
. 当前目录
.. 上一层目录
- 前一个工作目录
~ 当前【用户】所在的家目录
/ 顶级根目录
cd是change directory的缩写,这是用来变换工作目录的命令,注意命令和目录之间有一个空格。
需要注意的是,在所有目录底下都存在两个目录,分别是【.】和【..】,分别代表当前目录,上层目录!那么如何证明它的存在呢?
命令: ls -la /
查看命令解释:man ls (Linux下的帮助指令)
结论:ls - list directory contens (列出目录内容)
ls -la / 以竖状格式化显示列出/目录所有内容
以树形结构显示目录下内容
tree命令可能要单独安装:
yum install tree -y
tree命令语法:
tree常用参数
-C 在文件和目录清单加上色彩,便于区分各种类型。
-d 显示目录名称而非内容。
-D 列出文件或目录的更改时间。
-f 在每个文件或目录之前,显示完整的相对路径名称。
-F 在条目后加上文件类型的指示符号(* , /, = , @ , | ,其中的一个) 目录/
显示目录下内容及属性信息的命令
-a 显示指定目录下所有子目录与文件,包括以.开头的隐藏文件
-l 以列表方式显示文件的详细信息 ls -l 等于ll 用法
-h, --human-readable 与-l 一起,以易于阅读的格式输出文件大小
(例如 1K 234M 2G)
-t 根据最后修改时间排序,默认是以文件名排序,通常与-l 连用
-F 在条目后加上文件类型的指示符号(* , /, = , @ , | ,其中的一个)
注:可以标识文件类型
加上 * 代表可执行的普通文件
加上 = 表示套接字
加上 | 表示FIFOS(队列系统)
加上 @表示符号链接
加上 / 表示文件夹
-d 显示目录本身的信息 而不是显示目录的内容
-r, --reverse 逆序排列
-S 根据文件大小排序,从大到小排序
-i 显示索引节点信息(索引节点相当于身份证号)
--full-time 以完整的时间格式输出(也就是按照中国的时间日期显示)
案例
ls -lt 按照时间进行排序
ls -lrt 找出最新的文件
ls -d */ 列出当前所有目录
ll -hS ./* 显示出当前目录下所有内容详细,且以kb,mb,gb单位从大到小排序
创建文件夹
用法:mkdir [选项]... 目录...
若指定目录不存在则创建目录。
-m, --mode=模式 设置权限模式(类似chmod),而不是rwxrwxrwx 减umask
-p, --parents 需要时创建目标目录的上层目录,但即使这些目录已存在也不当作错误处理
mkdir {1..3}加花括号创建连续的目录,用..隔开 花括号内可以是连续的数字、连续的字母mkdir {a..e}
案例
mkdir {alex,pyyu,mjj} 创建三个文件夹,逗号隔开
mkdir alex{1..5} 创建连续的目录
mkdir cunzhang longting 创建少量连续目录
创建文件或修改文件时间戳
用法:touch [选项]... 文件...
将每个文件的访问时间和修改时间改为当前时间。
不存在的文件将会被创建为空文件,除非使用-c 或-h 选项。
touch {连续数字或字母} 创建多个文件序列
touch {1..10}
touch {a..z}
-c, --no-create 不创建任何文件
-t STAMP 使用[[CC]YY]MMDDhhmm[.ss] 格式的时间替代当前时间
-r, --reference=文件 使用指定文件的时间属性替代当前文件时间
案例
修改文件时间
touch -t 06010808 alex1 #修改alex1文件的时间是 6月1号8点8分
touch -r alex1 alex2 #把alex2的时间改成alex1一样
复制命令
windows复制
可以说是相当简单了
ctrl + c 复制
ctrl + v 黏贴
linux复制
用法:cp [选项]... [-T] 源文件 目标文件
或:cp [选项]... 源文件... 目录
或:cp [选项]... -t 目录 源文件...
将源文件复制至目标文件,或将多个源文件复制至目标目录。
-r 递归式复制目录,即复制目录下的所有层级的子目录及文件 -p 复制的时候 保持属性不变
-d 复制的时候保持软连接(快捷方式)
-a 等于-pdr
-p 等于--preserve=模式,所有权,时间戳,复制文件时保持源文件的权限、时间属性
-i, --interactive 覆盖前询问提示
案例
复制 > copy > cp
#移动xxx.py到/tmp目录下
cp xxx.py /tmp/
#移动xxx.py顺便改名为chaoge.py
cp xxx.py /tmp/chaoge.py
Linux下面很多命令,一般没有办法直接处理文件夹,因此需要加上(参数)
cp -r 递归,复制目录以及目录的子孙后代
cp -p 复制文件,同时保持文件属性不变 可以用stat
cp -a 相当于-pdr
#递归复制test文件夹,为test2
cp -r test test2
cp是个好命令,操作文件前,先备份
cp main.py main.py.bak
移动多个文件,放入文件夹c中
cp -r 文件1 文件2 文件夹a 文件夹c
案例2
[root@pylinux opt]# cp luffy_boy.zip luffy_boy.zip.bak2
cp:是否覆盖"luffy_boy.zip.bak2"? y
[root@pylinux opt]# cp luffy_boy.zip luffy_boy.zip.bak2 -i
cp:是否覆盖"luffy_boy.zip.bak2"? y
cp确认是否覆盖是-i参数作用,默认alias因为添加了别名
[root@pylinux opt]# alias
alias cp='cp -i'
[root@pylinux opt]# cp luffyCity/ luffyCity2 #必须添加-r参数才可以复制递归目录
cp: omitting directory 'luffyCity/'
[root@pylinux opt]#
[root@pylinux opt]#
[root@pylinux opt]#
[root@pylinux opt]# cp -r luffyCity/ luffyCity2
[root@pylinux opt]#
[root@pylinux opt]#
[root@pylinux opt]# ls
luffyCity luffyCity2
取消cp别名的方式
使用命令绝对路径
命令开头用反斜线 \
取消cp命令别名
写入环境变量配置文件
1.
[root@pylinux opt]# which cp
alias cp='cp -i'
/usr/bin/cp
[root@pylinux opt]# /usr/bin/cp luffy_boy.zip luffy_boy.zip.bak
2.
[root@pylinux opt]# \cp luffy_boy.zip luffy_boy.zip.bak
3.
[root@pylinux opt]# unalias cp
[root@pylinux opt]#
[root@pylinux opt]# cp luffy_boy.zip luffy_boy.zip.bak
4.
[root@pylinux opt]# vim ~/.bashrc #可以注释掉如下配置
alias rm='rm -i'
#alias cp='cp -i'
alias mv='mv -i'
快速备份配置文件
mv命令就是move的缩写,作用是移动或是重命名文件
用法:mv [选项]... [-T] 源文件 目标文件
或:mv [选项]... 源文件... 目录
或:mv [选项]... -t 目录 源文件...
将源文件重命名为目标文件,或将源文件移动至指定目录。
-f, --force 覆盖前不询问
-i, --interactive 覆盖前询问
-n, --no-clobber 不覆盖已存在文件如果您指定了-i、-f、-n 中的多个,仅最后一个生效。
-t, --target-directory=DIRECTORY 将所有参数指定的源文件或目录移动至 指定目录
-u, --update 只在源文件文件比目标文件新,或目标文件不存在时才进行移动
mv移动|重命名
mv案例
移动(搬家)命令 > move > mv
1.给文件重命名
mv abc abc.py
2.如果目标文件存在,-i参数则提示是否覆盖
mv test1.txt test2.txt
3.使用反斜杠命令屏蔽别名
\mv kunkun wuyifan
4.取消别名
5.移动单个文件
mv file1.txt dir/
6.移动多个文件
mv file1.txt file2.txt dir/
7.通配符移动多个文件
mv dir/file* ../
Linux在使用rm(删除)、cp(覆盖)、mv(搬家)等命令的时候,必须非常小心,因为这些命令都是“炸弹”,想必大家都听过“删库到跑路”,一言不合“rm -rf /”,假如你真的这么做了,那么。。。上帝保佑你
用法:rm [选项]... 文件...
删除 (unlink) 文件。
rm命令就是remove的含义,删除一个或者多个文件,这是Linux系统重要命令
-f, --force 强制删除。忽略不存在的文件,不提示确认
-i 在删除前需要确认
-I 在删除超过三个文件或者递归删除前要求确认。
-d, --dir 删除空目录
-r, -R, --recursive 递归删除目录及其内容
-v, --verbose 详细显示进行的步骤
--help 显示此帮助信息并退出
--version 显示版本信息并退出
案例
1.删除普通文件,需要确认提示,默认添加了-i参数
rm file1.txt
2.强制删除文件,不提示
rm -f file2.txt
3.递归删除文件夹
[root@pylinux tmp]# rm -r heh/
rm:是否进入目录"heh/"? y
rm:是否删除普通空文件 "heh/kuanmian2"?y
rm:是否删除普通空文件 "heh/kuanmian"?y
rm:是否删除目录 "heh/"?y
炸弹命令
务必看清楚敲打的命令,是否正确、不得有空格
务必看清楚敲打的命令,是否正确、不得有空格
务必看清楚敲打的命令,是否正确、不得有空格
1.强制删除且不让用户确认
rm -rf 文件夹
2.强制删除且显示过程
[root@pylinux tmp]# rm -rfv ./*
已删除"./456.txt"
已删除目录:"./q/w/e/r/t/yt"
已删除目录:"./q/w/e/r/t"
已删除目录:"./q/w/e/r"
已删除目录:"./q/w/e"
已删除目录:"./q/w"
已删除目录:"./q"
注意文件恢复
rm命令删除文件后可以通过如ext3grep工具恢复数据,若是想要粉碎文件,还有其他方式
man帮助命令
当你不知道linux命令如何使用的时候,使用man命令帮助你
语法
man 命令
如:
man ls
进入man帮助文档后,按下q退出
使用--help参数
语法:
命令 --help
帮助命令的精简版
如 ls --help
help命令获取帮助
语法:
help 命令
只针对bash内置命令
info命令获取帮助
语法:
info 命令
从互联网中获取
互联网有很多在线linux中文文档网站
shutdown重启或者关机
[root@pylinux ~]#shutdown --help
shutdown [OPTIONS...] [TIME] [WALL...]
Shut down the system.
重启
语法:
shutdown -r参数 -r --reboot Reboot the machine
shutdown -r 10 #十分钟后重启
shutdown -r 0 #立刻重启
shutdown -r now #立刻重启
关机
语法:
shutdown -h --halt 停止的含义
shutdown -h 10 #十分钟后关机
shutdown -h 0
shutdown -h now #立即关机
halt,poweroff,reboot命令关机与重启
reboot 重启
poweroff
halt 关机
关机、重启、注销命令列表
命令
说明
shutdown -h now
立刻关机,企业用法
shutdown -h 1
1分钟后关机,也可以写时间如 11:30
halt
立刻关闭系统,需手工切断电源
init 0
切换运行级别为0,0表示关机
poweroff
立刻关闭系统,且关闭电源
重启
reboot
立刻重启机器,企业用法
Shutdown -r now
立刻重启,企业用法
shutdown -r 1
一分钟后重启
Init 6
切换运行级别为6,此级别是重启
注销命令
logout
注销退出当前用户
exit
注销退出当前用户,快捷键ctrl + d
ctrl + c cancel取消当前操作
ctrl + l 清空屏幕内容
ctrl + d 退出当前用户
ctrl + a 光标移到行首
ctrl + e 光标移到行尾
ctrl + u 删除光标到行首的内容
同学们应该都会配置windows下的环境变量(PATH),都知道系统会按照PATH的设定,去每个PATH定义的目录下搜索可执行文件。
那么如何查看Linux下的PATH环境变量呢?
执行命令:
echo $PATH
echo命令是有打印的意思
$符号后面跟上PATH,表示输出PATH的变量
PATH(一定是大写的)这个变量是由一堆目录组成,分隔符是":"号,而不同于windows的";"号。
Linux中非常重要的概念--路径,路径用来定位如何找到某个文件。
这里浩哥先讲个例子,到底什么是相对路径,绝对路径
比如一个老外,要来老男孩教育学习python,但是他找不到地点,因此向你问路,你可以告诉他:
1.先坐飞机来中国北京,从北京机场坐地铁到沙河地铁站,然后走路800米到沙河汇德商厦,上四楼,找到浩哥,结束寻路。
2. 浩哥就在汇德商厦403办公室,武佩奇后面坐着呢!!!
Linux下特别注意文件名/路径的写法,可以将所谓的路径(path)定义为绝对路径(absolute)和相对路径(relative)。这两种文件名/路径的写法依据是这样的:
因此你必须了解,相对路径是:以你当前所在路径的相对路径来表示的。
例如你现在在/home 这个目录下,如要进入/var/log这个路径,如何写呢?
结果如图:
因为你在/home底下,因此你要回到上一层(../)之后,才能继续前往/var,特别注意:
手机扫一扫
移动阅读更方便
你可能感兴趣的文章