linux基础命令

        在终端中执行命令需要遵照一定的语法,输入命令的格式如下。

命令 参数
命令 ‐选项 参数

        输入命令时可以包含多个选项,假如一个命令有 -a、-b、-c、-d 四个选项,可以写作:

命令 ‐a ‐b ‐c ‐d 参数

        这里多个选项可以“提前公因式”,写作:

命令 ‐abcd 参数

        这里会把-abcd当成 -a、-b、-c、-d四个选项。

        如果一个单词(多个字母)作为一个选项使用,要使用两个“--”。

[root@jiayi ~]# ls -help
ls: 不适用的选项 -- e
请尝试执行 "ls --help" 来获取更多信息

        这里会把--help当成4个选项:-h、-e、-l、-p,报错信息使没有-e选项。但是我们知道help是一个单词,应该作为一个选项出现,所以前面应该是两个“--”。

[root@jiayi ~]# ls --help
用法:ls [选项]... [文件]...

        我们先看几个常见命令的使用。

        第一个命令是ls,ls的作用是列出一个目录中的内容

[root@jiayi ~]# ls
公共  模板  视频  图片  文档  下载  音乐  桌面  anaconda-ks.cfg  initial-setup-ks.cfg  jiayi

        ls命令也可以在后面加参数来查看参数的目录

[root@jiayi ~]# ls /
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

        这里ls并没有加任何参数,表示显示当前所在的目录内容。如何查看当前所在目录呢?可以使用pwd命令。

[root@jiayi ~]# pwd
/root

        ls命令可以加上一个 -a 选项,表示列出所有的内容,包括隐藏文件。

[root@jiayi ~]# ls -a
.     模板  文档  桌面             .bash_logout   .cache   .dbus          initial-setup-ks.cfg  .pki
..    视频  下载  anaconda-ks.cfg  .bash_profile  .config  .esd_auth      jiayi                 .tcshrc
公共  图片  音乐  .bash_history    .bashrc        .cshrc   .ICEauthority  .local                .Xauthority

        在Linux中,所有以 “ . ” 开头的文件都是隐藏文件。

        ls命令可以加上一个 -l(字母 l 不是数字 1)选项,表示以长模式的形式展示。

[root@jiayi ~]# ls -l /boot/config-4.18.0-348.el8.x86_64 
-rw-r--r--. 1 root root 193903 10月  4 2021 /boot/config-4.18.0-348.el8.x86_64

        ls命令识别大小可以加上-h选项

[root@jiayi ~]# ls -lh /boot/config-4.18.0-348.el8.x86_64 
-rw-r--r--. 1 root root 190K 10月  4 2021 /boot/config-4.18.0-348.el8.x86_64

        加上-h选项之后,会以更适合阅读的单位来显示。

        在ls后如果以目录作为参数,则显示的是这个目录中的内容,如果想显示这个目录本身的

属性,需要加上 -d 选项。

[root@jiayi ~]# ls -lhd /boot/
dr-xr-xr-x. 5 root root 4.0K 11月 28 01:18 /boot/

        有人会有疑问,/boot中那么多东西,怎么才是4.0K?

        因为这里仅显示了/boot目录本身的属性,并不包括目录里面内容的大小。例如,一个口袋重1斤,装了500斤重的石头,口袋的重量仍然是1斤

        如果想显示目录及里面内容的总大小,则可以使用du命令。

[root@jiayi ~]# du -sh /boot
188M    /boot

        1. -h选项是以跟适合阅读的单位来显示。

        2. -s选项是摘要信息,只显示目录总大小,不显示子目录的大小,这里可以看到/boot 及里面内容的总大小为188M。

        下面介绍其它命令的使用。

        直接输入date命令,可以显示日期和时间。

[root@jiayi ~]# date
2023年 11月 29日 星期三 22:02:38 EST

        显示日历信息,用法是“cal 月 年”,例如,显示2024年7月的日历。

[root@jiayi ~]# cal 7 2024
      七月 2024     
日 一 二 三 四 五 六
    1  2  3  4  5  6
 7  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

        如果不加月、年,则显示今年、本月的日历。

        whoami命令可以显示当前是哪个用户在登录。

[root@jiayi ~]# whoami
root

        命令行中的计算器是bc,bc加上-q选项,是以简洁模式显示。在bc中输入要计算的表达式。按【Enter】键即可。

[root@jiayi ~]# bc -q
5+1
6

5/2
2

        这里计算5/2得到的值应该是2.5,但是答案却是2,因为默认情况下bc中并不保留小数点 之后的部分。如果想保留小数点之后的部分,需要通过scale=N指定需要保留小数点之后的多少位,这里N是一个数字。例如,要保留小数点之后的2位,可以写出scale=2

scale=2
5/2
2.50
quit

        如果已经输入了某个命令,不想执行该命令,可以按【Ctrl+C】组合键终止命令。

[root@jiayi ~]# ls ^C

        在终端中输入命令,必须对它进行解悉/解析,这个解释器就是shell,shell是一种进程。Linux支持很多种shell。

[root@jiayi ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash

        这里cat的意思是查看一个文本文件的内容,Linux默认使用的shell是bash。并且和cat相像的命令还有move、less意为分页查看

        在Linux中输入命令时不能简写,必须完整。先输入几个字符,例如,这里先输入“hi”,如果有以hi开头的命令,再按【Tab】键。

[root@jiayi ~]# history 

        如果有多个命令都是以输入的字符开头的,那么需要按两次【Tab】键,就可以把所有以这些字符开头的命令显示出来

[root@jiayi ~]# h
halt          hardlink      hciconfig     hdparm        hex2hcd       host          hostnamectl   hypervfcopyd  
handle-sshpw  hash          hcidump       head          hexdump       hostid        hunspell      hypervkvpd    
hangul        hciattach     hcitool       help          history       hostname      hwclock       hypervvssd 

        想查看前期输入过的命令,可以执行history命令。

[root@jiayi ~]# history 
    1  ll -l
    2  ls
    3  mkdir
    4  mkdir jiayi

        此时可以按键盘上的上,下箭头来调用历史命令中的那些命令。

        支持history -c命令可以清除所有历史命令。

        在Linux中,管理用户是root,在终端中的提示符是#。root的权限很大,为了防止误操作,平时尽量使用普通用户登录,普通用户登录的提示符是$

        但有时普通用户登录时,会遇到权限不够的情况,例如,执行下面的命令。

[jiayi@jiayi ~]$ mount /dev/cdrom /mnt/
mount: 只有 root 能执行该操作

        su命令可以从当前用户切换到其他用户,su的用法如下。

su 用户名
su ‐ 用户名 #注意“ ‐ ”两边是有空格的

        如果后面没有跟用户名,则默认为root。这里带“ - ”和不带“ - ”的区别在于切换用户之后的环境变量不一样,关于环境变量后面讲到脚本时会讲,区别如下。

[jiayi@jiayi ~]$ whoami
jiayi
[jiayi@jiayi ~]$ pwd
/home/jiayi

        这里当前用户时blab用户,所在目录是blab的家目录/home/jiayi。下面通过su root切换到root用户,注意这里su后面没有“ - ”。

[jiayi@jiayi ~]$ su
密码:
[root@jiayi jiayi]# whoami
root
[root@jiayi jiayi]# pwd
/home/jiayi

        这里通过 su 命令已经切换到 root 用户了,因为 su 后面没有加“ - ”,所以切换之后所在目录并没有发生任何改变,仍然是在/home/jiayi中的。这样即使切换到root用户了,使用仍然是jiayi用户的PATH变量。

[root@jiayi jiayi]# echo $PATH
/home/jiayi/.local/bin:/home/jiayi/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin

        下面回退到jiayi用户

[root@jiayi jiayi]# exit
exit
[jiayi@jiayi ~]$ echo $PATH
/home/jiayi/.local/bin:/home/jiayi/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin

        可以看到,环境变量是一样的,再次查看当前用户及所在目录。

[jiayi@jiayi ~]$ whoami
jiayi
[jiayi@jiayi ~]$ pwd
/home/jiayi

        下面使用su -root切换到root用户,注意这里 su 后面有“ - ”。

[jiayi@jiayi ~]$ su - root
密码:
[root@jiayi ~]# whoami
root
[root@jiayi ~]# pwd
/root

        可以看到,现在已经切换到 root 用户了,且所在目录也变成了 root 的家目录 /root。此时使用的是root用户的PATH变量。

[root@jiayi ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

su后面不加用户名,默认就是root,所以 su - 和 su - root 相同。su和su root相同。root用户su命令切换到任何用户都不需要输入密码。

你可能感兴趣的:(linux)