Linux学习笔记(Ubuntu)

个人博客原文链接

Ubuntu版本大部分操作与CentOS版本一致,Linux只是在Unix发展的过程中为解决开源问题而产生的一种类Unix系统,两者之间没有代码逻辑上的关系,只不过Linux是模仿Unix的系统结构、功能,独立开发出来的一种兼容Unix的系统

环境:VMware+Ubuntu64

常见问题

第一次设置Ubuntu的root账号的密码
解决方案:
1. 手动设置密码:sudo passwd root
2. 输入当前用户密码
3. 输入root的密码
4. 再次确认输入root的密码

常见的操作系统

Windows:常用于个人计算机
Unix:常用于服务器端(服务器端大部分都是基于Unix的操作系统)
Linux:基于Unix,有很多发行版本,常见的有CentOS,Ubuntu,小红帽等

操作系统的组成

  1. kernel(OS的核心组成部分)
    • 管理硬件
    • 管理设备,内存,进程
    • 控制系统程序和系统硬件
    • 管理交换空间,守护进程(精灵),文件系统
  2. shell(是用户和kernel之间的接口,起到翻译或者解释的功能)
    • bourne shell(sh)
    • korn shell(ksh)
    • c shell(csh)
    • bourne-again shell(bash)(现在大多使用这个shell)
  3. file system(文件系统-将硬件和软件都映射成文件)
    • opt:存放第三方软件
    • etc:初始化文件(配置文件)
    • dev: 设备文件
    • usr:用户共享资源
    • kernel(boot):内核程序
    • var:针对管理员使用的东西,日志等
    • home:用户文件的根目录
      文件路径:
      • 相对路径:从当前位置开始
      • 绝对路径:任何时候都是从’/'开始

用户

whoaim:查看当前用户
sudo:执行的命令临时拥有超级用户的权限
修改普通用户的密码:passwd
修改普通用户密码的要求,对超级用户没有作用
1)密码的长度6到8个字符
2)密码至少包含2个字符和一个数字或者一个特殊字符
3)密码不能和用户名相同
4)新密码和旧密码至少有3个字符不同
超级用户的名字就是root
- 普通用户切换到超级用户:su
- 输入超级用户的密码
- 超级用户切换到普通用户:exit
- 普通用户的标识:$
- 超级用户的标识:#

文件类型

d:目录
-:普通文件
b:块设备文件
c:字符设备文件
l:链接文件
p:管道文件
s:socket文件

常用命令

注:大小写敏感,命令用空格分隔
clear:清屏

切换目录(掌握)

cd app:切换到app目录
cd …:切换到上一层目录
cd /:切换到系统根目录
cd ~:切换到用户主目录
cd -:切换到上一个所在目录

目录操作(掌握)

mkdir(make directory) 创建子目录命令
mkdir a:在当前目录下创建a目录
mkdir -p a/b/c:在当前目录级联创建a/b/c目录

rmdir(remove directory)删除“空”的子目录
rmdir a:删除a目录

文件列表(掌握)

touch:创建一个空白的新文件或修改最后一次访问时间
ls(list) 显示当前目录下的内容
ls:显示能看见的文件(和目录)的名称
ls -a:显示所有的文件名称,文件前面有“.”代表隐藏文件
ls -l:显示文件的详细信息(简写方式:ll)
ls -t:按时间顺序排列显示
ls -R:递归显示该目录及子目录所有文件
ll -h:友好的显示
ls -F:显示文件类型
- 目录文件/
- 可执行文件*
- 文本文件(none)

文件权限

文件的权限由9个字母组成,三个三个一组
第一组代表的是当前用户的权限
第二组代表的是组的权限
第三组代表的是其他用户的权限

r:读 4
w:写 2
x:执行 1

chmod (变更文件或目录的权限)
chmod 755 a.txt
chmod u=rwx,g=rx,o=rx a.txt
chmod u-w+x,go-w a.txt
chmod 000 a.txt (超级管理员依旧可以对它进行操作)
★chmod 777 a.txt

chown (变更文件或目录改文件所属用户和组)
chown 用户:组 文件
chown user1:public a.txt :变更当前的目录或文件的所属用户和组
chown -R u1:public dir :变更目录中的所有的子目录及文件的所属用户和组

文件操作

cp(copy) 复制一个文件
cp a.txt b.txt:将a.txt复制并重命名为b.txt
cp a.txt a/c.txt:将a.txt复制到a目录并重命名为c.txt
cp a.txt b.txt c:将a.txt和b.txt复制到c中
cp -i a.txt b:覆盖操作时会有提示
cp -r dir1 dir2:复制目录,将dir1目录及其子目录全复制到dir2中

mv(move) 移动一个文件(重命名)
mv a.txt b.txt:相当于重命名
mv a.txt a/b:将a.txt移动到a目录下的b目录
mv -i a.txt a/b:覆盖操作时会有提示

rm(remove)删除一个文件
rm a.txt 删除a.txt
rm -r a 递归删除目录
rm -ri a 带询问的递归删除
rm -r ./* 直接删除当前目录(慎用!!)
rm -r /* 直接删除根目录(GG!!!!!)

浏览文件(掌握)

cat 在当前屏幕显示文件的全部内容(不推荐)
cat 文件

more 一般用于显示的内容会超过一个屏幕的文件(不推荐)
more 文件(空格显示下一页,回车显示下一行,q退出)

less 和more类似,但更易于控制翻页
less 文件(PgUp上一页,PgDn下一页)

tail 显示文件后几行的内容
tail -10 文件:查看该文件后十行内容
tail -f 文件:动态查看(常用于动态查看日志)
ctrl+c:结束动态查看

grep查找

grep(查找符合条件的字符串----常用)
grep hello 1.txt:在1.txt文件中查找hello
grep hello 1.txt --color:在1.txt文件中查找hello并高亮显示
grep hello 1.txt --color -A5:在1.txt文件中查找hello并高亮显示,只显示hello的后5行
grep hello 1.txt --color -B5:在1.txt文件中查找hello并高亮显示,只显示hello的前5行

打包

tar(打包或解压一个文件或目录----常用)
常用的组合参数:
-cvf:打包一个文件或目录
-zcvf:打包并压缩一个文件或目录(压缩的格式为.gzip)
-xvf:解压或打开一个tar文件

命令格式:
tar 参数 文件名 要打包的文件或目录

示例:
将当前目录下的所有文件打包成1.tar
tar -cvf 1.tar ./*
将当前目录下的所有文件解压并压缩为2.tar.gz
tar -zcvf 2.tar.gz ./*
将1.tar解压到当前目录
tar -xvf 1.tar
将1.tar解压到b目录
tar -xvf 1.tar -C b

查看进程

ps (正在运行的某个进程的状态)
ps –ef 查看所有进程
ps –ef | grep ssh 查找某一进程 kill 杀掉某一进程

kill 2868 杀掉2868编号的进程
kill -9 2868 强制杀死进程

查看帮助(掌握)

man 命令 :查看“命令”的帮助
man rm:查看rm的命令帮助
空格:翻页
q:退出帮助

远程登录

telnet ip地址
输入账号
输入密码
exit or logout 退出登录

ifconfig (显示或设置网络设备)
ifconfig 显示网络设备

ping (持续探测网络是否通畅,ctrl+c终止)
ping 192.168.0.1

netstat (查看网络端口)
netstat -an | grep 3306 查询3306端口占用情况

元字符

*: 个数不定,字符不定
?: 任意单个字符
;: 同时执行多条命令
[]:个数确定一个,内容指定一个范围

系统管理命令(掌握)

日期

date 显示当前系统时间
cal 显示当前日历
cal 7 2028 显示2028年7月的日历

重定向输出(了解)

>:重定向输出,覆盖原有内容
cat a.txt > b.txt : 将a.txt的内容重定向输出到b.txt,覆盖原有内容

>>:重定向输出,追加内容
cat c.txt >> b.txt : 将c.txt的内容追加到b.txt后面

|管道(掌握)

将一个命令的输出用作另一个命令的输入
示例:
在ifconfig的输出里寻找192.168字符串
ifconfig | grep 192.168
查找和java相关的进程
ps -ef | grep java
查找和3306相关的信息
ps -ef | grep 3306

Vi和Vim编辑器(重要)

既可以查看文件也可以编辑文件,两者区别不大,vi代码不变色,vim代码会变色。

三种模式:命令行、输入、底行模式。
切换到命令行模式:按Esc键;
切换到插入模式:按 i 、o、a键;
i:在当前的光标所在位置前面插入
o:在当前光标所在的行的下一行插入
a:在光标所在位置后面插入
切换到底行模式:按 :(冒号)或/(斜杠)或?(问号)

一般流程:
打开文件:vim file
显示行号:esc:set nu
修改文件:输入i进入插入模式
保存:w
另存为:w newfile
不保存退出:esc:q!
保存并退出:esc:wq

快捷键(在命令模式时使用):
yw:复制一个单词
yy:复制当前行
p:粘贴到当前行
:1,2co3:复制1-2行到3行后面
:4,5m6:移动4-5行到6行后面
x:删除一个字符
dd:快速删除当前行
5dd:删除5行
:5,10d:删除5-10行
dw:删除一个单词
3dw:删除3个单词
d+←/→:删除左边一个或右边一个
r:替换一个字符
cw:替换一个单词
cc:替换一行
C:替换从光标至行尾
u:撤销上一次操作
J:把当前行和下一行连接起来
:21:光标停在指定行21行
21G:光标停在指定行21行
/串:从当前行往下查找
?串:从当前行往上查找
n:查找下一个
:r file2:在光标所在位置插入另一个文件
:1,$s/旧串/新串/g:替换全文

环境变量

variable=value
PS1="`hostname`: $PWD $"
path:命令的默认搜索路径
想知道所执行的命令到底在哪个目录下?
which vi 搜索vi所在的路径(在path下搜索,搜索到就停止)
whereis vi 搜索vi所在的路径(在path下搜索,搜索到继续搜索,直到找到所有的vi)

设置环境变量

  1. 用于当前终端
    在当前终端中输入:export PATH=$PATH:<你的要加入的路径>
    不过上面的方法只适用于当前终端,一旦当前终端关闭或在另一个终端中,则无效。
    export NDK_ROOT=/home/jiang/soft/android-ndk-r8e只能在当前终端使用。
  2. 用于当前用户
    在用户主目录下有一个.bashrc隐藏文件,可以在此文件中加入PATH的设置如下
    vi ~/.bashrc
    加入:
    export PATH=<你的要加入的路径>:$PATH
    如果要加入多个路径,只要:
    export PATH=<你要加入的路径1>:<你要加入的路径2>: … :$PATH
    当中每个路径要以冒号分隔,这样每次登录都会生效
  3. 用于所有的用户
    sudo vi /etc/profile
    加入:
    export PATH=<你要加入的路径>:$PATH就可以了。
    终端输入:echo $PATH 可以查看环境变量
    注:修改环境变量后,除了第一种方法立即生效外,第二第三种方法要立即生效,可以source ~/.bashrc或者注销再次登录后就可以了!
    注:第二第三种方法使用前最好备份

初始化文件

包含命令和变量的设置,当shell启动时就执行
对初始化文件在操作系统中分为两级:
1、系统级(一旦修改,对所有的用户都起作用)
/etc
2、用户级(只对当前的用户有效)
/home/user/(用户的家目录)

你可能感兴趣的:(Linux,Linux,Ubuntu)