Ubuntu 使用快速入门

如何使用命令行

Terminal 是一个图形化程序,我们在 Terminal 中输入一些指令(通常称为命令),Terminal 会将这些指令交由 /bin/bash 程序处理,处理完成后,会将输出的结果显示在 Terminal 的窗口中。

/bin/bash 提供相同功能的程序有很多种,常见的有 /bin/sh /bin/zsh 等。这类程序我们统称为 shell

命令行基础

1. 提示符

打开 Terminal 后,可以看到提示符,其具体含义如下:

2. 路径

在 Linux 中路径分为绝对路径和相对路径。

Linux 下的根目录为 /,从根目录下出发可以找到任意目录、任意文件。从根目录开始表示目录或文件的方法称为“绝对路径”。比如:

/home/zzh0838
/bin
/bin/pwd
/usr

有时候使用绝对路径太过麻烦,可以使用相对路径。假设当前正位于 /home/zzh0838 家目录下,那么:

./1.txt #表示当前目录下的 1.txt,即 /home/zzh0838/1.txt; . 表示当前目录

../book/1.txt #表示当前目录的上一级目录里,book 子目录下的 1.txt, .. 表示上一级目录

文件与目录相关命令

1. ls 命令

ls 用于查看目录下的文件信息

ls
# -l 表示查看文件的详细信息
ls -l

total 52856
drwxrwxr-x 4 zzh0838 zzh0838     4096 1月   7 15:59 android-kernel
drwxrwxrwx 5 root    root        4096 1月   7 16:02 Aosp
drwxrwxr-x 2 zzh0838 zzh0838     4096 1月   7 11:24 bin
drwxr-xr-x 2 zzh0838 zzh0838     4096 1月  10 16:37 Desktop
drwxr-xr-x 2 zzh0838 zzh0838     4096 1月   7 10:11 Documents
drwxr-xr-x 2 zzh0838 zzh0838     4096 1月   7 10:11 Downloads
-rw-r--r-- 1 zzh0838 zzh0838     8980 1月   7 10:06 examples.desktop
drwxr-xr-x 2 zzh0838 zzh0838     4096 1月   7 10:11 Music
drwxr-xr-x 2 zzh0838 zzh0838     4096 1月   7 10:11 Pictures
drwxr-xr-x 2 zzh0838 zzh0838     4096 1月   7 10:11 Public
drwxrwxr-x 2 zzh0838 zzh0838     4096 1月  12 16:50 temp
drwxr-xr-x 2 zzh0838 zzh0838     4096 1月   7 10:11 Templates
drwxr-xr-x 2 zzh0838 zzh0838     4096 1月   7 10:11 Videos
-rw------- 1 zzh0838 zzh0838 54056661 7月  31 08:09 VMwareTools-10.3.25-20206839.tar.gz
drwxr-xr-x 8 zzh0838 zzh0838     4096 7月  31 08:08 vmware-tools-distrib

Linux 用户管理

  • Linux 是一个多用户操作系统
  • Linux 中有很多用户组,每个用户都在一个或多个用户组,

第1个字母代表文件类型:

  • -:常规文件
  • d:目录文件
  • b:block device 即块设备文件
  • c:character device 即字符设备文件
  • l:symbolic link 即符号链接文件,又称软链接文件
  • p:pipe 即命名管道文件
  • s:socket 即套接字文件

文件类型后面的 9 个字符表示文件的权限,以 3 个为一组

  • 第一组表示 “文件所有者的权限”;
  • 第二组表示 “用户组的权限”;
  • 第三组表示 “其他非本用户组的权限”。

每组都是 rwx 的组合,其中 r 代表可读,w 代表可写,x 代表可执行;如果没有对应的权限,就会出现减号(-)。比 “rw-r–r–” 表示:文件的所有者对该文件有读权限、写权限,但是没有执行权限;同一个用户组的其他用户对该文件只有读权限;其他用户对该文件也只有读权限。

连接数:表示有多少文件名连接到此节点。

文件所有者:表示这个文件的 “所有者的账号”。

文件所属用户组。

文件大小:表示这个文件的大小,默认单位是 B(字节)。

文件最后被修改的时间:这个文件的创建文件日期或者是最近的修改日期。

文件名:对应文件的文件名。如果文件名之前多了一个“.”,则说明这个文件为“隐藏文件”,执行“ls -a”命令可以列出隐藏文件。

# -a 表示查看所有文件,包括隐藏文件
ls -a

.               Downloads                     .repoconfig
..              .emulator_console_auth_token  .repo_.gitconfig.json
.android        examples.desktop              .ssh
android-kernel  .gitconfig                    .sudo_as_admin_successful
Aosp            .gnupg                        temp
.bash_history   .ICEauthority                 Templates
.bash_logout    .local                        Videos
.bashrc         .mozilla                      .viminfo
bin             Music                         VMwareTools-10.3.25-20206839.tar.gz
.cache          Pictures                      vmware-tools-distrib
.config         .pki                          .vscode-server
Desktop         .profile                      .wget-hsts
Documents       Public

2. cd 命令

cd /home/username
# 进入家目录
cd ~
# 进入上一次的目录
cd -

3. pwd 命令

pwd 用于查看当前所在目录

pwd
#输出内容
/home/zzh0838

4. touch 命令

touch 用于创建一个文件

touch test

5. ln 用于链接文件

# 软链接
ln -s data_file sl_data_file
# 硬链接
ln  data_file l_data_file

软链接类似 windows 中的快捷方式,通过软链接我们可以访问到原文件。

硬链接相当于给原来的文件起一个别名。

这里入门只需做一个基本的认识即可,要彻底理解,需要对 linux 的文件系统有基本的认识才行。

6. mkdir 用于创建目录

mkdir dir
mkdir -p dir/dir2/dir3

7. file 用于查看文件类型

file test.txt 
test.txt: ASCII text

8. cat 用于查看文件内容

cat test
#加上行号
cat -n test

9. less

cat 是一次性将文件内容输出到终端,文件内容很多不方便浏览,这时可以使用 less 逐页查看

# j k 上下移动
# q 退出
less -N test

10. head tail

这两个命令用于查看文件的开头和结尾

#最后十行
tail -n 10 log_file
#开始五行
head -5 .bashrc

11. rm 用于删除文件

#删除文件
rm file 
#删除文件夹
rm -r dir
#强制删除
rm -f file
## 强制删除文件夹
rm -rf dir

12. mv 用于移动文件或者重命名文件

mv file dir
mv file file_new_name

13. cp 用于复制文件

cp hello hello_back

14. tree 用户查看目录树

#可能需要安装先
sudo apt install tree
# 打印两级目录树
tree -L 2

15. chmod 用于修改文件权限

chmod a+r file
chmod a-x file
chmod 777 file

16. chown 用于设置文件所有者和文件关联组

chown root /var/run/httpd.pid
chown runoob:runoobgroup file1.txt

查找搜索命令

1. find 用于搜索文件

find /home/book/dira/ -name "test1.txt"
find /home/book/dira/ -name "*.txt"
find /home/book/dira/ -name "dira"
find . -name "*.txt"
# 默认是当前路径
find -name "*.txt"

-name 后面跟的字符串可以使用 Linux 通配符,常见的通配符有:

* 代表任意字符(0到多个)
? 代表一个字符
[ ] 中间为字符组合,仅匹配其中任一一个字符

# s a[bcd].txt 找以a开头,且文件名以bcd中任一字符结尾的txt文件
ls a[bcd].txt

2. grep 查找文件中符合条件的字符串

#在test1.txt中查找字符串abc,-n 表示显示行号
grep -n "abc" test1.txt
#当前目录下递归查找字符串
grep -R "abc" .

文件压缩命令

tar 用于打包压缩和解压

-c(create):表示创建用来生成文件包 。
-x:表示提取,从文件包中提取文件。
-t:可以查看压缩的文件。
-z:使用 gzip 方式进行处理,它与 "c" 结合就表示压缩,与 "x" 结合就表示解压缩。
-j:使用 bzip2 方式进行处理,它与 "c" 结合就表示压缩,与”x“结合就表示解压缩。
-v(verbose):详细报告 tar 处理的信息。
-f(file):表示文件,后面接着一个文件名。 
-C <指定目录> 解压到指定目录。

把目录 dira 压缩、打包为 dira.tar.gz 文件
tar -czvf dira.tar.gz dira
#解压到当前目录
tar -xzvf dira.tar.gz
#解压到 /home/book
tar -xzvf dira.tar.gz -C /home/book

网络管理相关命令

1. ping 用于测试主机之间网络的连通性

ping www.baidu.com

2. wget 用于在网络上下载文件

wget http......

3.curl 用于在网络上下载文件

curl http......

4.ifconfig 用于查看网络情况

ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.28  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fd49:caa5:57ad::d75  prefixlen 128  scopeid 0x0<global>
        inet6 fd00:f484:8d54:d280:d933:bf40:7740:a341  prefixlen 64  scopeid 0x0<global>
        inet6 fd49:caa5:57ad:0:d933:bf40:7740:a341  prefixlen 64  scopeid 0x0<global>
        inet6 fd49:caa5:57ad:0:c026:65bf:38cc:3943  prefixlen 64  scopeid 0x0<global>
        inet6 fd00:f484:8d54:d280:3e48:f8ff:abb0:a14a  prefixlen 64  scopeid 0x0<global>
        inet6 fe80::d938:3bb3:82a1:5823  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:35:84:45  txqueuelen 1000  (Ethernet)
        RX packets 117589  bytes 25633504 (25.6 MB)
        RX errors 0  dropped 954  overruns 0  frame 0
        TX packets 59559  bytes 16040356 (16.0 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 57065  bytes 14426471 (14.4 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

软件安装相关命令

搜索软件

sudo apt search 关键字

安装软件

sudo apt install 软件包名

卸载软件

#卸载软件
sudo apt remove 软件包名
#卸载软件并删除配置文件
sudo apt remove 软件包名 --purge
#卸载软件并移除软件依赖
sudo apt autoremove 软件包名

软件更新

sudo apt upgrade 软件包名
# 升级所有可以升级的软件
sudo apt upgrade

系统管理相关命令

useradd 用于添加用户

useradd hello

passwd 用于设置或者修改用户密码

passwd hello

userdel 用于删除用户

# -r 选项可以删除用户家目录
sudo userdel username

usermod 用来修改用户帐号的各项设定

#最常用于将用户加入指定的组
#将用户myfreax添加到games组
#应该始终使用-a追加选项。如果省略-a选项,则用户将从-G选项之后未列出的组中删除
sudo usermod -a -G games myfreax

free 用于查看系统内存

free -m #以 MB 为单位
free -g #以 GB 为单位

whoami 用于查看当前用户名

ps 用于查看进程信息

ps -a #查看所有进程
ps -e #查看除内核以外的所有进程
ps -f #全格式输出

top 动态查看进程信息

kill 手动关闭

kill 1234 #后面跟pid

shutdown 用于关机

vim 的基本使用

很多人不习惯在命令行下编辑文件,实际开发中也不会经常在命令行下编辑文件。但是在 Linux 系统中对文件做些简单修改时,使用 vim 命令的效率非常高。并且在很多时候,比如现场调试时,并没有 GUI 形式的编辑工具,vim 是唯一选择。

vim 编辑器有三种模式,各个模式侧重点不一样:

  • 一般模式(光标移动、复制、粘贴、删除)
  • 编辑模式(编辑文本)
  • 命令行模式(查找和替换)

vim 编辑器的三种模式间切换如下图所示:

当不知道处于何种模式时,按 ESC 键返回到一般模式

场景实操

Ubuntu 搭建 Samba 服务器

sudo apt install samba

修改 /etc/samba/smb.conf,添加如下内容:

[Project]
        comment = project
        path = /home/zzh0838/Project
        browseable = yes
        writable = yes

后续操作:

sudo smbpasswd -a username
sudo systemctl restart smbd
sudo systemctl enable smbd

Window ssh 免密登录 Ubuntu

# 生成公钥
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub

将公钥文件的内容拷贝到 ubuntu 的 ~/.ssh/authorized_keys 中

重启 ssh 服务

systemctl restart sshd

Ubuntu 虚拟机挂载新磁盘

# 查看磁盘情况
sudo fdisk -l

# 分区
sudo fdisk /dev/sdb

Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

The old ext4 signature will be removed by a write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x980ef849.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-2147483647, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-2147483647, default 2147483647): 

Created a new partition 1 of type 'Linux' and of size 1024 GiB.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

# 格式化
sudo mkfs -t ext4 /dev/sdb

# 挂载
sudo mount /dev/sdb /home/zzh0838/Aosp

sudo chmod -R 777 /home/zzh0838/Aosp

配置系统启动自动挂载

# 查询 uuid
sudo blkid /dev/sdb
sudo vim /etc/fstab

UUID=7eb32ab5-4e67-477d-a78c-1be16cf65e48 /home/zzh0838/Aosp ext4 defaults 0 2

这里配置的含义如下:

  • UUID 为硬盘分区的 UUID 值
  • 路径 为挂载的目标路径
  • 分区格式 这里一般为 ext4
  • 挂载参数 一般为默认 defaults
  • 备份 0为不备份, 1为每天备份,2为不定期备份
  • 检测 0为不检测,其他为优先级
下载说明:
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.dandroid.cn/20373,转载请注明出处。
0

评论0

显示验证码
没有账号?注册  忘记密码?