Linux基础
1.ubuntu目录:
/:根目录(最顶层);/home:系统默认的用户家目录,新增用户账号时,用户的家目录都在此目录下,~edu表示用户edu的家目录,用于存放自己编写的程序可放在该目录中。
/bin、/usr/bin:可执行二进制文件的目录,如常用的命令等。(存放运行程序的目录,不可随意修改)
/dev:存放linux系统下的设备文件,访问该目录下的某个文件,相当于访问某个设备,常用的是挂载光驱。
/usr:应用程序存放目录,/usr/bin:存放应用程序
/usr/share:存放共享数据;/usr/lib:存放不能直接运行的,却是应用程序运行所必须的一些函数库文件。
/usr/local:存放软件升级包。
/usr/share/doc:系统说明文件存放目录。
/usr/share/man:程序说明文件存放目录。
/tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下。
2.linux命令
(1)命令使用方法:
linux命令格式:command [options][parameter]…
放大字体:ctrl+shift+ (+)
缩小字体:ctrl+(-)
(2)ls:显示当前文件夹下的东西(ls Documents)(ls -a:显示隐藏文件和文件夹;ls -l:以列表方式显示;ls -l -h:-h使内存以合理方式显示)(ls -ahl)
cd:切换目录
pwd:显示当前路径
cd …:跳到上一级目录(.表示当前路径); cd …/…;cd ~:切换到当前用户的家目录;cd - :快速回到上一次的执行路径。
clear:清屏
table:自动补齐
按↑↓键可找到上一个和下一个命令
touch world.txt:创建一个文件在当前目录下,linux中没有后缀的说法。
(3)通配符
ls .txt:显示所有.txt文件
ls .:显示带后缀的
ls .t?t:表示任意多个字符,也可以没有;
?表示一个字符,一定有一个,不能没有
ls .t[xn]t [xn]可以为空([xn]为字符集合)
ls *a 查找名为a的文件,\转义,以免混淆
(4)查看帮助文档
–help:一般是linux命令自带的帮助信息。(ls --help)
man(命令):man是linux提供的一个手册,包含了绝大部分命令、函数的使用说明,该手册分成很多章节,使用man来查看命令的使用方式。
ls ->test.txt (把ls打开目录下显示的东西放入文档中)
ls -alh >test.txt(把当前看到的东西快速导入文档中)
(5)重定向
>:若无test.txt这个文件,就建立再保存;若有,则先把其中信息都删除再保存。
>>:就不会删除文件之前的保存的信息
history:打印出你之前打出的历史命令
(6)分屏显示:more(按空格可显示更多%)
more test.txt
打开文件:gedit test.txt
ls -alh | more (从管道内读取)(先执行,把内容存在管道内,再让more执行,从管道内读取)
管道:连接两个命令,一个命令的输出可转为另一个命令的输入。
(7)创建目录:mkdir
mkdir A/B/C -P(连续创建)
tree:树状显示目录
(8)删除目录:rmdir(必须离开目录才能删除,否则报错)
(9)删除文件:rm(不会进回收站)
rm A -r:删文件夹要加 -r(递归调用删除)
rm + 文件:直接删除
rm + 文件 + -i :询问是否删除
rm + 文件 + -f:强制删除
rm + * + -r:全部删除
(10)新建文件:
touch a/b/c.txt
2.链接文件(l)
(1)建立链接文件:ln(类似于windows下的快捷方式),其分为软链接和硬链接。(删掉原文件,软链接不好使了)
(2)软链接:软链接不占用磁盘空间,源文件删除则软链接失效。
(3)硬链接:硬链接只能链接普通文件,不能链接目录。(删除源文件不影响)
使用格式:ln 源文件 链接文件(硬)
ln -s 源文件 链接文件(软)
注:如果软链接和源文件不在同一目录,源文件要使用绝对路径,不能使用相对路径。
硬链接:当前有多少份文件共用一个文件内容。(ls -l)l中的数字代表份数
(4)cat:查看或者合并文件内容,不会分屏
cat 02.py > h.txt(类似于复制,删除)
cat 02.py >> h.txt(不删除)
cat 01.py 02.py(按序显示文件内容)
cat 01.py 02.py > h.txt (把两个文件的内容按序合并至h.txt)
(5)grep:搜索(先cat文件内容)
grep -n(显示搜索到的行号(位置)) ‘要搜索的内容’ (‘a’) 文件名(test.txt)
-v :显示不包含要搜索内容的内容
grep -v -n ‘t’ greptest.txt(数据挖掘)
单引号(’ ')内支持正则
注:
grep -n ‘^a’(以a开头) greptest.txt
grep -n ‘a$’(以a结尾,可用于检索邮箱填的对不对)
grep -n ‘[tT]’(正则,有t或者T都显示)
输入^c可退出执行当前命令
(6)查找文件:find:在特定目录下搜索指定条件的文件
find ./python/Desktop -name '/’(文件名以/打头)
(7)cp:拷贝
cp +要复制的文件名 + 复制完的文件名
-v:显示拷贝进度
cp 0./a(不可复制失效软链接,cp 0* ./a -a(全复制过来))
rm a/(删掉a文件夹内东西,不删a)
cp b a/ -r (把b文件夹移到a文件夹内)
cp b/ a (将b文件夹内的东西拷到a中)
(8)移动文件:mv(剪切)
mv d/a . (把d文件夹中的a移动到当前路径下)
mv 05.tmt 05.tot (重命名)
-f:禁止交互式操作(要移动时另一文件与其同名,不问是否覆盖)
-i:交互式(询问是否)
rm [1-3 a-z]* -r(删除以1-3,a-z开头的东西)
(9)归档管理:tar(打包,(只是把文件打包,不减小大小))
tar -cvf (打包进度) test.tar (包的名字) * (把当前路径下所有东西打包)
打完包以后就可以将除包外的删掉
解包:tar -xvf test.tar
(10)文件压缩解压:gzip(压缩大小)
压缩:gzip test.tar
解压缩:gzip -d test.tar.gz
tar -zcvf test.tar.gz *(将当前路径下所有文件及文件夹打包并压缩到test.tar.gz文件中)
tar -zxvf test.tar.gz (解压)
另一种压缩方式:bzip2
tar -jcvf xxx.tar.bz2 *
tar -jxvf xxx.tar.bz2
各压缩方式不可串用
另一种压缩方式:zip和unzip
压缩文件:zip[-r]目标文件(没有扩展名)源文件
解压文件:unzip -d 解压后目录文件 压缩文件
zip myzip *
unzip -d ./test myzip.zip
unzip -d ./AA(若无则自动创建) myzip.zip
查看命令位置:which
which ls
3、Linux命令—用户、权限管理
(1)查看当前用户:whoami
(2)显示IP:ifconfig
(3)ping:ping 192.168.17.76:测试网络连接是否正常
(4)ssh:ssh python @192.168.17.76
ssh 用户名@IP地址 (远程登陆)(搭建网站和使用服务器)(租用云服务器,然后远程控制,通过密码登陆)
(5)who:显示乌班图上使用用户的数量和信息
who -q:显示用户数
who -u:显示非法IP登陆,即电脑被攻击
who -m:显示登录时间
(6)exit:退出登陆账户(注销)
(7)添加用户账号:useradd或adduser(adduser是指向user add的链接)
useradd lc -m -d /home/lc
useradd: permission denied(出现这个表明你没有权限干这件事)
useradd:无法锁定/etc/passwd.请稍后再试
权限不够加sudo:
sudo useradd lc -m(自动创建) -d(创建用户目录路径) /home/lc
(8)设置用户名密码:passwd
(9)切换用户:su
su xxy
exit 返回上一层用户,直到返回最后一个用户,就关闭终端
su -xxy:直接进入xxy用户的家目录
(10)删除用户:userdel
userdel 用户名:只删用户,不删用户主目录
userdel -r 用户名:删除用户,同时删除主目录
(11)sudo -s :把执行权限转到root
(12)查看用户有哪些组
cat /etc/group
root@ ubuntu home# cat/etc/group
groupmod + 两次table键(三次?)
(13)创建用户组新账号:groupadd 用户名
删除: groupdel 用户名
查看用户组: cat/etc/group
(创建用户时可指定其在什么组)
(14)修改用户所在组(组名):
usermod -g 用户组 用户名
(15)查看用户在哪些组:groups lc
(默认显示用户所在的主要的组)
给新用户增加权限的方法:
sudo usermod -a -G adm 用户名
sudo usermod -a -G sudo 用户名
(16)修改文件权限:chmod
d(文件格式)rwx(用户权限)rwx(同组成员权限)r-x(其他人权限)
r:读,对应数字4;w:写,对应数字2;x:可执行,对应数字1(三位三位看:444,777)
chmod u(自己)+x(可执行权限) test.txt
chmod u-x test.txt
g:同族人员
o:其它成员
a:所有人
chmod u=r 2.py
chmod u=rwx, g=rwx, o=rwx 2.py
chmod a: 2.py (清空所有权限)
(17)shell脚本:
touch xxx.sh
chmod u+x xxx.sh(获得可执行权限)
./xxx.sh (执行这个脚本)
chmod 777 文件名(获得所有权限)
修改文件夹权限并连同文件夹中的东西权限全部设为相同:
chmod 命令 文件夹 -R
(18)修改文件所有者:chown
chown lc test.txt (所有者变为lc)
修改文件所属组:chgrp
6、系统管理
(1)查看日历:cal
cal -y(显示某年日历)
(2)显示时间设置:date
设置时间格式(需管理员权限):
date [MMDDhhmm][CC]YY][.SS]] + format
date 111213142016.15
(2016年11月12号13点14分15秒)
(3)查看进程信息:ps(当前终端下进程)
ps -aux (当前系统所有进程)
(4)动态显示进程:top %MEM:内存
输入q或ctrl + c结束程序
(5)杀死文件:kill pid(进程代号)
kill -q pid (强制杀死进程)
(6)关机重启:
roboot:重启操作系统
shutdown -r now 重启系统,shutdown会给别的用户提示
shutdown -h now 立刻关机
shutdown -h 20:25 在今天20:25关机
shutdown -h +10 十分钟后关机
init 0 关机
init 1 重启
(7)检测磁盘空间:df(-a:所有文件;-m:以1024字节为单位显示)
检测目录所占磁盘空间:du(查看当前路径下)
du -h (转化合适单位显示)
(8)其它:
sudo ifconfig ens33 down (关闭网卡)
sudo ifconfig ens33 up(开启网卡)
ifconfig ens33 IP名(修改ip地址)
7、编辑器之神:vim
(1)vi三种模式:命令模式(默认)(i、a、o)
(2)编辑模式:命令模式➡(i:光标前面插入,a:光标后面插入,o)编辑模式➡(ESC)命令模式
I:行首;A:行尾
(3)末行模式(输入:(shift+;)进入,ESC退出),编辑完按ESC回到命令模式,shift+两次z保存
命令模式下输入冒号,写w命令保存。
保存退出 wq
不保存强制退出 q!
小写x:保存
大写X:加密
(4)补全:ctrl+N
光标的控制:按J:往下;按K:往上;按L:往右;按H:往左(命令模式下)
M:光标停在中间行
L:光标移动到屏幕最后一行行首
yy:复制
8yy:表示从当前光标所在的行开始复制8行
P:粘贴
dd:剪切
6dd:剪6行 P粘贴
D:删掉本行光标后所有内容
u:撤销
ctrl+r:反撤销
敲入G:跳到文件最后一行
行号+G:跳到指定行号
gg:跳转到第一行
w:向左跳
b:向右跳
{:按段移动 上移
}:按段移动 下移
ctrl + d:向下翻半屏
+ u:向上翻半屏
+ f: 向下翻一屏
+ b:向上翻一屏
(5)删除命令:小写x:删除光标后一个字符。相当于del
大写X:删除光标前一个字符。相当于backspace
dd:删除光标所在行
ndd:删除指定的行数
D:删除包括光标在内的光标后所有内容
dD:删除光标前本行所有内容,不包括光标所在字符
dw:删除光标开始位置的字,包含光标所在字符(删单词)
文本行右移:>>
文本行左移:<<
重复操作上一个执行命令:.
(6)vi 1.py +22:直接跳到行号
视图:按V(选中一片区域,支持左右移,复制粘贴)
r:替换当前字符
R:替换当前行光标后的字符
查找命令:/:str(命令行输入/)
下一个查找结果n:下一个
上一个查找结果N:上一个
替换命令:abc➡123
末行模式下将光标所在行的abc换成123
:%s/abc/123/g
末行模式下,将第一行至第十行间的abc换成123
:1,10s/abc/123/g
vim里执行shell命令:
末行模式里输入!,后面跟命令
:!
#coding = utf-8