liunx的初识
首先了解linux目录的结构:
linux
上是没有window
这种盘符说法。 只有一个根目录 ,所有的文件都在根目录下。
/
代表根目录
doublechina@doublechina:/$
~
代表家目录
doublechina@doublechina:~$ cd
Liunx目录详解
/bin 用以存储二进制可执行命令文件
/home 普通用户的默认目录,在该目录下,每个用户拥有一个以用户名命名的文件夹。
/root 超级用户,即根用户的主目录
/etc 存放文件管理配置文件和目录。
/lib 存储各种程序所需要的共享库文件。
--------------------------------------------------------------
/sbin 许多系统命令的存储位置
/dev 存储设备文件,包括计算机的所有外部设备,如硬盘、是、键盘、鼠标等。
/opt 作为可选文件和程序的存放目录,否则将无法引导计算机进入操作系统。
/srv 存储系统提供的服务数据。
/sys 系统设备和文件层次结构,并向用户程序提供详细的内核数据信息。
/lost+found 一般为空,当非法关机时,会存放一些零散的文件。
/proc 这是一个虚拟目录,它是内存的映射,包括系统信息和进程信息。
/boot 存放Ubuntu内核和系统启动文件。
/mnt 通常包括系统引导后被挂载的文件系统的挂载点。
/media 存放Ubuntu系统自动挂载的设备文件。
普通用户 $
doublechina@doublechina:~$ cd
root用户 #
root@doublechina:/#
进入root
用户
-su root
进入root用户,需要密码。
-sudo passwd root
修改密码
-su doublechina
切换到普通用户。
doublechina@doublechina:/$ su root
#输入密码
Password:
#修改密码
root@doublechina:/# su passwd root
[sudo] password for doublechina:
#输入密码,回车
Enter new UNIX password:
#确定密码,回车
Retype new UNIX password:
passwd: password updated successfully
# 切换目录
root@doublechina:/# su doublechina
doublechina@doublechina:/$
命令行系统显示:
doublechina@doublechina:~$
用户名 @ 主机名 : 目录 用户类型(普通/root)
常用命令
pwd 查看当前文件夹
cd 切换文件夹
ls 查看当前文件夹下的内容
mkdir 创建目录 (mkdir a_dir)
touch 如果文件不存在,新建文件
rmdir 删除指定目录
rm 删除指定文件名
clear 清屏 (快捷键 ctr + L)
终端命令格式
command [-options] [parameter]
1.cd
切换路径
cd .. 回到上一级目录
cd / 跳到根目录
cd ~ 回到家目录
cd 回到家目录
cd . 当前目录
cd - 回到上一次目录
区分:
cd 绝对路径 是从根路径 / 开始的
#
cd /home
cd 相对路径
# cd .. 相对于当前目录,回到上一级目录,不带完整的目录
2.ls
查看
ls
常用参数
-a
# 显示目录下所有的子目录和文件 包括以.
、
..
开头的隐藏文件
-l
# 以列表方式显示文件的详细信息
-h
# 配合 -l
人性化的显示文件大小
-i
# 会显示编号(id)
doublechina@doublechina:/home$ ls -a
. .. doublechina
doublechina@doublechina:/home$ ls -l
total 4
drwxr-xr-x 4 doublechina doublechina 4096 Nov 28 22:02 doublechina
doublechina@doublechina:/home$ ls -h
doublechina
doublechina@doublechina:/home$ ls -i
522362 doublechina
3.mkdir
mkdir dirname
# 创建目录
常用参数
-p
同时创建多级目录
-v
显示过程
#创建多个目录
doublechina@doublechina:~$ mkdir test test1
#pv结合使用
doublechina@doublechina:~$ mkdir -pv tt2/t1/t2 tt1/t1/t2
mkdir: created directory 'tt2'
mkdir: created directory 'tt2/t1'
mkdir: created directory 'tt2/t1/t2'
mkdir: created directory 'tt1'
mkdir: created directory 'tt1/t1'
mkdir: created directory 'tt1/t1/t2
4.touch
使用
doublechina@doublechina:~$ ls
a test test1 test2 tt tt1 tt2 tt3 ttt6
#有tt2文件不做创建
doublechina@doublechina:~$ touch tt2
doublechina@doublechina:~$ ls
a test test1 test2 tt tt1 tt2 tt3 ttt6
#没有java文件进行创建
doublechina@doublechina:~$ touch java
doublechina@doublechina:~$ ls
a java test test1 test2 tt tt1 tt2 tt3 ttt6
5.rmdir
删除空目录
rmdir dirname
# 删除空目录
常用参数
-v
显示过程
-p
递归删除
doublechina@doublechina:~$ rmdir -pv a/b/c
rmdir: removing directory, 'a/b/c'
rmdir: removing directory, 'a/b'
rmdir: removing directory, 'a'
6.查看目录树tree
sudo apt-get install tree
#安装tree
doublechina@doublechina:~$ sudo apt-get install tree
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
tree
0 upgraded, 1 newly installed, 0 to remove and 89 not upgraded.
Need to get 0 B/42.5 kB of archives.
After this operation, 137 kB of additional disk space will be used.
Selecting previously unselected package tree.
(Reading database ... 60441 files and directories currently installed.)
Preparing to unpack .../archives/tree_1.7.0-3_i386.deb ...
Unpacking tree (1.7.0-3) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up tree (1.7.0-3) ...
#查看tree
doublechina@doublechina:~$ tree
.
├── java
├── test1
├── test2
├── tt
│ └── t1
│ └── t2
├── tt1
│ └── t1
│ └── t2
├── tt2
│ └── t1
7.rm
删除文件
rm filename
# 删除文件
常用参数
-i
交互式删除,提醒
-f
强制删除
-r
递归式文件夹删除
*
通配
rm -rf *
# rm 删除文件 -r 还可递归的删除文件夹 -f 强制 *所有
doublechina@doublechina:~$ ls
java test1 test2 tt tt1 tt2 tt3 ttt6
#删除java文件,提醒用户
doublechina@doublechina:~$ rm -i java
rm: remove regular empty file 'java'? y
doublechina@doublechina:~$ ls
test1 test2 tt tt1 tt2 tt3 ttt6
#删除所有文件和文件夹,但是不含隐藏目录
rm -rf *
doublechina@doublechina:~$ rm -rf *
doublechina@doublechina:~$ ls
#查看隐藏目录
doublechina@doublechina:~$ ls -a
. .bash_history .bashrc .profile .viminfo
.. .bash_logout .cache .sudo_as_admin_successful
8.mv
移动和重名 = 剪切
mv filename1 filename2 # 重名
mv filename1 -b filename2 # 重命名前覆盖
mv filename2 dirname # 移动
运行代码
doublechina@doublechina:~$ tree
.
├── 1.txt
├── 2.txt
├── aa
│ └── 1.txt
├── bb
│ └── aa
│ └── 1.txt
├── cc
├── ddcc
└── ee
└── ff
#如果存在目录,移动
doublechina@doublechina:~$ mv 1.txt cc
doublechina@doublechina:~$ tree
.
├── 2.txt
├── aa
│ └── 1.txt
├── bb
│ └── aa
│ └── 1.txt
├── cc
│ └── 1.txt
├── ddcc
└── ee
└── ff
7 directories, 4 files
#如果不存在,重命名
doublechina@doublechina:~$ mv 2.txt 3.txt
doublechina@doublechina:~$ ls
3.txt aa bb cc ddcc ee
doublechina@doublechina:~$ tree
.
├── 1.txt
├── 3.txt
├── aa
│ └── 1.txt
├── bb
│ └── aa
│ └── 1.txt
├── cc
│ └── 1.txt
├── ddcc
└── ee
└── ff
#移动的目录中,存在相同的文件,保留相同的文件,使用-b
doublechina@doublechina:~$ mv 1.txt -b aa
doublechina@doublechina:~$ tree
.
├── 3.txt
├── aa
│ ├── 1.txt
│ └── 1.txt~
├── bb
│ └── aa
│ └── 1.txt
├── cc
│ └── 1.txt
├── ddcc
└── ee
└── ff
7 directories, 5 files
9.cp
复制
cp filename1 dirname # 复制
# 常用参数
-a # 复制目录 保留文件原有的属性,相对于r更强大点
-i # 在覆盖之前提示
-r # 目标文件必须为一个目录名
-v # 显示进度
执行代码
doublechina@doublechina:~$ tree
.
├── 1.txt
├── 2.txt
├── aa
│ └── 1.txt
├── bb
├── cc
├── ddcc
└── ee
└── ff
#-i提醒
doublechina@doublechina:~$ cp -i 1.txt aa
cp: overwrite 'aa/1.txt'? y
#-a使用
doublechina@doublechina:~$ cp -a aa bb
doublechina@doublechina:~$ tree
.
├── 1.txt
├── 2.txt
├── aa
│ └── 1.txt
├── bb
│ └── aa
│ └── 1.txt
├── cc
├── ddcc
└── ee
└── ff
7 directories, 4 files
10.文件类型:
b 块文件也叫设备文件也叫特殊文件
c 字符文件
d 目录文件
p 管道文件
f(-) 普通文件/文本文件
l 链接文件
s(socket) unix/类unix套接字
注意:linux上文件的后缀名只是给我们自己看的,并不能表示文件的类型
doublechina@doublechina:~$ ls -l
total 20
# - 普通文件/文本文件
- rw-rw-r-- 1 doublechina doublechina 0 Dec 5 10:45 3.txt
# d表示目录
drwxrwxr-x 2 doublechina doublechina 4096 Dec 5 11:13 aa
11. 关机/重启
reboot
重启 用sudo 权限-
shutdown
用sudo 权限-
-h now
立马关机
-
-
-r now
立马重启 now 为当前时间为 0-h +10
系统再过十分钟后自动关机-h 20:25
系统在今天的20:25
会关机-c
取消
init
用sudo 权限
0
关机6
重启