Linux---基础篇学习记录

   安装了Ubuntu系统之后,好多命令在摸索的过程中已经会了,但是很不系统。回想刚开始从Windows切换到Linux命令行操作的棘手,进入一个目录可能就很尴尬,一点点的百度,理论第一次运用于实践有时还是很有些尴尬。这里开始慢慢记录并不断更新一些 “ Linux基础”内容。

目录

一、cd 命令 -----------【切换路径】
二、ls 命令 -----------【列出所有文件信息】
三、du 命令 -----------【显示X的大小、显示指定的X所占磁盘空间】
四、rm 命令 -----------【删除文件或文件夹】
五、cat 命令 ----------【读取文件内容并打印到设备上、拼接文件】
六、mkdir 命令---------【创建文件夹】
七、chmod 与 chown 命令【改变文件权限 与 改变文件所有者】
八、locate 与 find 命令【查找某一个文件】
九、cp 与 mv 命令------【复制X 与 改名X、将X移位】
十、kill 与 ps 命令----【查看进程 与 删除执行中的程序或工作】
十一、tar,zip 与 unzip【文件压缩 与 解压缩命令】
十二、pwd 命令 --------【显示工作目录】
十三、apt-get 命令 ----【搜索、安装、升级、卸载】
十四、ssh 与 scp ----- 【远程操作】

正文

一、cd 命令 

cd = change directory 缩写

1
、打开当前目录的下一个路径   cd <路径名>   cd ./<路径名> 2、切换道上一层路径
  cd ../

3、切换到上一次使用的路径
  cd -

4、切换到根目录
  cd /


二、ls 命令

ls = list 的缩写
命令格式:ls
<参数> <路径>
ls 命令后面可以跟一个路径或参数,也可以不跟,表示列出路径或当前目录下的所有文件信息。
最常用的的参数是“
-l",也就是“ls -l”命令。
1、显示 根目录下的所有文件及文件夹
  ls /

2、显示 /11 路径下的所有文件及文件夹的详细信息   ls
-l /11

3、统计当前目录下面的文件数量,* 表示所有文件,根据实际使用情况可以灵活使用   ls * | wc

4、按照时间排序,添加 -a 参数,可以查看隐藏文件
  ls -t

 三、du 命令

作用:
1、用于显示目录或文件的大小。
2、
显示指定的目录或文件所占用的磁盘空间。
命令格式:du <参数> <路径>

最常见的用法是添加-h 命令可以用于查看使用空间。按照人们熟悉的 K、M、G 的方式来显示大小。
参数说明:-h或--human-readable 以K,M,G为单位,提高信息的可读性。

1、,显示当前目录下所有文件及其大小   du
-h *

2、筛选出大小超过1024Byte 的文件。 -t 就是指定阈值,以Byte 为 单位,常用于查看当前目录下的大文件。   du -h -t 1024

3、显示目录或者文件所占空间
  du
只显示当前目录下面的子目录的目录大小和当前目录的总的大小,最下面的XXX为当前目录的总大小

4、显示指定文件所占空间
  du <指定文件所名>

5、以方便阅读的格式,显示<目录名>所占空间情况
  du -h <目录名>

 

 四、rm 命令

rm = remove 的缩写。

作用: 用于删除文件或文件夹,常用参数-r -f。

命令格式: rm <文件> 或 rm -r <文件夹>

-r 表示删除目录,也可以用于删除文件;
-f 表示强制删除,不需要确认。
同样的,删除文件前需保证当前用户对当前路径有修改的权限。

参数:
    -i 删除前逐一询问确认。
    -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
    -r 将目录及以下之档案亦逐一删除。

1、删除文件可以直接使用rm命令:
    rm abc.txt     //删除test.txt文件

2、删除文件夹则必须配合选项"-r":
    rm -r 33 
    rm -rf 33     //删除33文件夹

3、删除当前目录下的所有文件及目录,命令行为:
    rm  -r  * 

注意:
1、文件通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令。
2、rm操作要慎用,尤其是注意后面的目录,类似于 sudo rm –rf / 这样的操作,会让你体会到什么叫绝望。

 

五、cat 命令

cat = concatenate 的缩写。

作用: 
1、读取文件内容及拼接文件。
2、连接文件并打印到标准输出设备上。

(1)命令格式: cat <文件>
1、显示当前路径下test.txt 文件内容到终端。
    cat test.txt 

2、合并1.txt,2.txt 的内容到combine.txt
    cat 1.txt 2.txt >combine.txt 

(2)命令格式: cat <参数> <文件>
参数说明:
-n 或 --number:由 1 开始对所有输出的行数编号。
-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的

空白行。
-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
...

1、把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:
  cat -n textfile1 > textfile2

2、把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里:
  cat -b textfile1 textfile2 >> textfile3

3、清空 /etc/test.txt 文档内容:
  cat /dev/null > /etc/test.txt

4、cat 也可以用来制作镜像文件,也可以把 image file 写到软盘。
  (略)

 

 

 

 六、mkdir 命令

mkdir = make directory 的缩写。

作用:用于创建文件夹。创建文件夹前需保证当前用户对当前路径有修改的权限。

命令格式: mkdir <参数> <文件夹>

参数说明:
    -p 用于创建多级文件夹。确保目录名称存在,不存在的就建一个。

1、在当前目录下,建立一个名为 AAA 的子目录:
    mkdir AAA

2、在/data 路径下创建path 文件夹:
      # mkdir /BBB/ccc 会报错
    mkdir ./BBB/ccc   
    mkdir BBB/ccc

3、在工作目录下的 BBB 目录中,建立一个名为 Test 的子目录。 若 BBB 目录原本不存

在,则建立一个。(注:本例若不加 -p,且原本 BBB目录不存在,则产生错误。)
    mkdir -p CCC/ddd

4、在当前路径下新创建文件夹a,而a包含子文件夹b,b下又包含子文件夹c:
    mkdir -p QQQ/eee/111

 

 

七、chmod 与 chown 命令

Linux/Unix 的文件调用权限分为三级 : 文件拥有者、群组、其他。

作用:
1、chmod 用于改变文件权限,控制文件如何被他人所调用
2、chown 用于改变文件所有者
 
************************ 【 chmod 】 ************************ 
chmod语法:chmod [-cfvR] mode file
参数说明
mode : 权限设定字串,格式如下 :
[ugoa...][[+-=][rwxX]...][,...]
其中:
    u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
    + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
    r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。

其他参数说明:
    -c : 若该文件权限确实已经更改,才显示其更改动作
    -f : 若该文件权限无法被更改也不要显示错误讯息
    -v : 显示权限变更的详细资料
    -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)

1、将文件 file1.txt 设为所有人皆可读取 :
    chmod ugo+r file1.txt 或者 chmod a+r file1.txt

2、将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
    chmod ug+w,o-w file1.txt file2.txt

3、将 ex1.py 设定为只有该文件拥有者可以执行 :
    chmod u+x ex1.py

4、将目前目录下的所有文件与子目录皆设为任何人可读取 :
    chmod -R a+r *

另外,chmod 用数字来表示权限
(1)chmod 命令格式:chmod abc file
其中a,b,c 各为一个数字,分别表示User、Group 及Other 的权限。
r 表示可读取,w 表示可写入,x 表示可执行, r=4,w=2,x=1
若要rwx 属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x 属性则4+1=51、将文件权限设置为:User 拥有可读取,可写入,可执行权限;Group 拥有可读取,可写入,可执行权限;Other 拥有可读取权限
    chmod 774 file.txt 

2、效果相同
    chmod 777 file 和 chmod a=rwx file
    chmod 771 file 和 chmod ug=rwx,o=x file

3、使此程序具有root的权限
    chmod 4755 filename

4、chmod能改变权限,-R是目录下所有文件,777就是高权限(读、写、执行).
将当前目录下所有文件都给予777权限:
chmod -R 777 *  
注意:千万别用chmod -R 777 /,使用chmod的时候一定要确认好了,很容易把chmod -R 777 ./ 敲成 chmod -R 777 / ,后果不敢设想。
误操作 chmod -R 777 / ,会导致系统中的大部分服务以及命令无法正常使用。 5文件夹右小角有锁,则普通用户就不能操作该文件夹。 解锁带锁的文件:sudo chmod -R 777 路径(文件夹或文件) 删除带锁的文件: sudo rm -rf 文件名 6文件解锁1虽然 sudo chmod -R 777 也可以解锁,但是可能会对你的文件夹造成损伤,会使得原来的文件的权限发生变化,有风险!!!2)还可以使用命令改变文件的组用户:sudo chown 你的用户名 文件名 sudo chown usrname file -R #只是改变file这个文件夹的Group,里边的文件或者文件夹还是有锁的 sudo chown usrname file/ -R #改变file这个文件夹的Group,以及里边的文件或者文件夹的锁 其中,usrname为你的用户名,file为你的需要解锁的文件。
3)可以把它拷贝到有windows的电脑上……呵呵,这样当然可以,linux下的权限什么的自然全消失。 ************************ 【 chown 】 ************************ Linux/Unix 是多人多工操作系统,所有的文件皆有拥有者。利用 chown 将指定文件的拥有者改为指定的用户或组, 用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。 一般来说,这个指令只有是由系统管理者(root)所使用,
一般使用者没有权限可以改变别人的文件拥有者,也没有权限把自己的文件拥有者改设为别人。 只有系统管理者(root)才有这样的权限。 语法:chown [
-cfhvR] user[:group] file 参数 : -c : 显示更改的部分的信息 -f : 忽略错误信息 -h :修复符号链接 -v : 显示详细的处理信息 -R : 处理指定目录以及其子目录下的所有文件 user : 新的文件拥有者的使用者 ID group : 新的文件拥有者的使用者组(group) chown 常用命令格式: chown 用户 文件 1、将文件file1.txt 的拥有者设为wp: chown wp file1.txt 2、将目前目录下的所有文件的拥有者设为wp: chown -R wp * 3、将文件 file1.txt 的拥有者设为 runoob,群体的使用者 runoobgroup : chown runoob:runoobgroup file1.txt 4、将目前目录下的所有文件与子目录的拥有者皆设为 runoob,群体的使用者 runoobgroup: chown -R runoob:runoobgroup *

 八、locate 与 find 命令

locate与find 相同: 
locate,find,用于查找某一个文件。

locate与find 不同: 
1、find 是去硬盘找,locate 只在/var/lib/slocate资料库中找。
2、locate的速度比find快,它并不是真的查找,而是查数据库,
一般文件数据库在/var/lib/slocate/slocate.db中,所以locate的查找并不是实时的,

而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库。

(1)locate命令用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查

找合乎范本样式条件的文档或目录。
一般情况我们只需要输入: locate your_file_name ,即可查找指定文件。


(2)find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查

找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目

录与文件。并且将查找到的子目录和文件全部进行显示。 


1、在系统中查找文件filename:
    locate filename

2、在指定路径下,查找指定文件:
    find path -name <文件匹配符>

3、将目前目录(用.表示相对路径)及其子目录下所有后缀为c 的文件列出来:
    find . -name "*.c" 

 

 九、cp 与 mv 命令

cp = copy 的缩写。
mv = move 的缩写。

作用:
1、cp 用于复制文件或文件夹。
2、mv 用来为文件或文件夹改名 / 将文件或文件夹移入其它位置。

(1)cp 命令格式: 
    cp <文件> <目标文件> 或者cp -r <文件夹> <目标文件夹>
参数说明:
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。 

1、复制/data 路径下的log.txt 到/data/local/tmp路径下,仍然叫log.txt。
    cp ./data/log.txt ./data/local/tmp/ 

2、复制/data 路径下的log.txt 到/data/local/tmp 路径下,并改名为log2.txt。
    cp ./data/log.txt ./data/local/tmp/log2.txt 

3、复制文件夹时,必须使用参数"-r"或者"-R"。添加 -r 可以拷贝文件夹,使用指

令"cp"将当前目录"test/"下的所有文件复制到新目录"newtest"下:
    cp -r test/ newtest 


(2)mv 命令格式: 
mv <文件名1> <文件名2> : 将源文件名1改为目标文件名2
mv <文件名 > <目录名 > : 将文件移动到目标目录
mv <目录名1> <目录名2> : 目标目录已存在,将源目录移动到目标目录;目标目录不存

在则改名
mv <目录名 > <文件名 > : 出错

1、将文件 aaa 更名为 bbb :
    mv aaa bbb

2、将info目录放入logs目录中。
   注意,如果logs目录不存在,则该命令将info改名为logs:
    mv info/ logs 

3、将/usr/student下的所有文件和目录移到当前目录下,命令行为:
    mv /usr/student/*  . 

4、如果:dst是文件,则是重命名;dst是目录,则是移动。
    mv src dst

 

 

十、kill 与 ps 命令

作用:kill命令用于删除执行中的程序或工作。
kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或jobs指令查看。

命令格式:kill <PID码>

1、先查看进程,找到需要终止进程的PID
    ps au 

2、再通过kill PID 即可:
    kill <PID码>

3、如想要终止的进程是vim test.py,查到的PID 是3163,可以输入kill 3163 结束这个程序;如果结束不了,可以通过kill -9 PID 码强制结束,即kill -9 3163

 

 十一、文件压缩 与 解压缩命令

文件压缩与解压缩命令:tar,unzip

(1) tar 命令
1、用于压缩: tar -cvf  test.tar test 
            tar -czvf test.tar.gz  test //压缩文件 非打包

2、用于解压: tar -xvf  test.tar 
            tar -xzvf test.tar.gz 

3、列出压缩文件内容:tar -tzvf test.tar.gz 

(2) zip 与 unzip 命令
1、用于解压: unzip test.zip 

2、用于压缩: zip -r test.zip test

 

 

十二、pwd 命令

pwd命令:用于显示工作目录。

1、执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。

十三、apt-get 命令

apt-get = Advanced Package Tool的别名 

作用:搜索、安装、升级、卸载 ,对比于源码安装,实在是业界良心。

apt-get指令管理安装包,常用用法:
sudo apt-get install XXX
sudo apt-get install -y XXX
sudo apt-get install -q XXX
sudo apt-get remove XXX
sudo apt-get purge XXX
sudo apt-get autoremove
sudo apt-get update
sudo apt-get upgrade

详细解释: (
1)apt-get install 一键安装软件包,与源码安装不同的是,这个指令会自动检测并安装依赖,而且用apt-get安装的包都是成熟的软件包,基本不存在安装包有严重bug或者文件缺失的情况。 (2)sudo apt-get install -y 这里主要将的就是 -y 选项,添加这个选项就相当于不需要重复地确认安装。 (3)sudo apt-get install -q 即-quiet,静默安装,当然也不是完全静默,会将低等级的 log 信息屏蔽。 (4)sudo apt-get remove 既然有安装就会有卸载,remove指令就是卸载,值得注意的是,remove仅仅卸载软件,但是并不卸载配置文件。5)sudo apt-get purge 卸载指令,卸载软件 + 卸载配置文件6sudo apt-get autoremove 慎用!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 关于这条指令,卸载软件 + 卸载当初依赖现在不需要的文件(在卸载软件的时候同时卸载那些当初作为依赖但是现在并不需要的包看起来非常完美的指令,但是博主建议慎用!!
这条指令很可能将你要用的依赖包同时卸载,有时候你的安装包并没有通过apt
-get指令来管理,apt-get管理工具不会加入这些包的信息,所以在检索包的依赖关系时可能出问题. 又或者是另一种情况:举个例子:在安装某个包时,这个包依赖git,但是git并非你主动下载的,而是作为依赖下载的,包安装完之后系统可能就会提示git作为依赖不再需要使用,
它并不知道你是不是正在使用这个软件包。 (
7)apt-get update 将所有包的来源更新,也就是提取最新的包信息,这一条我们经常使用到。 (8apt-get upgrade 这条指令一般执行在apt-get update之后,它的作用是将系统中旧版本的包升级成最新的,慎用!!!!!!!!!!!!
因为在linux下,由于大部分为非商业软件,所以稳定性并没有得到很好的验证,升级到最新版本需要十分慎重!

 十四、ssh 与 scp  远程操作 

ssh = Secure Shell 的缩写,为建立在应用层基础上的安全通信协议。
scp = secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。

作用:
1、ssh 远程服务器连接
2、scp 远程和本地机器文件拷贝
    scp 命令用于 Linux 之间复制文件和目录。scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。

说明:
1、Ubuntu系统默认是没有SSH服务的,一般顺序:检查SSH服务是否已安装、SSH服务安装

、SSH远程登录以及SSH数据传输。
2、完成SSH服务配置之后即可实现基于SSH的数据传输,最常用方便的指令便是scp。
    scp的通用指令格式为:scp [参数] [原路径] [目标路径]
    其中-r参数意为:递归复制整个目录

使用示例:
1、以studyer 身份登陆139.199.110.12 服务器:
ssh studyer@139.199.110.12 

2、将当前目录下的
tmp.txt 拷贝到远程服务器目录/home/studyer/user1:
scp tmp.txt studyer@139.199.110.12:/home/studyer/user1

3、将远程服务器目录/home/studyer/user1 下的文件tmp.txt 拷贝到当前目录:
scp studyer@139.199.110.12:/home/studyer/user1/tmp.txt . 

 

十五、其他

 

@ https://www.runoob.com/linux/linux-comm-du.html   菜鸟教程

原文地址:https://www.cnblogs.com/carle-09/p/12564421.html