当前位置: 首页 - 编程技术 - 文章正文

容器学习Day03-Ubuntu常用命令(一)

xiaoqihv

目录

前言

一、系统相关命令

1、sudo&passwd&su

2、uname

3、lscpu&free&ps&kill

4、ip

5、shutdown&reboot

二、目录文件相关命令

1、cd&pwd&ls

2、mkdir&rmdir

3、cp&mv&rm

4、ln

5、find

6、cat&head&tail&more

总结

前言

       刚安装好了Ubuntu的操作系统,今天来熟悉一下常用的命令,看看和CentOS区别大不大,每个命令都有很多参数,不需要记,需要时查帮助即可。

一、系统相关命令 1、sudo&passwd&su

       安装好操作系统之后,忽然想起来没有为root用户设置&密码,这个和CentOS不一样,后来发现需要通过普通用户提权来修改root用户的密码。

sudo(以系统管理员的身份执行指令)

用法:sudo 命令,让普通用户可以执行管理员执行的命令。

passwd(修改用户密码)

用法:passwd 用户名,如果不跟用户名,默认修改当前登录用户密码。

       通过sudo命令修改root密码,输完命令后,验证当前普通用户的密码后,可进行操作。

demo@docker:~$ sudo passwd root[sudo] password for demo: New password: Retype new password: passwd: password updated successfully su (切换用户)

用法:su - 用户名,普通用户切换到其他用户需要输入其他用户密码,管理员用户切换到其他用户,默认不需要输密码。whoami命令查看当前用户。

demo@docker:~$ whoamidemodemo@docker:~$ su - rootPassword: root@docker:~# whoamiroot 2、uname uname(显示系统相关信息)

用法:uname -参数,

           -a,所有信息的汇总,可以使用其他参数显示每一项信息。

           -s,显示内核名称。

           -n,显示主机名。

           -r,显示内核发行号。

           -v,显示内核版本。

           -m,显示机器硬件名字。

           -p,显示CPU类型。

           -i,显示硬件平台。

           -o,显示操作系统类型。

延伸:lsb_release -a命令可以返回操作系统版本信息。

demo@docker:~$ uname -aLinux docker 5.15.0-46-generic #49-Ubuntu SMP Thu Aug 4 18:03:25 UTC 2022 x86_64 x86_64 x86_64 GNU/Linuxdemo@docker:~$ uname -sLinuxdemo@docker:~$ uname -ndockerdemo@docker:~$ uname -r5.15.0-46-genericdemo@docker:~$ uname -v#49-Ubuntu SMP Thu Aug 4 18:03:25 UTC 2022demo@docker:~$ uname -mx86_64demo@docker:~$ uname -px86_64demo@docker:~$ uname -ix86_64demo@docker:~$ uname -oGNU/Linuxdemo@docker:~$ lsb_release -aNo LSB modules are available.Distributor ID:UbuntuDescription:Ubuntu 22.04.1 LTSRelease:22.04Codename:jammy 3、lscpu&free&ps&kill lscpu(显示CPU相关信息)

用法:lscpu,无其他参数,返回CPU相关信息。

demo@docker:~$ lscpuArchitecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Address sizes: 45 bits physical, 48 bits virtual Byte Order: Little EndianCPU(s): 2 On-line CPU(s) list: 0,1Vendor ID: GenuineIntel Model name: Intel(R) Core(TM) i5-7400 CPU @ 3.00GHz CPU family: 6 Model: 158 Thread(s) per core: 1 Core(s) per socket: 1 Socket(s): 2 Stepping: 9 BogoMIPS: 6000.00 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable n onstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpu id_fault invpcid_single pti ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves arat md_clear flush_l1d arch_c apabilitiesVirtualization features: Hypervisor vendor: VMware Virtualization type: fullCaches (sum of all): L1d: 64 KiB (2 instances) L1i: 64 KiB (2 instances) L2: 512 KiB (2 instances) L3: 12 MiB (2 instances)NUMA: NUMA node(s): 1 NUMA node0 CPU(s): 0,1Vulnerabilities: Itlb multihit: KVM: Mitigation: VMX unsupported L1tf: Mitigation; PTE Inversion Mds: Mitigation; Clear CPU buffers; SMT Host state unknown Meltdown: Mitigation; PTI Mmio stale data: Mitigation; Clear CPU buffers; SMT Host state unknown Retbleed: Mitigation; IBRS Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization Spectre v2: Mitigation; IBRS, IBPB conditional, RSB filling Srbds: Unknown: Dependent on hypervisor status Tsx async abort: Not affected

           Architecture:CPU架构。

           CPU(s):逻辑CPU个数。

           Thread(s) per core:单核心线程数。

           Core(s) per socket:单颗CPU核心数。

           Socket(s):物理CPU个数。

           Hypervisor vendor:虚拟化平台。

 free(查看内存情况)

用法:free -h,以较好可读性显示内存相关情况。

demo@docker:~$ free -h total used free shared buff/cache availableMem: 1.9Gi 244Mi 1.4Gi 0.0Ki 226Mi 1.5GiSwap: 1.9Gi 0B 1.9Gi

           total:内存总数。

           used:已使用内存数。

           free:空闲内存数。

           shared:多进程共享内存总数。

           buff/cache:buffer 和 cache 使用的内存数。

           available:可用的内存数。

           Mem:物理内存情况。

           Swap:换页空间使用情况。

 ps(查看系统进程情况)

用法:ps -aux,可以和grep配合使用过滤进程信息。

           -a:显示所有进程,包括其他用户进程。

           -u:以用户为主的格式显示进程情况。

           -x:显示所有进程,不以终端机来区分。

demo@docker:~$ ps auxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.5 100244 11244 ? Ss 05:44 0:01 /sbin/initroot 2 0.0 0.0 0 0 ? S 05:44 0:00 [kthreadd]root 3 0.0 0.0 0 0 ? I< 05:44 0:00 [rcu_gp]root 4 0.0 0.0 0 0 ? I< 05:44 0:00 [rcu_par_gp]root 5 0.0 0.0 0 0 ? I< 05:44 0:00 [netns]root 6 0.0 0.0 0 0 ? I 05:44 0:00 [kworker/0:0-events]root 7 0.0 0.0 0 0 ? I< 05:44 0:00 [kworker/0:0H-events_highpri]root 9 0.0 0.0 0 0 ? I< 05:44 0:00 [kworker/0:1H-events_highpri]root 10 0.0 0.0 0 0 ? I< 05:44 0:00 [mm_percpu_wq]root 11 0.0 0.0 0 0 ? S 05:44 0:00 [rcu_tasks_rude_]root 12 0.0 0.0 0 0 ? S 05:44 0:00 [rcu_tasks_trace]root 13 0.0 0.0 0 0 ? S 05:44 0:00 [ksoftirqd/0]root 14 0.0 0.0 0 0 ? I 05:44 0:05 [rcu_sched]root 15 0.0 0.0 0 0 ? S 05:44 0:00 [migration/0]root 16 0.0 0.0 0 0 ? S 05:44 0:00 [idle_inject/0]root 18 0.0 0.0 0 0 ? S 05:44 0:00 [cpuhp/0].......

        USER:进程属于哪个用户。         PID:进程id号。         %CPU:进程CPU使用率。         %MEM:进程内存使用率。         VSZ:虚拟内存大小。         RSS:进程常驻内存中的数据大小。         TTY:进程使用的终端。         STAT:进程状态。         START:进程创建时间。         TIME:进程占用CPU时间。         COMMAND:创建进程的命令。

kill(终止进程)

用法:kill 进程号,kill -9 进程号是强制结束该进程。普通用户执行该命令终止管理员用户进程时需加sudo。

demo@docker:~$ kill -9 1111demo@docker:~$ kill 1112demo@docker:~$ sudo kill 1113 4、ip ip address show(查看网卡相关信息)

用法:可以简写为ip a,ip a s后可跟网卡名,只查看某个网卡信息。

demo@docker:~$ ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:0c:29:9c:ca:5f brd ff:ff:ff:ff:ff:ff altname enp2s0 inet 192.168.1.128/24 metric 100 brd 192.168.1.255 scope global dynamic ens32 valid_lft 1410sec preferred_lft 1410sec inet6 fe80::20c:29ff:fe9c:ca5f/64 scope link valid_lft forever preferred_lft foreverdemo@docker:~$ ip a s ens322: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:0c:29:1f:47:c7 brd ff:ff:ff:ff:ff:ff altname enp2s0 inet 192.168.147.130/24 metric 100 brd 192.168.147.255 scope global dynamic ens32 valid_lft 1360sec preferred_lft 1360sec inet6 fe80::20c:29ff:fe1f:47c7/64 scope link valid_lft forever preferred_lft forever 5、shutdown&reboot shutdown(关机)

用法:shutdown,不加参数默认一分钟之后关机。

           shutdown now,立刻关机。

           shutdown -r now,立刻关机并重新启动,-r参数代表重启。

           shutdown  5,5分钟之后关机。

           shutdown  15:00,15点关机。

           shutdown  -c,取消关机。

           普通用户执行该命令需要加sudo。

demo@docker:~$ sudo shutdownBroadcast message from root@docker on pts/1 (Sat 2022-09-03 05:37:02 UTC):The system is going down for poweroff at Sat 2022-09-03 05:38:02 UTC!Shutdown scheduled for Sat 2022-09-03 05:38:02 UTC, use 'shutdown -c' to cancel.demo@docker:~$ sudo shutdown -cBroadcast message from root@docker on pts/1 (Sat 2022-09-03 05:37:09 UTC):The system shutdown has been cancelleddemo@docker:~$ sudo shutdown 5Broadcast message from root@docker on pts/1 (Sat 2022-09-03 05:39:07 UTC):The system is going down for poweroff at Sat 2022-09-03 05:44:07 UTC!Shutdown scheduled for Sat 2022-09-03 05:44:07 UTC, use 'shutdown -c' to cancel. reboot(重启)

用法:reboot,立刻重启,无其他参数, 普通用户执行该命令需要加sudo。

sudo reboot 二、目录文件相关命令 1、cd&pwd&ls cd(目录切换)pwd(显示当前目录完整路径)

用法:cd 目录路径,可以是相对路径也可以是绝对路径。

           cd /,切换到根目录。

           cd ~,切换到当前用户家目录。

           cd ..,切换到上级目录。

           cd -,切换回上次所在目录。

           pwd,返回当前目录完整路径。

demo@docker:~$ cd /demo@docker:/$ cd ~demo@docker:~$ cd ..demo@docker:/home$ cd -/home/demodemo@docker:~$ pwd/home/demo ls(列出当前目录下目录和文件)

用法:ls,列出当前目录下的目录和文件,不包含隐藏文件。

           ls -l,列出文件并显示详细信息。

           ls -a,列出所有文件,包含隐藏文件。

demo@docker:~$ lsdocker docker.txtdemo@docker:~$ ls -ltotal 4drwxrwxr-x 2 demo demo 4096 Sep 3 11:06 docker-rw-rw-r-- 1 demo demo 0 Sep 3 11:07 docker.txtdemo@docker:~$ ls -a. .. .Xauthority .bash_history .bash_logout .bashrc .cache .config .profile .ssh .sudo_as_admin_successful docker docker.txtdemo@docker:~$ ls -altotal 44drwxr-x--- 6 demo demo 4096 Sep 3 11:07 .drwxr-xr-x 3 root root 4096 Sep 3 03:48 ..-rw------- 1 demo demo 104 Sep 3 10:32 .Xauthority-rw------- 1 demo demo 746 Sep 3 10:28 .bash_history-rw-r--r-- 1 demo demo 220 Jan 6 2022 .bash_logout-rw-r--r-- 1 demo demo 3771 Jan 6 2022 .bashrcdrwx------ 2 demo demo 4096 Sep 3 03:50 .cachedrwx------ 3 demo demo 4096 Sep 3 07:02 .config-rw-r--r-- 1 demo demo 807 Jan 6 2022 .profiledrwx------ 2 demo demo 4096 Sep 3 03:48 .ssh-rw-r--r-- 1 demo demo 0 Sep 3 04:04 .sudo_as_admin_successfuldrwxrwxr-x 2 demo demo 4096 Sep 3 11:06 docker-rw-rw-r-- 1 demo demo 0 Sep 3 11:07 docker.txt 2、mkdir&rmdir mkdir(新建目录)rmdir(删除目录)

用法:mkdir 目录名,创建目录。

           rmdir 目录名,删除目录。

demo@docker:~$ lsdocker docker.txtdemo@docker:~$ mkdir docker2demo@docker:~$ lsdocker docker.txt docker2demo@docker:~$ rmdir docker2demo@docker:~$ lsdocker docker.txt 3、cp&mv&rm cp(复制)

用法:cp 文件1 文件2,复制文件1为文件2。

           cp -R 目录1 目录2,递归复制目录1为目录2,包含目录中的文件。

           -d,复制时保留链接文件。            -p,复制时保留文件属性,修改时间和访问权限也复制到新文件中。            -R/-r,递归复制目录及文件,复制该目录下所有的子目录和文件。

           -a,此选项通常在复制目录时使用,其作用等于dpR参数组合。

demo@docker:~$ cp -Rdp docker docker2demo@docker:~$ ls -ltotal 8drwxrwxr-x 2 demo demo 4096 Sep 3 11:06 docker-rw-rw-r-- 1 demo demo 0 Sep 3 11:07 docker.txtdrwxrwxr-x 2 demo demo 4096 Sep 3 11:06 docker2 mv(移动文件、重命名文件)

用法:mv 文件1 文件2,若文件2已存在,则将文件1重命名为文件2,并覆盖文件2。若文件2不存在,则将文件1移动到文件2位置并重命名为文件2。

           mv 文件 目录,将文件移动到目标目录中。

           mv 目录1 目录2,若目录2已存在,则将目录1移动到目录2中。若目录2不存在,则将目录  1移动到目录2的位置并改名为目录2。

### mv 文件1 文件2,文件2已存在,则将文件1重命名为文件2,并覆盖文件2。demo@docker:~$ ls -ltotal 8-rw-rw-r-- 1 demo demo 4 Sep 3 14:45 1.txt-rw-rw-r-- 1 demo demo 17 Sep 3 14:45 2.txtdemo@docker:~$ mv 1.txt 2.txtdemo@docker:~$ ls -ltotal 4-rw-rw-r-- 1 demo demo 4 Sep 3 14:45 2.txt### mv 文件1 文件2,文件2不存在,则将文件1移动到文件2位置并重命名为文件2。demo@docker:~$ ls -ltotal 4-rw-rw-r-- 1 demo demo 4 Sep 3 14:45 1.txtdemo@docker:~$ mv 1.txt 2.txtdemo@docker:~$ ls -ltotal 4-rw-rw-r-- 1 demo demo 4 Sep 3 14:45 2.txt### mv 文件 目录,将文件移动到目录中。demo@docker:~$ ls -ltotal 8-rw-rw-r-- 1 demo demo 4 Sep 3 14:45 1.txtdrwxrwxr-x 2 demo demo 4096 Sep 3 14:48 dockerdemo@docker:~$ mv 1.txt dockerdemo@docker:~$ ls -ltotal 4drwxrwxr-x 2 demo demo 4096 Sep 3 14:49 dockerdemo@docker:~$ cd dockerdemo@docker:~/docker$ ls -ltotal 4-rw-rw-r-- 1 demo demo 4 Sep 3 14:45 1.txt### mv 目录1 目录2,目录2已存在,则将目录1移动到目录2中。demo@docker:~$ ls -ltotal 8drwxrwxr-x 2 demo demo 4096 Sep 3 14:50 docker1drwxrwxr-x 2 demo demo 4096 Sep 3 14:50 docker2demo@docker:~$ mv docker1 docker2demo@docker:~$ ls -ltotal 4drwxrwxr-x 3 demo demo 4096 Sep 3 14:50 docker2demo@docker:~$ cd docker2demo@docker:~/docker2$ ls -ltotal 4drwxrwxr-x 2 demo demo 4096 Sep 3 14:50 docker1### mv 目录1 目录2,目录2不存在,则将目录1移动到目录2的位置并改名为目录2。demo@docker:~$ ls -ltotal 4drwxrwxr-x 3 demo demo 4096 Sep 3 14:50 docker1demo@docker:~$ mv docker1 docker2demo@docker:~$ ls -ltotal 4drwxrwxr-x 3 demo demo 4096 Sep 3 14:50 docker2 rm(删除文件)

用法:rm 文件名,删除文件。rm -r 目录名,删除目录及目录中的文件。

           -i,删除前询问确认。

           -r,递归删除,目录及目录中的文件。

           -f,强制删除。

           可以和通配符一起使用,如rm -r a*,将会删除当前目录下所有a开头的文件和目录。

demo@docker:~$ ls -ltotal 8-rw-rw-r-- 1 demo demo 0 Sep 3 15:06 app1-rw-rw-r-- 1 demo demo 0 Sep 3 15:06 app2drwxrwxr-x 2 demo demo 4096 Sep 3 15:06 apple-rw-rw-r-- 1 demo demo 0 Sep 3 15:06 bed-rw-rw-r-- 1 demo demo 0 Sep 3 15:06 calldrwxrwxr-x 3 demo demo 4096 Sep 3 14:50 docker2demo@docker:~$ rm -rfi a*rm: remove regular empty file 'app1'? yrm: remove regular empty file 'app2'? yrm: remove directory 'apple'? y demo@docker:~$ ls -ltotal 4-rw-rw-r-- 1 demo demo 0 Sep 3 15:06 bed-rw-rw-r-- 1 demo demo 0 Sep 3 15:06 calldrwxrwxr-x 3 demo demo 4096 Sep 3 14:50 docker2 4、ln ln(建立链接)

用法:ln 源文件 目标文件,建立硬链接,硬链接删除源文件不影响目标文件。

           ln -s 源文件 目标文件,建立软连接,其实就是快捷方式,删除源文件,目标文件将无法使用。

### file2是file1的硬链接,file3是file1的软连接。demo@docker:~$ ls -ltotal 4-rw-rw-r-- 1 demo demo 5 Sep 3 15:19 file1demo@docker:~$ ln file1 file2demo@docker:~$ ln -s file1 file3demo@docker:~$ ls -ltotal 8-rw-rw-r-- 2 demo demo 5 Sep 3 15:19 file1-rw-rw-r-- 2 demo demo 5 Sep 3 15:19 file2lrwxrwxrwx 1 demo demo 5 Sep 3 15:20 file3 -> file1### 删除源文件file1后,file2仍可以使用,file1则不行。demo@docker:~$ rm file1demo@docker:~$ cat file2testdemo@docker:~$ cat file3cat: file3: No such file or directory 5、find find(查找文件)

用法:find /home/demo -name 文件名,从/home/demo目录开始按文件名查找文件。            find . -name a*,支持通配符,如从当前目录查找a开头的文件。            find /home/demo -mtime -1,从/home/demo目录开始查找24小时内修改过的文件。            find /home/demo -user 用户名,从/home/demo目录开始查找属主是某用户的文件。

### 从/home/demo查找名字为app1的文件。demo@docker:~$ find /home/demo -name "app1"/home/demo/app1### 从当前目录查找名字为a开头的文件。demo@docker:~$ find . -name "a*"./.ssh/authorized_keys./app2./app1### 从/home/demo中查找24小时内修改过的文件或目录。demo@docker:~$ find /home/demo -mtime -1/home/demo/home/demo/.config/home/demo/.config/procps/home/demo/.ssh/home/demo/.ssh/authorized_keys/home/demo/.cache/home/demo/.cache/motd.legal-displayed/home/demo/.bash_history/home/demo/.sudo_as_admin_successful/home/demo/app2/home/demo/app1/home/demo/.Xauthority/home/demo/file1### 从/home/demo中查找属主为demo的文件或目录。demo@docker:~$ find /home/demo -user demo/home/demo/home/demo/.config/home/demo/.config/procps/home/demo/.profile/home/demo/.ssh/home/demo/.ssh/authorized_keys/home/demo/.cache/home/demo/.cache/motd.legal-displayed/home/demo/.bash_history/home/demo/.sudo_as_admin_successful/home/demo/.bash_logout/home/demo/.bashrc/home/demo/app2/home/demo/app1/home/demo/.Xauthority/home/demo/file1 6、cat&head&tail&more cat(显示文件内容)head(显示文件开头n行的内容)tail(显示文件结尾n行的内容)more(显示文件内容,可以翻页)

用法:cat 文件名,显示文件内容。

          head 文件名,默认显示开头10行的内容。

          head -n N 文件名,显示文件开头N行的内容,N为整数。

          tail 文件名,默认显示结尾10行的内容。

          tail -n N 文件名,显示文件结尾N行的内容,N为整数。

          tail -f 文件名,动态查看文件结尾的内容。

          more 文件名,显示文件内容,可以翻页。

demo@docker:~$ cat file1 1234567891011121314151617181920demo@docker:~$ head -n 5 file1 12345demo@docker:~$ tail -n 5 file1 1617181920

总结

        操作了一下系统相关命令和目录文件相关命令,和CentOS相差不大,后面继续看看其他方面的命令。

文章地址:https://wenmayi.cn/post/863.html