linux指令
*移动: mv (mv ? dao ?)(如果mv A B(到)C,默认最后一个是到哪)
*复制:cp(cp ? ?)(-r 递归,复制文件夹使用)
*重命名:mv /cp
*创建: mkdir(mkdir a/?)(-p 递归) touch
*删除 (强制): rm -rf (文件夹,递归)
rm -f(文件)
(rm -f ?
rm -rf dsj*)
*返回上层:../
*回到家目录:cd ~
*ls -al 展示当前目录下文件的全部格式
*> ss.txt 覆盖输入
*>> ss.txt 追加输入
*查看 cat / vim(:q 退出) 查看
*查看电脑使用情况: df (-h 增加可读性(10716 -> 11M))
*查看任务管理器: free -m (swap是临时磁盘)
less (q 退出)(空白键+上下 翻页)查看文件 ,以较小的内容进行输出)
*统计: wc
(-l 行数 -w 单词数 -c 字节数(一个 字节 = 8 bit))
(wc (-l/-wl/-lwc/...) uu/ss.txt)
*查看文件末尾几行(日志): tail(不指定 就是末尾10行)
(tail -14 u/ss.txt)
~前几行(日志): head(~)
*查看文件动态变化(日志): tail (-F 时事跟踪(不区分大小写?)(ctrl+c 退出 ctrl+z 挂起)
*日历: cal(calendar(日历)):(-1 -2 -s -m -j -y -v -h)
*查询命令: whatis mkdir
*~指令 : mkdir --help
man mkdir(q退出)
infor mkdir(q退出)
*当前时间date:
年月日,时分秒
(固定格式:date "+%? %? ...")
*只显示年月日: (date "+%F) = (date "+%Y-%m-%d")
*只显示时分秒: (date "+%T") = (date "+%H:%:%MS")
*都显示: (date "+%F %T")= (...)
*显示不是当天的日期: date -d "+1 day" "+%F %T"
(固定格式:date -d "+/-数字 day/month/year=yeas"
可以加或不加固定格式"+%? %? ...")
(
【补充】:
PDT:(Pacific Daylight Time)太平洋夏季时间。(与正常时区差14个小时)
(太平洋时间的标准时间从协调世界时减去8小时(UTC 8)。)
PST:(Pacific Standard Time )美国太平洋标准时间,
(夏时制结束后就是PST。)
CST:CST(China Standard Time)中国时间标准
)
*查找命令: grep
grep 选项 正则表达式
(grep -F "字符" 文件路径)
*管道|:指令1|指令2 (指令1的输出是指令2的输入)
(
【例】:
输入:ls / |grep s
输出:
sbin
srv
sys
usr
)
*查找文件命令: find 路径 表达式
(
【例】:查找当前下所有的记事本文件.txt
find -name(以name形式) "*.txt"
(加路径的话: find 路径-name "*.txt")
)
*历史命令查询:
1.history
2.展示历史输入指令
3.历史命令编号
4.展示历史命令编号 的历史指令 以及 输出结果
*设置别名:alias
(alias 新命令=“旧命令”)
*删除别名:unalias
(unalias 新命令)
*文件的压缩和解压:
压缩: gzip 文件路径(红色)
解压: gzip -d 文件路径 (文件夹必须写全名比如:1.txt -> 1.txt.gz)
*文件夹的压缩和解压:(-f -t -c -r -u -x文件 -z)
压缩: tar -czvf uu.tar uu
解压: tar -xzvf uu.tar -C yy 文件路径 (文件夹必须写全名比如:1.txt -> 1.txt.gz)
*文件编辑器: cat / less(:q 退出) / tail / head /
vi(按i 进入插入模式,Esc,此时只能:wq退出 ,底线命令模式: )
0 1 2 3 4 5 图形 6 级别
*超级用户系统:
进入:su
(进入 ux普通用户)
1.相关配置文件:
(tail -5 /etc/shadow: 存密码的形式)
密码相关信息:/etc/shadow
组帐号基本信息:/etc/group
用户基本信息: /etc/passwd
(u:注释 ux:用户组名字 uid:用户id gid:用户组id (还有附加组))
2.添加用户:useradd
-g(主组) 1000 -G(附加组) 1002 -u(用户id) 666 (昵称)lin2
3.删除用户:userdel -r 用户名
4.删除用户组: groupdel -d 组名
5.添加用户组:
a.直接添加(直接删除)
b.先添加用户,自动生成同名的用户组(必须先删除用户再删除组)
6.添加用户:useradd -g 组号 -G 附加值号 =u 用户号 用户名
7.删除: gpasswd
(在超级管理员下创建的文件是全权限(绿色))
*权限管理:
chmod 所设置的权限 目标文件
a.以数字形式设置
1. 权限:r读 4, w写 2 ,x可执行 1,- 无 0(8进制下)
2.对象:【u主 g组 o其他】
u 属主(所有者权限) g 属组(所有者所在的组的权限,也就是用户权限) o(其他用户权限) 其他
3.权限表示:
u g o
rwx rwx rwx
421 421 421
【例】:
chmod 740 a/1.txt (给1.txt的主对象设置rwx,组对象设置r,其他-)
b.以字符形式设置
+添加某权限,-取消某权限,对象:a = ugo
【例】:
chmod u+wx 1.txt(给1.txt的主对象设置wx)
chmod a-x 1.txt(给1.txt的所有对象设置x)
注意:chmod +rwx 1.txt = chmod uga+rwx 1.txt = chmod a+rwx 1.txt(给1.txt中的所有对象都赋予所有权限)
*c语言
1.创建或编辑C语言文件: gedit a.c
(弹出a.c编辑界面,输入想保存的C语言文件,保存即可)
2.编译该C语言文件:gcc a.c
(出现a.out)
3.运行该C语言文件: ./a.out
*vi编辑器
(Linux一般都是vim)
1.进入:vi (没有输入后缀文件名,则会进入一个空的vim文件)
创建 并进入vim: vi a.txt
(默认进入浏览模式)
【浏览模式】:
· 可以使用(’h‘、‘ j’、‘ k’、‘ l’)来代替光标进行(←,↑,↓,→)
· 移动光标到想要[删除]的位置,
a.删除单个字符:
(将单个字符放到字符缓存区)
(按‘p’将字符缓存区的单个字符粘贴到光标位置)
b.删除光标所在位置的一行:按2次‘d
(按‘p’将字符缓存区的一整行粘贴到光标位置)
c.删除指定光标的字符或字符串:按‘d’,
再输入想删除的个数,再根据朝左/朝→按键
·按‘d’,按↑/按↓(删除光标当前行+上/下一行(共2行))
注意:退出vi后 字符缓冲区的内容会被清空。
2.进入【插入模式】:输入’i ‘(退出按‘Esc’)
·↑:A\n,↓B\n,→C\n,←D\n
(输入:w 1.dat [保存]文件到1.dat文件(创建新的))
3.进入【可视模式】:输入‘v’(退出按‘Esc’)
·移动光标到想要[复制]的位置,按y(Ctrl +c);
·移动光标到想要[粘贴]的位置按p(Ctrl +v).
·shift + h :定位到首位置
·shift + l :定位到尾位置
4.进入【覆盖模式】:输入‘r’(退出按‘Esc’)
5.退出: 保存并退出 ‘:x’、强制写入并退出':wq'、普通退出 ':q'
6.查看: cat 1.txt
*网络配置:
1.进入超级管理员系统
(ip地址 网络号和主机号,已经更新到并普遍使用IPv6,VPN 拨号上网)
2.指令:ifconfig (window/linux):显示启用的网卡配置信息
(普通用户也能查看,不能修改)
(ifconfig -a 显示所有网卡配置信息)
(ifconfig ens33 显示ens33的网卡配置信息)
(Running 开启,mtu 最大传输单元,inet ip地址,netmask 子网掩码,inet6 ipv6,ether mac 硬件地址,RX 发送的数据包(接收信息的单位大小),dropped 丢包数,TX接受。。)
3.网卡信息设为关闭/开启:ifconfig xxx down/up
(RUNNING 消失,ip地址消失,硬件地址存在)
4.为网卡指定临时ip地址(重启失效):ifconfig 网卡设备名 ip地址 子网掩码
(一般指定C类(足够),255,255,255,0,A类(超大型)用不着)
【例】:
ifconfig ens33 192.168.122.200 netmask 255.255.255.0
*查询主机全名:hostname
1.进入超级管理员系统 (普通用户也能查看,不能修改)
2.(-s短主机名)(-i ip地址)
(软测试专用地址:1 127.0.0.1)
3.取别名(重启消失):hostname 嫦娥
*测试百度(问问百度)(window/linux):ping baidu.com/220.181.38.148(Ctr + c 取消)
(ping -c 5(次) -i 0.5(最大秒数) baidu.com)
*netstat 查看网络连接
-a 所有 -t tup协议 -u udp协议 -n 显示源ip地址和目的ip地址
(listen 可监听状态)
*调试:
1. 查看有没有被占用
netstat -an | grep 9999
2. 运行sever.py
python sever.py
3. 打开浏览器访问 localhost:9999
4. netstat -an | grep 9999
*查看曾用名,域名,ip地址:
nslookup www.baidu.com
*进入命令符界面:
init 3
登陆
超级系统
init 5
*rpm离线安装:
1.安装
rpm -i(安装)vh google-chrome-stable_current_x86_64.rpm
2.卸载rpm
rpm -e google-chrome-stable
(查询是否卸载完
rpm -ga|grep google)
(版本号只在安装的时候出现)
3.升级
rpm -U google-chrome-stable_current_x86_64.rpm
*YUM在线安装:
1.查询已描写的软件和
yum search google
2.列出用yum已安装的软件和可以安装的
yum list
(查询是否安装成功:yum list |grep chrome
列出已经安装的软件:yum list installed)
3.列出提供yum的用户信息
yum provides passwd
4.安装
yum install google-chrome-stable
*查看进程
ps -a(查看当前终端进程,PID,STA,CMD )
ps -ax(查看所有行终端进程)
ps -axu(查看所有列终端进程)
ps -u first(指定用户)
过滤查找:ps -aux | grep 关键字
*调度进程:
手动启动:
前台启动:终端模拟器
后台启动:命令前+‘&’可以转后台
调度启动:
*杀死进程:
kill pidch
kill -9 pid (强制杀死)
pkill
pkill -u first(类似重启)
shell基础编程(+例题)
*shell编程
#!/bin/bash
#wj:bj.sh
定义变量时:=两边不能加空格
调用时候前加$
输出(=printf): echo "5 + 2 = $val"
(输出结果:5 + 2 = 7)
$0参数名
$1第一个变量
$2第二个变量
$3第三个变量
*插入‘’到txt中
echo 'hello linux' > 521.txt
*1+2:
expr 1 + 2
expr $[ 1 + 2 ]
expr $((1+2))
*6*4:
expr 4 \* 6
*6*2:
expr 6 / 2
*if(-gt大于,-lt小于):
if [ $e -gt $18 ]
then
echo "adult"
elif [ $e -lt 10 ]
then
echo “children”
else
echo "teenage"
fi
*步骤:
vim a.sh
chmod +x a.sh
./a.sh
*-a 与运算 -o或运算
*switch语句:
【例题】:
判断输入的数字反馈星期几。
echo "Please input:"
read i
case $i in
1) echo "Monday"
;;
2) echo "Tuesday"
;;
3) echo "Wednesday"
;;
4) echo "Thursday"
;;
5) echo "Friday"
;;
6) echo "Saturday"
;;
7) echo "Sunday"
;;
*) echo "Not have this day"
esac
*for语句:
【例题】:
计算 1+..+50。
方法1:
sum=0
for ((i=1;i<=50;i++))
do let sum+=i
done
echo "方法1:1+..+50 = $sum"
方法2:
s=0
for i in {1..50}
do let s+=i
let i++
done
echo "方法2:1+...+50 = $s"
*while语句:
【例题】:
打印1,..,10.
i=1
while (($i<=10))
do
echo "i = $i"
let i++
done
*until语句:
【例题】:
计算1,..,100偶数之和,奇数之和,整数之和
sum=0
sum_o=0
sum_j=0
i=1
until [ $i -gt 100 ]
do
if [ $[$i%2] -eq 0 ]
then
let sum_o+=i
else
let sum_j+=i
fi
let sum+=i
let i++
done
echo "sum = $sum "
echo "sum_o = $sum_o"
echo "sum_j = $sum_j"
*function函数:
【例题1】:
设计一个函数使得输入的两个数互相加。
function add()
{
return $(($1+$2));
}
read -p "input:" a b
add $a $b;
echo $a "+" $b "=" $?;
(注意函数有分号)
【例题2】:
计算1-100的和,与其中奇数的和,偶数的和
#!/bin/bash
#wj:a.sh
let sum=0
let sum1=0
let sum2=0
let i=1
until[ $i -gt 100 ]
do
if[ $[$i%2] -eq 0 ]
then
let sum1+=$i
else
let sum2+=$i
fi
let sum+=$i
let i++
done
echo "sum :$sum"
echo "sum1 :$sum1"
echo "sum2 :$sum2"