Linux命令行的组成结构

Linux系统命令操作语法格式

命令 空格 参数 空格 【文件或路径】需要处理的内容
rm   -rf   /tmp/*
ls    -la   /home
结婚   -没车没房   女的就行
结婚   -有车有房   白富美

1.一般情况下,【参数】是可选的,一些情况下【文件或路径】也是可选的

2.参数 > 同一个命令,跟上不同的参数执行不同的功能

执行linux命令,添加参数的目的是让命令更加贴切实际工作的需要!

linux命令,参数之间,普遍应该用一个或多个空格分割!

创建一个目录  /newfile

make directory > mk dir > mkdir
------------------------------- mkdir /newfile
------------------------------- cd / mkdir newfile

#递归创建a/b c/d
mkdir -p a/b c/d

#递归创建test/a,b,c,d四个目录
mkdir -p test/{a,b,c,d}

#递归创建文件夹a/b/c/d/e
mkdir -p a/b/c/d/e

查看目录 /newfile

#显示/newfile下的内容
ls /newfile

改变当前的目录/位置

cd /home
cd ~
cd -

打印当前工作目录

#打印当前工作目录
pwd 

创建文件或者修改文件时间戳(文件属性)

创建文本

修改文件的修改时间

#修改文件的更改时间,很多黑客就会在恶意修改文件之后再修改成之前的时间
ls -l
echo 'sb' >> xxx.py
touch -t'07101530' 1.txt

#触摸 touch xxx.py

stat命令

显示文件或文件系统的状态。
#用法 stat  [参数]  文件
参数列表:
-L, --dereference     跟随链接
  -f, --file-system     显示文件系统状态而非文件状态
  -c --format=格式      使用指定输出格式代替默认值,每用一次指定格式换一新行
      --printf=格式     类似 --format,但是会解释反斜杠转义符,不使用换行作
                                输出结尾。如果您仍希望使用换行,可以在格式中
                                加入"\n"
  -t, --terse           使用简洁格式输出
      --help            显示此帮助信息并退出
      --version         显示版本信息并退出
格式化输出参数:
  %a    八进制权限
  %A   用可读性较好的方式输出权限


#实例1
[root@master tmp]# stat 1.txt File: '1.txt' Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd00h/64768d Inode: 17348002 Links: 1 (权限)Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) (最近访问)Access: 2018-07-10 15:30:00.000000000 +0800 (最近更改)Modify: 2018-07-10 15:30:00.000000000 +0800 (最近改动)Change: 2018-11-07 15:38:36.400989868 +0800 Birth: -

#实例2,显示文件权限

[root@master tmp]# stat -c %a 1.txt
644
[root@master tmp]# stat -c %A 1.txt
-rw-r--r--

vim

所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。

但是目前我们使用比较多的是 vim 编辑器。

vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。

#方法,命令
vi
vim
使用vi打开oldboy.py,默认是命令模式,需要输入a/i进入编辑模式,然后输入文本"Life is short,i use python"
按下esc键,回到命令模式
输入  :wq!  强制保存退出
w write 写入
q quit 退出
! 强制 或者 :x 保存退出
------
:q 不保存退出
:q! 不保存强制退出

查看文件内容

cat命令用于查看纯文本文件(常用于内容较少的)

#查看文件,显示行号
cat -n xxx.py
#猫,查看文件
cat xxx.py

#在每一行的结尾加上$符
[root@master tmp]# cat -E 1.txt

#追加文字到文件
cat >>/tmp/oldboy.txt << EOF
唧唧复唧唧
木兰开飞机
开的什么机
波音747
EOF

more命令

1.more命令用于查看内容较多的文本,例如要看一个很长的配置文件,cat查看内容屏幕会快速翻滚到结尾。

2.more命令查看文本会以百分比形式告知已经看到了多少,使用回车键向下读取内容

more /etc/passwd
按下空格space是翻页
按下b键是上一页
回车键向下读取内容

Linux快捷键

1.tab键    用于自动补全命令/文件名/目录名
2.ctrl + l  清理终端显示
3.clear/cls 清理终端显示
4.ctrl + c 终止当前操作

echo命令

echo命令用于在终端输出字符串或变量提取后的值,格式是“echo 【字符串|$变量】”

#默认吧内容显示到终端上    
echo "超哥666"
echo "超哥666" > /tmp/chaoge.txt
echo $PATH #取出打印PATH的值

特殊符号

输入/输出 重定向符号
1.>> 追加重定向,把文字追加到文件的结尾 2.> 重定向符号,清空原文件所有内容,然后把文字覆盖到文件末尾
3.< 输入重定向
4.<< 将输入结果输入重定向
echo "oldboy-python666" > /tmp/oldboy.txt
echo "chaoge666" >> /tmp/oldboy.txt
cat >>/tmp/oldboy.txt << EOF
------------------------------------
我想把命令执行的结果信息,写入到文件中
ip addr > /tmp/network.txt #标准输出重定向 把命令执行结果信息,放入到文件中
3.通配符
ls -l /etc/us*

复制(拷贝)命令

复制 > 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

移动命令

移动(搬家)命令  > move > mv

cd /home
mv /home/shahe/newfile /tmp/chaoyang

文件/文件夹改名
mv x.log xx.log

删除命令

删除  > remove > rm
参数 -i 需要删除确认
   -f 强制删除
-r 递归删除目录和内容
cd /tmp rm hahaha.py #默认有提示删除,需要输入y rm -f hahaha.py #不需要提示,强制删除
#rm默认无法删除目录,需要跟上参数-r
rm -rf /tmp/hahaha/

--------
友情提醒:初学者使用rm命令,随时快照虚拟机

查找命令

#Linux里如何找到需要的文件 例如 app01.py
find 在哪里(目录) 什么类型(文件类型) 叫什么名字(文件名)
参数
-name 按照文件名查找文件
-type 查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
s - socket文件

find /tmp/ -type f  -name "app01.py"

#找出/tmp所有以 .txt 结尾的文件
find /tmp/ -type f -name "*.txt"

#找到/etc下所有名字以host开头的文件
find /etc -name 'host*'

#找到/opt上一个名为settings.py
find /opt -name 'settings.py'