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
别名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 + . 可以获取上次文件名