Shell基本命令

Linux命令行的组成结构

[root@oldboy_python ~]# 
[root@oldboy_python ~]# 
[root@oldboy_python ~]# 
[root@oldboy_python ~]# 
[root@oldboy_python ~]# 

Linux系统命令操作语法格式

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

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

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

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

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

创建一个目录  /oldboy

windows下:

鼠标右击 > 新建文件夹

Linux下:

复制代码
make directory > mk dir > mkdir
------------------------------- mkdir /oldboy
------------------------------- cd / mkdir oldboy

#递归创建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
复制代码

查看目录 /oldboy

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

改变当前的目录/位置

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"
#超哥平时比较低调,不想让别人知道他666,怎么办?要么把“超哥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*
复制代码

复制(拷贝)命令

windows复制

可以说是相当简单了
ctrl + c 复制
ctrl + v 黏贴

Linux

复制代码
复制 > 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/oldboy /tmp/chaoyang

文件/文件夹改名
mv x.log xx.log
复制代码

 删除命令

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

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

查找命令

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

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

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

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

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

管道命令 

复制代码
Linux提供的管道符“|”讲两条命令隔开,管道符左边命令的输出会作为管道符右边命令的输入。
常见用法:
#检查python程序是否启动 ps -ef|grep "python"

#找到/tmp目录下所有txt文件
ls /tmp|grep '.txt'

#检查nginx的端口是否存活
netstat -tunlp |grep nginx
复制代码

命令格式: 命令A | 命令B

grep

(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

复制代码
语法:
grep [参数] [--color=auto] [字符串] filename
参数详解:
-i : 忽略大小写
-n : 输出行号
-v : 反向选择
--color = auto : 给关键词部分添加颜色

grep "我要找什么" /tmp/oldboy.txt #排除 -v,排除我要找的东西 grep -v "我要找什么 /tmp/oldboy.txt
复制代码

例题,找出/etc/passwd下root用户所在行,以及行号,显示颜色

cat /etc/passwd |grep '^root' --color=auto -n

找出/etc/passwd所有不允许登录的用户

grep /sbin/nologin /etc/passwd

找到/etc/passwd的所有与mysql有关行,行号

 

cat /etc/passwd |grep 'mysql' -n

head、tail命令

复制代码
head显示文件前几行,默认前10行
tail显示文件后几行,默认后10行
#查看前两行 head -2 /tmp/oldboy.txt #查看后两行 tail -2 /tmp/oldboy.txt
#持续刷新显示
tail -f xx.log

#显示文件10-30行
head -30 /tmp/oldboy.txt |tail -21
复制代码
sed

别名alias命令

Linux在使用rm(删除)、cp(覆盖)、mv(搬家)等命令的时候,必须非常小心,因为这些命令都是“炸弹”,想必大家都听过“删库到跑路”,一言不合“rm -rf /”,假如你真的这么做了,那么。。。上帝保佑你

复制代码
Linux如何提示你,在使用这些命令时候,提醒你小心呢?
#查看系统别名
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-tilde'

别名作用是:

我们在linux中使用cp时候相当于执行了cp -i
-i:删除已有文件或目录之前先询问用户;

#别名用比较危险的操作,防止你犯错 

复制代码

为rm设置别名

复制代码
#让系统显示 do not use rm
echo do not use rm
#设置rm别名
alias rm='echo do not use rm'
#设置别名永久生效,写入到/etc/profile(针对登录用户的合同,设置环境变量)
vim /etc/profile #编辑文件
G  快速到达最后一行
o  当前行下一行,创建一个新行,进入编辑模式
source /etc/profile #读取文件(合同生效)
---------------
#取消别名
unalias rm
复制代码

which命令


which命令用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。
which指令会在环境变量$PATH设置的目录里查找符合条件的文件。
也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
which pwd
which python

实例

which python       #python命令在哪
/usr/bin/python    #命令文件绝对路径

scp命令

Linux scp命令用于Linux之间复制文件和目录。

scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。

语法
scp 【可选参数】 本地源文件 远程文件标记

参数

-r :递归复制整个目录
-v:详细方式输出
-q:不显示传输进度条
-C:允许压缩

实例

复制代码
#传输本地文件到远程地址
scp 本地文件  远程用户名@远程ip:远程文件夹/
scp 本地文件  远程用户名@远程ip:远程文件夹/远程文件名

scp /tmp/chaoge.py root@192.168.1.155:/home/
scp /tmp/chaoge.py root@192.168.1.155:/home/chaoge_python.py

scp -r  本地文件夹  远程用户名@远程ip:远程文件夹/
scp -r /tmp/oldboy root@192.168.1.155:/home/oldboy

#复制远程文件到本地
scp root@192.168.1.155:/home/oldboy.txt /tmp/oldboy.txt
scp -r root@192.168.1.155:/home/oldboy /home/
复制代码

du命令

Linux du命令用于显示目录或文件的大小。

du会显示指定的目录或文件所占用的磁盘空间。

用法
du 【参数】【文件或目录】
-s 显示总计
-h 以k,M,G为单位显示,可读性强

实例

复制代码
显示目录或文件所占空间
#什么都不跟,代表显示当前目录所有文件大小
du   

#显示/home的总大小
du -sh /home
复制代码

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:虚拟机占用百分比

第四行:内存信息(与第五行的信息类似与free命令)

  • 8053444 total:物理内存总量
  • 7779224 used:已使用的内存总量
  • 274220 free:空闲的内存总量(free+used=total)
  • 359212 buffers:用作内核缓存的内存量
第五行:swap信息
8265724 total:交换分区总量
33840 used:已使用的交换分区总量
8231884 free:空闲交换区总量
4358088 cached Mem:缓冲的交换区总量,内存中的内容被换出到交换区,然后又被换入到内存,但是使用过的交换区没有被覆盖,交换区的这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。
复制代码

chattr命令

给文件加锁,只能写入数据,无法删除文件

chattr +a test.py
chattr -a test.py

lsattr命令

查看文件隐藏属性

lsattr test.py

遇见的问题:

问题1:
yudanL:~ yuchao$ cd~ -bash: cd~: command not found

问题2:
yudanL:~ yuchao$ cd /oldboy -bash: cd: /oldboy: No such file or directory

linux时间同步

linux的date命令可以显示当前时间或者设置系统时间

查看当前时间

格式化输出

-d    --date=string    显示指定的时间,而不是当前时间
以年-月-日显示当前时间
date +"%Y-%m-%d"
以年-月-日 时分秒 显示当前时间
date +"%Y-%m-%d %T"
在Linux下系统时间和硬件时间不会自动同步,在Linux运行过程中,系统时间和硬件时间以异步的方式运行,互不干扰。
硬件时间的运行,是靠Bios电池来运行,而系统时间是用CPU tick来维持的。
在系统开机时候,会从Bios中获取硬件时间,设置为系统时间

硬件始终的查看

[root@oldboy_python ~ 10:19:04]#hwclock
2018年08月27日 星期一 10时23分03秒  -0.528004 秒

同步系统时间和硬件时间,可以用hwclock命令

//以系统时间为基准,修改硬件时间
[root@oldboy_python ~ 10:29:07]#hwclock -w

//以硬件时间为基准,修改系统时间
[root@oldboy_python ~ 10:29:21]#hwclock -s

日历命令

cal命令

calendar查看日志的意思 -y 查看一年的日历

复制代码
yugoMBP:~ yuchao$ cal
     March 2019
Su Mo Tu We Th Fr Sa
                1  2
 3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
复制代码

Ntp时间服务器

时间对于人类来说是密不可少的,时间就是金钱。因此对于服务器时间的把控非常重要,如果系统的时间不对,那么对于每一个文件的操作都是错误的。

关于时间服务器的配置文件,有如下几种

复制代码
/bin/date     用于 Linux 时间 (软件时钟) 的修改与显示的指令;
/sbin/hwclock  用于 BIOS 时钟 (硬件时钟) 的修改与显示的指令。 这是一个 root 才能执行的指令,因为 Linux 系统上面 BIOS 时间与 Linux 系统时间是分开的,所以使用 date 这个指令调整了时间之后,还需要使用 hwclock 才能将修改过后的时间写入 BIOS 当中!
/usr/sbin/ntpd: 主要提供 NTP 服务的程序啰!配置文件为 /etc/ntp.conf
/usr/sbin/ntpdate: 用于客户端的时间校正,如果你没有要启用 NTP 而仅想要使用 NTP Client 功能的话,那么只会用到这个指令而已啦!
复制代码

由于我们只需要用作客户端更新时间

ntpdate -u ntp.aliyun.com

wget命令

wget命令用于在终端下载网络文件
参数是 wget [参数] 下载地址
wget -r -p http://www.luffycity.com#递归下载路飞所有资源,保存到www.luffycity.com文件中

开关机命令

reboot命令用于重启机器
poweroff用于关闭系统

小练习

1.查看linux的path变量
  echo $PATH
  $PATH $取出变量的值

2.简述linux的文档目录结构
  首先,Linux有一个根“/”文件系统,所有的目录都是由根目录衍生出来
  每一个根目录不仅仅可以使用本地的文件系统,也可以使用网络上的文件系统,可以使用NFS服务器挂在特定目录
  每一个文件在目录树的文件名,包含完整的路径都是独一无二的

 


3.递归创建文件夹/tmp/oldboy/python/{alex,wusir,nvshen,xiaofeng}

  mkdir -p /tmp/oldboy/python/{alex,wusir,nvshen,xiaofeng}

 

4.显示/tmp/下所有内容 详细信息,且输出文件大小
  ls -a /tep

  ls -lah /tmp
  ls -l -a -h /tmp
  #linux的隐藏文件, 以.开头的就是,默认看不到,需要 ls -a 参数 all的显示所有




5.简述 / ~ - 的含义
  /:在开头表示根目录,在目录内部表示层级分隔符
  ~:表示当前登录用户的家目录

  #root cd ~ ,进入 /root
  #adu cd ~ ,/home/adu
  -:表示上次工作目录

  # /tmp
  # cd /opt
  #cd - ,又回到 /tmp

6.请简述你如何使用vi命令
  vi可以执行输出、删除、查找、替换、块操作等众多文本操作
  vi 编辑器只是一个文本编辑程序,它没有菜单,只有命令,且命令繁多
  vi的三种模式:
  1) 命令行模式:进入 vi 编辑器后的默认模式,按下Esc键即可进入命令模式。
  2) 文本输入模式:插入命令i、附加命令a、打开命令o、修改命令c、取代命令r或替换命令s都可以进入文本输入模式
  3) 末行模式,也称 ex 转义模式:在命令模式下,用户按:键即可进入末行模式

7.查看/etc/passwd的内容并且打印行号
  cat -n /etc/passwd #-n显示行号


8.查看文本有哪些命令?
  cat ,tac,more,nl,

 

9.linux xshell常用快捷键?

  ctrl + l 清屏 clear
  ctrl + d 快速推出登陆 等于 logout
  ctrl + shift + r 快速登陆

  #登陆云服务器的命令

  ssh 用户名@服务器ip地址


10.如何用echo清空一个文件?
  echo "">文件名
  > 文件名 #这样清空最严格


11.复制/tmp/下所有内容到/home,在修改文件前,先拷贝一份,防止内容被破坏

  #cp
  #递归拷贝文件夹及其子目录内容
  [root@localhost tmp]# cp -R ./* /opt/tmp_back/


12.重命名test.py为my.py
  mv test.py my.py

13.强制删除/tmp下内容
  rm -rf /tmp/*

14.找到服务器上的settings.py
  find / -name settings.py


15.找到/etc下的网卡配置文件,提示网卡配置文件名是ifc开头

  find /etc -name "ifc*"

15.请先 拷贝一份文件
  cp /etc/passwd /tmp/
  /tmp/passwd

16.过滤出/tmp/passwd下有关root的信息

  grep -i "root" /tmp/passwd


17.过滤出/tmp/passwd下除了/sbin/nologin的信息,且打印行号

  grep -v -n -i "/sbin/nologin" /tmp/passwd

18.查看/tmp/passwd前25行
  head -n 25 日志文件


19.查看/tmp /passwd后3行
  tail -3 /tmp /passwd


20.不间断打印/var/log/py.log的信息  
  tail -f /var/log/py.log

23.配置rm别名为“禁止你用rm,谢谢”,然后取消别名
  alias rm="禁止你用rm,谢谢"
  alias rm="rm -i" #改回去
  unalias #取消别名

 

 

24.将服务器1的/tmp/my.py远程传输到服务器2的/opt/目录下

  【我当前在服务器1】
    scp /tmp/my.py root@服务器2ip:/opt/

  【在服务器2】

    scp root@服务器1ip:/tmp/my.py /opt/

 

 

25.将服务器2的/opt/test.py拷贝到服务器1的/home目录下

  【在服务器2】

    scp /opt/test.py root@服务器1ip:/home/

 

26.统计/var/log/文件夹大小

  du -sh /var/log/
  -s是对统计的结果,汇总
  -h显示 kb gb mb tb 单位

 

 

27.简述top的常见参数
  top 可以显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等
  -b 批处理
  -c 显示完整的治命令
  -I 忽略失效过程
  -s 保密模式
  -S 累积模式

  -d<时间> 设置间隔时间
  -u<用户名> 指定用户名
  -p<进程号> 指定进程
  -n<次数> 循环显示的次数

28.给settings.py加锁,禁止删除
  lsattr
  chattr
  http://linux.51yip.com/search/chattr

 

29.同步服务器时间到ntp.aliyun.com
  [root@dudu opt]# ntpdate -u ntp.aliyun.com


30.下载http://pythonav.cn/xiaobo.jpg图片
  wget http://pythonav.cn/xiaobo.jpg
  wget -r -p http://pythonav.cn


31.linux网络端口查看

  netstat -tunlp #显示机器所有的端口绑定信息


32.

  linux系统的用户管理

  root 超级用户 权利最大 想干嘛就干嘛 qq群主

  sudo命令 以群主的身份去执行命令 , 管理员

  adu 普通用户 ,权限很低

 

  linux系统用户管理的文件 /etc/passwd


  useradd 用户名#创建用户,会生成 /home/用户名家目录

  userdel 用户名 #删除用户
  -r
  -f

  uid 用户在系统中的身份id号
  gid 用户组的id号

  id命令 用于查看用户的号码信息

  id chunsheng


  #用户组 2000 (后端开发组)

  adu uid-1001 2000
  lironghao uid-1002 2000 

  
  #用户组2 2005 (运维开发组)

  chunsheng
uid-2500 2005
  passwd
用户名 #给用户修改密码


32.用户之间的切换
  su 命令

  su - 用户名 #su是切换用户的命令, - 是代表环境变量文件的完全切换

 

 

33.将你替换为管理员的命令(sudo)

  sudo 你想执行的命令 #默认以root身份执行命令


  1.要使用visudo命令,默认是打开一个/etc/sudoers文件 ,且有语法检测

  2.找到如下的行,添加你想让他使用sudo命令的用户

  ## Allow root to run any commands anywhere
  root ALL=(ALL) ALL
  cs ALL=(ALL) ALL

  3.此时可以使用sudo命令了

  linux文件的用户管理,主要有三个身份

  - user
  - group
  - others


  ls -l 文件

  - rw-r--r--. 1 root root 0 Oct 21 15:31 白龙驴.txt
  (属主)(属组)
  user的权利是: 可读可写
  group的权利 :只读
  其他人的权限:只读

  - rw- r-- r--

  - 文件的类型
  -是普通文本
  d 是文件夹

  rw- (属主)
  r-- (属组)
  r-- (其他人的权限 )


  r read可读
  w write可写
  x exec可执行 ,脚本
  - 无权限

  #对于文件的读写执行,什么意思
  r cat more less head
  w echo 追加写入 ,想要用vim可写的话,必须有r权限
  x 可以执行这个文件

 

  drwxr-xr-x. 2 root root 6 Oct 21 15:32 白衣少年

  d 文件夹的意思

  rwx(root,user的) r-x(root,group组的) r-x(其他人的)
  读写执行 可读,可执行 可读可执行

  #对于文件夹的读写执行

  r ls 查看
  w 在文件夹中创建内容
  x 可以cd 进入文件夹


  由于字母权限转化太麻烦,用数字权限转化,8进制权限
    r 4
    w 2
    x 1

  #修改文件的属主
    chown 用户名 文件 # 更改文件的新属主

  #修改文件的属组
    chgrp (change group)
    chgrp 用户组名 文件 #更改文件的新属组

  #将用户添加到用户组中(我们将春生,加入到bobo的组里面,就有了相应的权限)

    usermod -G 新的组名 你要操作的用户

    usermod -G bobo cs

34.软连接命令 ln(link)
  ln -s 源文件绝对路径 快捷方式绝对路径

35.linux的命令提示符 变量 ,修改 [root@dudu bin]#


  PS1
  echo $PS1

  更改命令提示符
  [root@s23_linux ~]# PS1='[\u@\h \w \t]\$'

36.打包,压缩命令
  tar命令
  功能参数
  -c 打包
  -x 解包
  -v 显示过程
  -f 指定tar包的名字 ,必须写在最后一个参数
  -z 调用gzip命令,压缩文件60%-80%的磁盘空间 ,解压也用-z参数
  

  #将/tmp下所有的内容打包,不节省磁盘空的命令
    tar -cvf alltmp.tar /tmp/*

  #解包的命令 alltmp.tar
    tar -xvf alltmp.tar

  #打包且压缩/tmp下所有内容命名为alltmp.tar.gz alltmp.tgz 且放到 /opt/目录下
    tar -czvf /opt/alltmp.tgz /tmp/*

  #解压缩
    tar -zxvf 压缩包的名字 你要解压到哪

37.一次性杀死多个进程

  pkill 进程的名字,可以杀死多个进程

 


 

 

1.linux基本命令

    修改主机名  
    普通用户执行需要有root的密码

    hostnamectl set-hostname  新的主机名

2.在线下载资源 wget命令,需要安装

  yum  install wget  -y  


3.linux和windows互传文件  ,需要安装 lrzsz 工具包 

  yum  install  lrzsz  -y  
    
    -   发送文件 sz命令
    -   接收文件   rz命令
    
     #实现拖拽文件功能的
        1.lrzsz工具包的作用
        2.xshell提供的功能 
        
        
4. 更强的 xftp  ,用于传输大文件 


5.用于分页显示大文本,用more和less命令

  more用于分页从上至下显示
  less 与more命令类似,但可以通过翻页键查看上下页的内容



6.查找磁盘上的文件 用find 


语法

  find  你想从哪找    参数  你要的是什么

  #想全盘搜索,django的settings.py文件 

  find   /*        -name  settings.py  

  # -type 参数  指定文件类型寻找

d 文件夹 
f  普通文件 


#找到当前机器所有和python有关的文件,文件夹 

find   /      -name "python"

[root@localhost tmp]# find   /    -type  f    -name "python*"    #找出磁盘上所有的以python开头的文件 
[root@localhost tmp]# 
[root@localhost tmp]# 
[root@localhost tmp]# find   /    -type  d    -name "python*"       ##找出磁盘上所有的以python开头的文件夹 

#管道符 二次过滤 
[root@localhost tmp]# netstat -tunlp   |  grep "22"


7.#linux查看进程的命令 

    ps -ef  #用于查看机器所有进程的信息  

    常和管道符过滤使用

    ps -ef |grep  python   

  或者 ps  aux参数和ps -ef效果一样,结果详细信息如下
  [root@dudu ~]# ps aux
  USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND


            • USER:该进程属于那个使用者账号的?

            • PID :该进程的进程ID号。

            • %CPU:该进程使用掉的 CPU 资源百分比;

            • %MEM:该进程所占用的物理内存百分比;

            • VSZ :该进程使用掉的虚拟内存量 (Kbytes)

            • RSS :该进程占用的固定的内存量 (Kbytes)

            • TTY :该进程是在那个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。

            • STAT:该程序目前的状态,主要的状态有:

               R :该程序目前正在运作,或者是可被运作;

               S :该程序目前正在睡眠当中 (可说是 idle 状态啦!),但可被某些讯号(signal) 唤醒。

               T :该程序目前正在侦测或者是停止了;

               Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态

            • START:该进程被触发启动的时间;

            • TIME :该进程实际使用 CPU 运作的时间。

            • COMMAND:该程序的实际指令是什么

8.杀死进程的命令

 
 
   kill命令 杀死进程  
 
   kill 进程id号
 
   kill -9  进程id  #强制杀死进程,危险命令 ,慎用
 
 
 
9.过滤命令
 
   #过滤出文本中你想要的内容 
  grep -i  -v  "li"  /etc/passwd  
  语法是

  grep  参数  你想要的内容  你要操作的文件 


    
    -i  忽略大小写 
    -v 翻转寻找的结果 
    
    
  #去掉注释行和空白行 
  grep  -v  "^#"  pwd.txt |   grep  -v "^$"




10.查看文件的前x行  后x行 

    head  文件名 #默认查看前10行
     
    head  -数字   #显示前x行  

    tail  文件  #默认看后10行 

    tail -数字  #默认看后x行 

    tail实时刷新文件内容 

    tail  -f   文件名 #  -f参数 ,刷新
    
    
11.别名功能 

  alias命令,直接输入,查看当前机器的别名


12.远程传输文件的命令

scp  语法是


    1.  把本地的文件,发送到远端服务器 
      scp  你想发送的内容  发到哪里 
      scp   /tmp/胖哥的床头故事.txt    root@192.168.13.33:/opt/   
      #发送当前文件夹所有文件和文件夹,到远程的服务器目录下
      scp -r  ./*   root@192.168.13.33:/opt/test/

    2.把远端服务器的资料,发送给自己
        【此时我呆在我自己的服务器上】
        scp  你想要的内容   你想要放到那 
      scp   root@192.168.13.33:/tmp/胖哥你好.txt     /tmp/ 
        

13.统计文件,文件夹大小的命令
    ls -lh  文件夹 #显示目录下所有文件详细信息以及大小   
    du -h  文件 #统计文件的大小
    du -sh  文件夹 #统计整个文件夹的合计大小 
    

 

定时任务

crontab (选项)(参数)
-e:编辑该用户的计时器设置;
-l:列出该用户的计时器设置;
-r:删除该用户的计时器设置;
-u<用户名称>:指定要设定计时器的用户名称。

1.编辑定时任务文件,

crontab  -e   

2.写入你的规则

3.保存退出即可 

4.crontab -l   列出你的定时任务


#每分钟执行一次命令

分  时   日 月  周  命令绝对路径 

*  *   *  *  *   /usr/bin/echo "linux真好玩 ,我可不信" >> /tmp/骗谁呢.txt




#每小时的3,15分种执行命令
分  时   日 月  周  命令绝对路径
3,15   *   *  *  *  命令绝对路径


#在上午8和11点的第3到15分钟拷贝/tmp下的内容到/opt/tmpback中 

分     时   日 月  周  命令绝对路径
3-15    8,11   *  *  *   /usr/bin/cp  -R  /tmp/*   /opt/tmpback/  


#每晚21:30执行

分     时   日 月  周  命令绝对路径

30     21    *   *  *  





#每周六、日的下午1:30执行命令
分     时   日  月   周  命令绝对路径

30    13     *   *    6,7   命令绝对路径  



#每周一到周五的凌晨1点整,清空/tmp目录的所有文件
分     时   日  月   周  命令绝对路径
 0      1    *   *    1-5   /usr/bin/rm -rf  /tmp/*  








#每晚的21:30重启nginx

分     时   日  月   周  命令绝对路径

30    21  *  *  *  /usr/bin/systemctl  restart  nginx  




#每月的1,10,22日的4:45重启nginx

分     时   日  月   周  命令绝对路径
45    4     1,10,22   *   *   /usr/bin/systemctl  restart  nginx 






#每个星期一的上午8点到11点的第3和15分钟执行命令


分     时   日  月   周  命令绝对路径


03,15   8-11  *  *  1    命令绝对路径




yum源配置

 
 1.软件包管理 
 
 linux的软件包格式是 rpm格式的
 
 mysql.rpm  
 
 redis.rpm 
 
 yum install  nginx  #依赖全部解决
 
 yum remove nginx  #自动删除nginx 以及所有依赖关系 
 

 
 linux的yum目录仓库绝对路径(第一层 /etc/yum.repos.d/)。只有放在第一层的repo文件,才会被识别为yum仓库
 
 
 
 
 
 1.配置yum源的步骤 ,打开阿里云镜像站 https://opsx.alibaba.com/mirror  
    #下载第一个yum仓库 
   wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    #下载第二个yum仓库 
   wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
 
 
 2.安装一个nginx试试
 
 yum install nginx  -y  
 
 3.启动nginx软件,通过yum安装的软件,都可以用systemctl 去管理 
 
 systemctl start nginx  
    
 4.关闭服务器的防火墙
 查看防火墙规则
 
 iptables -L  
 
 清空防火墙规则
 
 iptables -F  
 
 5.修改nginx的默认页面 ,默认页面是 192.168.13.88:80/index.html  
 
默认绝对路径是/usr/share/nginx/html/index.html

6.
10秒钟做一个dnf官网 








 
开发常用命令练习题:

配置好阿里云yum源
    生成yum缓存
    下载nginx,并且启动nginx服务,使用浏览器访问10.0.0.10:80  nginx服务

2.下载lrzsz工具,方便linux和windows互相传文件

3.如何手动启动网卡?

4.linux的超级用户是什么?如何查看用户身份信息?
root 
id  用户名  


5.简单描述linux的用户管理

user  gourp  other 
r   4
w 2 
x 1 

chmod  #更改权限
chgrp  #更改属组
chown  #更改属主
usermod  #更改用户信息  



6.如何创建普通用户,并且修改用户密码,然后使用普通用户登录

root登陆下,
useradd  faker
passwd  faker  

ssh  faker@ip  

su -  faker  






7.在linux下如何切换用户

su -  用户名  


8.如何使用root身份执行普通用户的命令?请详细说明配置步骤
    
sudo  你想操作的命令 

    1.visudo  打开文件,添加一些配置...
    


9.简述linux文件的权限有哪些?
-  普通文件
r 
w 
x 
-  没有权限 





10.linux文件权限的755,700是什么意思?

755 
user rwx 
group  r-x 
other  r-x 

700  
rwx------

11.如何修改test.py文件权限为700

chmod  700  test.py 

#给test.py最大的权限
chmod 777 test.py  

#给test.py属组是可读可执行(5),属主是只写(2),其他人是只能看 (4)
chmod   254  test.py  
        user  group  others
        属主  属组   其他人  
               
user 属主  
chmod   7(user  rwx ) 7(group rwx ) 7(other rwx )   filename.txt 

12.如何修改test.py属组是oldboy?
  chgrp  oldboy  test.py  

13.已知test.py文件权限是rwxr--r--(744),如何修改权限为rw-rw-rw(666)
  chmod  666  test.py 

 

 

 

复制代码
1.如何先进入/home/oldboy目录,然后再进入/home/python目录?
2.如何在/home.python目录,执行/home/my_first.py文件?
3.互相提问相对路径和绝对路径
4.向my_first.py文件中写入"Lift is short,I use python"
5.请用一条命令创建/tmp/oldboy/python/s11
6.只查看oldboy_python.txt文件(50行)内20到30行内容 
7.找一下python命令在哪
8.将rm命令改为"echo do not use rm"
9.同桌互相传输文件,使用scp命令
10.查看/var/log/文件大小
复制代码

Tip:

http://linux.51yip.com/
http://man.linuxde.net/
Linux命令查询手册
Linux终端下 esc + . 可以获取上次文件名
posted @ 2019-10-21 14:02  驰念  阅读(860)  评论(0编辑  收藏  举报