目录
前言
一、系统相关命令
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 affectedArchitecture: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.9Gitotal:内存总数。
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相差不大,后面继续看看其他方面的命令。
上一篇:日期和时间函数
下一篇:如何安装黑苹果双系统