Linux:终端操作及常用配置

1 shell命令

  linux的命令是在终端窗口中执行,这些在终端中执行的命令被称之为shell命令,将多个shell命令按照一定的格式放入文本中被称之为shell脚本;

  1.1文件操作

    1.1.1 查找文件

# 格式:ls -[参数]
# 作用:list,按参数格式列出当前目录的所有文件;
ls -a        #-all:列出所有的文件以及子目录,包括以“.”开头的隐藏文件;
ls -A        #-all:同上,但是不列出“.”(当前目录)和“..”(父目录);
ls -l        #-list:列出当前目录的所有文件,并附带文件的详细信息;      
ls -t        #-time:将文件按照时间顺序列出,但是不会显示时间;
ls -R        #-recursion:递归列出当前目录的所有文件;       
# 格式:cd [路径]
# 作用:change directory,改变当前目录;
cd ..        #改变目录为父目录;
cd ~         #改变目录为当前用户目录;
cd /usr      #改变目录为/usr目录;

    创建新用户时,linux会默认为新用户在/home/下创建一个用户目录,该用户只拥有当前目录的所有权限;

find -name vim*          #查找当前目录下以vim开头的文件
find -name vim*  /etc/   #查找/etc/目录下以vim开头的文件
grep -r "ubuntu"  /usr   #递归查找/usr目录下文本内容包含"ubuntu"的文件;global regular expresstion print;
pwd             #print work directory,打印当前工作目录的绝对路径;
uname -rso      #查看当前系统的内核信息;

    1.1.2 创建文件

touch test        #创建文本文件test
mkdir dirtest     #创建文件夹dirtest

    1.1.3 打开文件

# 格式:cat -[参数] [路径]
# 作用:catenate,打开路径位置所在的文本文档
cat -n test      #打开当前目录下的test文本,并对文本行数进行标号

    1.1.4 复制文件

cp test1.c  test2.c        #复制test1.c的内容到test2.c中;
cp *.c   ../dirtest        #复制当前目录下的所有.c文件到../dirtest文件夹下;

    1.1.5 移动文件

mv test1.c      test2.c        #将test1.c移动到test2.c,相当于重命名成test2.c;
mv test.c    ../dirtest        #将test.c移动到../dirtest文件夹下;

    1.1.6 删除文件

rm test           #删除文本文件test
rm -r dirtest     #递归删除文本文件test 
rmdir dirtest     #删除文件夹dirtest

  1.2 权限操作

#格式: sudo chown  [to用户名.组名]   [from文件]
#作用:change owner 修改文件的所属用户,所属用户组;
sudo chown root.root  hello     #修改hello文件的用户为root,用户组为root;
#格式:sudo chmod  [权限]  [from文件]
#作用:change mode;修改文件的创建用户、所在用户组的用户、其他用户组的用户、的权限;
sudo chmod 666 test        #修改当前路径的test文件的权限为所有用户都可读写;
#格式:sudo [shell命令]
#作用:super user do,以root用户的权限来执行命名;
sudo adduser usertest        #以root用户的权限来创建新的用户usertest;
sudo su cae    #super user do switch user ,切换root用户为cae用户;
sudo -l        #list , 列出当前用户可执行与不可执行的命令;
sudo -h        #help ,显示帮助信息;

  1.3 ls -l 文件的权限说明和文件类型

d rwx r-x r-x 2 cae cae 4096 3月19 14:16 桌面

#d:表示"桌面"的文件类型为目录文件;
#rwx:表示文件拥有者的权限;read write execute;进制表示为0b111,即0x7;
#r-x:表示所在用户组的其他用户的权限;read - execute;进制表示为0b101,0x6;
#r-x:表示其他用户组的用户的权限;read - execute;进制表示为0b101,0x6;
#cae:表示文件拥有者;
#cae:表示所在用户组;
#具有x可执行权限的文件,可以看做一个软件
ls -l #返回列表的第一个字符表示文件类型;

#- :普通文件,一些应用程序创建的,比如文档、图片、音乐等;
#d : directory 目录文件
#c : char device字符设备文件
#b : block device块设备文件
#l : link 符号连接文件,相当于 Windwos 下的快捷方式
#s : 套接字文件
#p : pipe 管道文件,主要指 FIFO 文件

   1.4 开关机

man cd        #查看终端命令手册man,关于cd的用法部分;man [命令]:查看[命令]的使用说明
poweroff      #关闭系统
reboot        #重启系统

2 压缩打包

  2.1 linux下常用压缩格式为.bz2 和.gz格式,但是gzip和bzip2命令都只对单个文档进行压缩,并不对多个文档所在的文件夹进行归档打包成一个压缩文档;

    使用zip命令可以对多个文档所在的文件夹进行压缩打包;

#格式: gzip  -[参数]  [to 目标文件]  [from原文件]
#作用:使用gzip格式压缩原文件为目标文件,原文件不保留;
gzip a.c             #压缩a.c文件为a.c.gz,a.c文件不保留;
gzip -r dirzip         #压缩dirzip文件夹内的所有文件为.gz格式,原文件不保留,此处的dirzip还是一个文件夹,只是文件夹内的文件压缩了;
gzip -d a.c.gz         #-decompress 解压缩a.c.gz文件为a.c文件,原文件不保留;
gzip -dr  dirgzip       #解压缩文件夹dirgzip内的文件,原文件不保留;
#格式:bzip2  -[参数]  [目标文件] 
#作用:以bzip2格式处理目标文件;
bzip2 -z a.c          #-z:compress ,压缩a.c > a.c.bz2 , 原文件不保留;
bzip2 -d a.c.bz2       #-d:decompree , 解压缩a.c.bz2 > a.c ,原文件不保留;
zip -rm test.zip dirzip        #-r recurse , -m remove ,将dirzip文件夹压缩为test.zip,并删除原文件
unzip test.zip              #解压缩test.zip文件

  2.2 tar 打包工具:tar工具提供打包服务的同时提供压缩功能;

#格式 :tar -[参数]  [to目标文件]  [from源文件]

-v        #x显示指令执行过程

-c        #create archive 创建归档,即压缩文件;
-x        #extract archive 解压归档,即解压缩文件;

-j        #以.tar.bp2格式压缩
-z        #以.tar.gz格式压缩

-f        #file archive创建归档文件;
# -z  .gzip格式
tar -vczf test.gz dirzip        #将dirzip文件夹以.gzip格式,压缩打包为test.gz;
tar -vxzf test.gz               #将test.gz文件夹以.gzip格式,解压缩;
#  -j    .bzip2格式
tar -vcjf test.bz2 dirtest        #将dirtest文件夹以.bzip2格式,压缩为test.bz2
tar -vxjf test.bz2                #将test.bz2文件以.bzip2格式,解压缩;

3 APT工具:advanced packaging tool

  作用:可以连接到Linux的服务器,通过apt命令下载源码后,自行编译成软件,并安装;

sudo apt-get update           #与服务器上的软件包进行对比,返回需要更新的软件包
sudo apt-get check            #查看本地软件包的依赖关系
sudo apt-get install 软件名    #从服务器下载安装该软件
sudo apt-get upgrade 软件名    #从服务器更新该软件
sudo apt-get remove 软件名     #从当前系统卸载该软件

 4 VIM编辑器

  vim编辑器有三种模式可以编辑操作;

  4.1 只读模式:输入均为操作命令,主要用来删除内容;

#vim编辑器打开时默认为只读模式,此时的键盘输入为操作命令
x     #删除光标所在处字符  
dd    #删除光标所在行内容
r     #替换光标所在处字符;

#以下命令为执行完操作命令后;自动转为输入模式;
i     #在光标前面输入
o     #在光标所在行的下方新建一行输入
O     #在光标所在行的上方新建一行输入

s     #删除光标所在处字符,可以在光标前面输入
cc    #删除光标所在行内容,可以在光标前面输入;

  4.2 输入模式:输入为编辑文档内容,按ESC退出输入模式,回到只读模式;

    在vim中输入模式下,光标在当前字符一闪一闪的,输入字符是输入到光标一闪一闪的前面;

  4.3 底行模式:在只读模式下输入":",进入到底行模式;按ESC退出底行模式,回到只读模式;

:w      #保存文档
:x      #保存文档并退出
:q      #退出
:q!     #不保存文档退出
:/被搜索内容    #从文本中搜索指定内容,然后把光标停在搜索结果处; 

  4.4 最后来安装和配置一下VIM编辑器

sudo apt-get install vim   #安装vim编辑器
sudo vi  /etc/vim/vimrc    #进入vim编辑器配置文件

#在文件末尾加上如下设置,可以对vim编辑器进行配置;
set  ts=4             #设置tab键为4个空格
set  nu               #设置vim显示行号
set  noexpandtab      #设置不使用空格键   

vi main.c             #用vim编辑器新建一个main.c文件并打开

5 GCC编译器

  5.1 GCC编译器属于没有操作界面的编译器,可以结合make工具用来在linux下编译C;

#格式: gcc -[参数]  [to目标文件]  [from原文件]
gcc hello.c                 #使用gcc编译hello.c文件,默认链接生成可执行文件a.out;
gcc -o hello hello.c        #使用gcc编译链接hello.c文件,并修改生成的可执行文件名为hello;
gcc -c  hello.c             #使用gcc编译hello.c文件,生成hello.o对象文件,不进行链接;

./a.out                     #执行可执行文件a.out        

6 文件系统

  windows下:FAT  NTFS  exFAT 文件管理系统;

  Linux 下的文件系统主要有 ext2、ext3、ext4 等文件系统。Linux 还支持其他的 UNIX 文件系统,比如 XFS、JFS、UFS 等
  Ubuntu 是支持多用户的,Ubuntu 为每个用户创建了一个根目录

    

Linux:终端操作及常用配置

上一篇:Linux 常用命令速查


下一篇:vim命令合集