1,Linux基本命令行的组成结构
2,Linux系统命令操作格式
命令 | 空格 | 参数 | 空格 | 需要处理的内容 |
rm | | -rf | | /tmp/* |
ls | | -la | | /home |
- 一般情况下(参数)是可选的,一些情况下(文件的路径)也是可选的
- 参数 > 同一个命令,跟上不同的参数执行不同的功能,执行Linux命令,添加参数的目的是让命令更加贴近实际工作的需要,Linux命令,参数之间,普遍应该用一个 或多个空格分割
3,创建一个目录/xuexue
- mkdir xuexue 在root目录下创建xuexue文件夹
- mkdir /xuexue 在根目录下创建xuexue文件夹
- mkdir -p a/b c/d 递归创建文件夹
- mkdir test{a,b,c,d} 递归创建四个目录
- mkdir -p a/b/c/d/ 递归创建文件夹
4,创建文件或者修改文件时间戳(文件属性)
- 修改文件的更改时间,很多黑客就会在恶意修改文件之后再修改之前的时间
- ls -l 查看所有文件夹
- echo "xuexue" >> python.py 表示把xuexue这个字符串写到python.py中
5,stat命令(显示文件或文件系统的状态):
- 用法: stat [参数] 文件
- 参数列表:
- -L, --dereference 跟随连接
- -f. --file-system 显示文件系统状态而非文件状态
- -c --format-格式 使用指定输出格式代替默认值,每用一次指定格式换一新行
- --printf=格式 类似 --format,但是会解释反斜杠转义符,不使用换行作输出结尾,如果您仍希望 使用换行,可以在格式中加入"\n"
- --help 显示此帮助信息并退出
- --version 显示版本信息并退出
- 格式化输出参数:
- %a 八进制权限
- %A 用可读性较好的方式输出权限
- 显示文件的权限
- stat -c %a python.py
- stat -c %A python.py
6,vim:所有的Unix Like系统都会内建vi编辑器,其他的文书编辑器则不一定会存在
但是目前我们使用比较多的是vim编辑器
vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,更方便程序的设计
- vi vim:使用vi打开python.py默认是命令模式,需要输入a/i进入编辑模式,然后输入文本"Life is short,i use python"
- 按下esc键,回到命令模式
- 输入:wq!, 强制保存退出
- w write 写入
- q quit 退出
- ! 强制
- 或者:x 保存退出
- :q 不保存退出
- :q! 不保存强制退出
7,查看文件内容:cat命令用于查看纯文本内容(常用于内容比较少)
- cat -n python.py 查看文件显示行号
- cat python.py 直接查看文件内容
- 在每一行的结尾加上$符
- cat -E python.py
- 追加文字到文件中
- cat >> python.py << EOF
- 世情薄,人情恶,雨送黄昏花易落,
- 晓风干,泪痕残,欲笺心事,独语斜阑,
- 难,难,难!
- EOF
8,more命令
- more命令用于查看内容较多的文本,列如要看一个很长的配置文件,cat查看内容屏幕会快速翻滚到结尾
- more命令查看文本会以百分比形式告知已经看到多少,使用回车键向下读取内容
- more/etc/passwd
- 按下空格键space是翻页
- 按下b键上一页
- 回车键向下读取内容
9,Linux的快捷键
- tab键, 用于自动补全命令/文件名/目录名
- ctrl + l: 清理终端显示
- clear/cls:清理终端显示
- ctrl +c: 终止当前操作
10,echo命令:
- echo命令用于在终端输出字符串或变量提取后的值,格式"echo[字符串|$变量]"
- # 默认把内容显示到终端
- echo "帅爆太阳的男人",
- echo "帅爆太阳的男人" > python.py
11,特殊符号
- 输入输出,重新定向
- >> 追加重定向, 把文字追加到文件的结尾
- > 重新定向符号,清空原文件所有内容,然后把文字覆盖到文件末尾
- < 输入重定向
- << 将输入结果输入重定向
- eg:<< 和>> 一起用:如下
- 通配符: ls -l /etc/us*
12,赋值(拷贝的命令)
- cp xxx.py /tmp目录下
- 移动xxx.py文件到/tmp目录下
- cp xxx.py /tmp/yyy.py
- 移动xxx.py目录,并重命名xxx.py为yyy.py
- Linux下面很多命令,一般没有办法直接出处理文件夹,因此需要加上参数
- cp -r 递归,复制目录以及目录的子孙后代
- cp -p复制文件,同时保持文件属性不变, 可以用stat
- cp -a相当于 -pdr
- cp -r test test2
- 操作命令前,先cp复制一份
- cp main.py main.py.bak
13,移动命令
- mv /home
14,删除命令
- 删除/ --->remove/ ---->rm
- 参数: -i 需要删除确认
- 参数: -f 强制删除
- 参数: -r 递归删除目录和内容
15,查找命令
格式:find 在哪里(目录) 什么类型(文件类型) 叫什么名字(文件名)
- 参数: -name 按照文件名查找文件 -type查找某一类文件列如
- b -块级设备文件
- d -目录
- c -字符串设备名称
- p -管道文件
- l -符号链接文件
- s -socket文件
- # 表示找出"xuexue".txt文件
- find -type f -name "xuexue".txt
- # 找出所有以.txt结尾的文件
- find -type f -name "*.txt"
- # 找到当前目录下所有名字以host开头的文件
- find -name "host*"
- # 找到当前目录名为settings.py文件
- find -name "settings.py"
16,管道命令
Linux提供的管道符"|"是将两条命令隔开,管道符左边命令的输出会作为管道符右边命令的输入,常见用法:
- # 检查python程序是否启动
- ps -ef | grep "python"
- # 找到test目录下的所有.txt文件
- ls test|grep ".txt"
- # 检查nginx的端口是否存活
- netstat -tunlp |grep nginx
命令格式
grep:(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.
- 语法:grep [参数] [--color=auto] [字符串] filename
- 参数详解:
- -i:忽略大小写
- -n: 输出行号
- -v: 反向选择
- --color = auto :给关键部分添加颜色
- grep "我要找什么" ./test/ python.py
- # 排除 -v,排除我要找的东西
- grep -v "我要找什么" ./test/ python.txt
16.1,head,tail命令
- head显示文件前几行,默认前10行
- tail显示文件后几行,默认后10行
- # 查看 前 2行
- head -2 /test/python.txt
- #查看后2行
- tail -2 /test/python.txt
- 持续刷新显示
- tail -f xx.log
- #显示文件10-30行
- head -30 /test/python.txt |tail -21
17,别名alias命令
Linux在使用rm(删除),cp(覆盖),mv(搬家)等命令的时候,必须非常小心,因为这些命令都是"炸弹",删库跑路,就是这么来的
- 查看系统别名的命令:alias
- 默认别名:
- alias cp="cp -i"
- alias egrep="egrep --color=auto"
- alias fgrep="fgrep --color=auto"
- alias grep="grep --color=auto"
- alias l.="ls -d .* --color=auto"
- alias ll="ls -l --color=auto"
- alias ls="ls --color=auto"
- alias mv="mv -i"
- alias rm="rm -i"
- alias which="alias | /usr/bin/which --tty-only --read-alias --show-dot --show-title"
- 别名的作用:我们在Linux中使用cp时候相当于执行了cp -i
- -i: 删除已有文件或目录之前先询问用户
- # 别名用比较危险的操作,防止犯错
18,为rm设置别名
- 让系统显示do not use rm
- echo do not use rm
- # 设置rm别名
- alias rm = "echo do not use rm"
- # 设置别名永远生效,写入到etc/prodile(针对登录用户的客户,设置环境变量)
- vim /etc/profile # 编辑文件
- G 快速到达最后一行
- O 当前行下一行,创建一个新行,进入编辑模式
- source /etc/profile# 读取文件,合同生效
- 取消别名
- unalias rm
19,which命令
which命令用于查找并显示给命令的绝对路径,环境变量PATH中保存了命令时需要遍历的目录.wgich指令会在环境变量$PATH设置的目录里查找符合条件的文件
也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行到那一位置的命令
which pwd
which python
查看到的都是绝对路径下的命令的位置
20,scp命令
Linux scp命令用于Linux之间复制文件和目录
scp 是 source copy的缩写,scp是linux系统下基于ssh登录进行安全的远程文件拷贝命令
- 语法 :scp (可选参数)本地原文件 远程文件标记
- 参数:
- -r : 递归复制这个目录
- -v : 详细方式输出
- -q : 不显示出书进度条
- -c :允许压缩
20.1,文件的传输
- 传输本地文件到远程地址
- scp 本地文件 远程用户@远程ip: 远程文件夹/
- scp ./test/xuexue.txt root@192.168.21.8:/root/practice/
- scp 本地文件 远程用户名@远程ip:远程文件夹/远程文件名
- scp test/python.txt root@192.168.21.8:/practice/xuexue_python.txt
- # 复制远程文件到本地
- scp root@192.168..21.8:/root/practice/python.py test/python.py
- scp -r root@192.168.21.8:/test/python.py
- 这个先得创建好python.py文件去接收
21,du命令
Linux中du命令显示目录或文件的大小
du会显示指定目录或文件所占用的磁盘大小
- 用法:du (参数) (文件或目录)
- -s: 显示总计
- -h以k,m,g为单位显示,可读性强
- # 显示目录或文件所占空间,什么都不跟,代表显示当前目录所有文件大小
- du
- # 显示/home的总大小
- du -sh /home
22,top命令:top命令用于动态地进行监视活动与系统负载等信息
- 图片分析
- 第一行(uptime)
- 系统时间 主机运行时间 用户连接数(who) 系统1,5,15分钟的平均负载
- 第二行 进程信息
- 进程总数, 正在运行的进程数 睡眠的进程数 停止得进程数 僵尸进程数
- 第三行:cpu信息
- 1.5 us: 用户空间所占cpu百分比
- 0.9 sy: 内核空间占用CPU百分比
- 0.0 ni: 用户进程空间内改变过优先级的进程占用cpu百分比
- 97.5 id:空闲cpu百分比
- 0.2 wa:等待输入输出的cpu时间百分比
- 0.0 hi:硬件CPU中断占百分比
- 0.0 si:软中断占用百分比
- 0.0 st: 虚拟机占用百分比
- 第四行内存信息
- 8053444 total: 物理内存总量
- 7779224 used: 已使用的内存总量
- 274220 free: 空闲的内存总量
- 359212 buffers: 用做内核缓存的内存量
- 第五行 :swap信息
- 8265724 total:交换分区总量
- 33840 used: 已使用的交换分区总量
- 8231884 free :空闲交换区总量
- 7358088 cached Mem: 缓冲的交换区总量,内存中的内容被换出到交换区,然后使用过的交换的交换区没有被覆盖,交换区的这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时,可不比再对交换区写入.
23,chattr命令
给文件加锁,只能写入数据,无法删除
- chattr +a python.txt # 加锁
- chattr -a python.txt # 解锁
24,lasttr命令
查看文件隐藏属性
lsattr test/python.txt
25,Linux时间同步
Linux的date命令可以显示当前时间或者设置系统时间
查看当前时间
- 格式化输出时间
- -d --date=string 显示指定的时间,而不是当前时间
- 以 年-月-日显示当前时间
- date + "%Y-%m-%d"
- 以年-月-日 时分秒 显示当前时间
- date +"%Y-%m-%d %T"
- 在Linux下系统时间和硬件时间不会自动同步,在Linux运行过程中,系统时间和硬件时间以异步的方式运行,互不干扰.硬件时间的运行,是靠Bios电池来运行,而系统时间是CPU tick来维持的
- 在系统开机的时候,会从Bios中获取硬件时间,设置系统时间
硬件始终的查看
- hwclock
- 同步系统时间和硬件时间,可以用hwclock命令
- # 以系统时间为基准,修改硬件时间
- # 以硬件时间为基准,修改系统时间
26,NTP时间服务器
时间对于人类来说是必不可少的,时间就是金钱,因此对于服务器时间额度把控非常重要,如果系统的时间不对,那么对于每一个文件的擦欧洲哦都是错误的
关于时间服务器的配置文件,有如下几种
- /bin/date 用于Linux时间(软件时钟)的修改与显示的指令
- /sbin/hwclock 用于BISO时钟(硬件时间)的修改与显示的命令,这是一个root才执行的命令,因为Linux系统上面BISO时间与Linux系统时间时分开的,所以使用date这个指令调整了时间之后,还需要使用hwclock才能将修改后的时间写入BISO当中!
- /usr/sbin/ntpd 主要提供NTP服务的程序,配置文件为/etc/ntp.conf
- /usr/sbin/ntpdate :用于客户端的时间的矫正.如果你没有要启用NTP而仅想用NTP Client功能,只会用到这个指令就好了
由于我们只需要用作客户端更新时间
ntpdate -u ntp.aliyun,com
27,wget命令
wget命令用于在终端下载网络文件
参数是wget(参数)下载地址
wget -r -p http:// www.xiaohua100.com # 递归下载所有资源
28,开关机命令
reboot命令用于重启机器
poweroff用于关闭系统