Linux常用命令
1 命令分类
用于实现某一类功能的指令或程序命令的执行依赖于解释器程序(例如:/bin/bash)
内部命令:属于Shell解释器的一部分
外部命令:独立于Shell解释器之外的程序文件
2 命令格式
Linux命令的通用命令格式
命令字 [选项] [参数]
选项及参数含义
选项:用于调节命令的具体功能
以 “-”引导短格式选项(单个字符),例如“-l”
以“--”引导长格式选项(多个字符),例如“--color”
多个短格式选项可以写在一起,只用一个“-”引导,例如“-al”
参数:命令操作的对象,如文件、目录名等
3 命令详解
3.1 线上查询及帮助命令
1、help,帮助命令。示例如下:
[root@localhost ~]# ls --help Usage: ls [OPTION]... [FILE]... List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort is specified. Mandatory arguments to long options are mandatory for short options too. -a, --all do not ignore entries starting with .
2、man,man - an interface to the on-line reference manuals,示例如下:
[root@localhost ~]# man ls LS(1) User Commands LS(1) NAME ls - list directory contents SYNOPSIS ls [OPTION]... [FILE]... DESCRIPTION List information about the FILEs (the current directory by default). Sort entries alphabet[m ically if none of -cftuvSUX nor --sort is specified. Mandatory arguments to long options are mandatory for short options too. -a, --all do not ignore entries starting with .
3.2 系统管理
3.2.1 查看系统相关命令
1、uname ,uname - print system information。查看系统内核信息 -r查看内核版本号 -a 显示详细信息
[root@localhost ~]# uname -r 3.10.0-327.el7.x86_64 [root@localhost ~]# uname -a Linux localhost.localdomain 3.10.0-327.el7.x86_64 #1 SMP Thu Oct 29 17:29:29 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux [root@localhost ~]#
2、hostname ,hostname - show or set the system's host name,查看或临时修改主机名称
[root@localhost ~]# hostname
localhost.localdomain
3、ifconfig ,ifconfig - configure a network interface,查看系统ip信息
[root@localhost ~]# ifconfig eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.225.137 netmask 255.255.255.0 broadcast 192.168.225.255 inet6 fe80::20c:29ff:fe51:1c38 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:51:1c:38 txqueuelen 1000 (Ethernet) RX packets 1488 bytes 125705 (122.7 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1065 bytes 306767 (299.5 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 0 (Local Loopback) RX packets 4 bytes 340 (340.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 4 bytes 340 (340.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
4、cat /proc/cpuinfo 查看系统cpu信息
[root@localhost ~]# cat /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 25 model : 68 model name : AMD Ryzen 7 6800H with Radeon Graphics stepping : 1 microcode : 0xffffffff cpu MHz : 3193.889 cache size : 512 KB physical id : 0 siblings : 1 core id : 0 cpu cores : 1 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext pdpe1gb rdtscp lm constant_tsc rep_good nopl tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm cr8_legacy abm sse4a misalignsse osvw topoext arat fsgsbase bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves bogomips : 6387.77 TLB size : 2560 4K pages clflush size : 64 cache_alignment : 64 address sizes : 45 bits physical, 48 bits virtual power management:
5、cat /proc/meminfo 查看系统内存信息
[root@localhost ~]# cat /proc/meminfo MemTotal: 1868660 kB MemFree: 1349108 kB MemAvailable: 1414636 kB Buffers: 932 kB Cached: 174812 kB SwapCached: 0 kB Active: 232980 kB Inactive: 143800 kB Active(anon): 201524 kB Inactive(anon): 8468 kB Active(file): 31456 kB Inactive(file): 135332 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 2097148 kB SwapFree: 2097148 kB Dirty: 0 kB Writeback: 0 kB AnonPages: 201056 kB Mapped: 35376 kB Shmem: 8956 kB Slab: 62512 kB SReclaimable: 22724 kB SUnreclaim: 39788 kB KernelStack: 9392 kB PageTables: 9576 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 3031476 kB Committed_AS: 752652 kB VmallocTotal: 34359738367 kB VmallocUsed: 189664 kB VmallocChunk: 34359529980 kB HardwareCorrupted: 0 kB AnonHugePages: 108544 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 59264 kB DirectMap2M: 2037760 kB DirectMap1G: 0 kB [root@localhost ~]#
6、halt ,halt, poweroff, reboot - Halt, power-off or reboot the machine,关机
7、reboot 重启
8、pwd ,pwd - print name of current/working directory,查看工作目录
[root@localhost ~]# pwd
/root
9、cd ,切换目录
[root@localhost ~]# cd /home
[root@localhost home]# cd ..
[root@localhost /]# pwd
10、du ,du - estimate file space usage,统计目录及文件空间占用情况 -sh统计目录大小,下面示例统计home目录大小。
[root@localhost /]# du -sh /home 2.8M /home
3.2.2 添加用户账号
useradd命令
格式:useradd [选项]... 用户名
常用命令选项
-u:指定 UID 标记号
-d:指定宿主目录,缺省为 /home/用户名
-e:指定帐号失效时间
-g:指定用户的基本组名(或UID号)
-G:指定用户的附加组名(或GID号)
-M:不为用户建立并初始化宿主目录
-s:指定用户的登录Shell
[root@localhost ~]# useradd -d /ftphome/mike -g mike -G ftpuser -s /sbin/nologin mike
root:x:0:0:root:/root:/bin/bash UID和GID为0就是管理员。
添加账号 [root@localhost snow]# user add xy -bash: user: command not found [root@localhost snow]# useradd xy [root@localhost snow]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin systemd-network:x:998:996:systemd Network Management:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin polkitd:x:997:995:User for polkitd:/:/sbin/nologin libstoragemgmt:x:996:993:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin abrt:x:173:173::/etc/abrt:/sbin/nologin tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin chrony:x:995:992::/var/lib/chrony:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin snow:x:1000:1000:RedHat:/home/snow:/bin/bash test:x:1001:1001::/home/test:/bin/bash xy:x:1002:1002::/home/xy:/bin/bash [root@localhost snow]#
/sbin/nologin代表没法调用shell
3.2.3 删除用户账号——userdel
userdel命令
格式:userdel [-r] 用户名
添加 -r 选项时,表示连用户的宿主目录一并删除
[root@localhost ~]# userdel -r stu01
[root@localhost ~]# ls -ld /home/stu01/
ls: /home/stu01/: 没有那个文件或目录
[root@localhost snow]# ls /home snow test xy [root@localhost snow]# userdel -r xy [root@localhost snow]# ls /home snow test
3.2.4 查看进程
ps -aux 查看系统进程
top 动态查看系统进程,q退出
kill 1234 杀死进程1234
3.2 文件管理
3.2.1 目录操作命令ls
ls命令
用途:列表(List)显示目录内容
格式:ls [选项]... [目录或文件名]
常用命令选项
-l :以长格式显示
-a:显示所有子目录和文件的信息,包括隐藏文件
-A:类似于“-a”,但不显示“.”和“..”目录的信息
-d:显示目录本身的属性
-h:以更易读的字节单位(K、M等)显示信息
-R:递归显示内容
--color:以颜色区分不同类型文件
文件属性 文件数 拥有者 所属的group 文件大小 建档日期 文件名(七个栏位)
drwxr-xr-x. 3 root root 17 Nov 28 23:49 home
第一个栏位,表示文件的属性。Linux的文件基本上分为三个属性:可读(r),可写(w),可执行(x)。但是这里有十个格子可以添(具体程序实现时,实际上是十个bit位)。第一个小格是特殊表示格,表示目录或连结文件等等,d表示目录,例如drwx------;l表示连结文件,如 lrwxrwxrwx;如果是以一横"-"表示,则表示这是文件。其余剩下的格子就以每3格为一个单位。因为Linux是多用户多任务系统,所以一个文件可能同时被许多人使用,所以我们一定要设好每个文件的权限,其文件的权限位置排列顺序是(以-rwxr-xr-x为例):
rwx(Owner)r-x(Group)r-x(Other)
这个例子表示的权限是:使用者自己可读,可写,可执行;同一组的用户可读,不可写,可执行;其它用户可读,不可写,可执行。另外,有一些程序属性的执行部分不是x,而是s,这表示执行这个程序的使用者,临时可以有和拥有者一样权力的身份来执行该程序。一般出现在系统管理之类的指令或程序,让使用者执行时,拥有root身份。
第二个栏位,表示文件个数。如果是文件的话,那这个数目自然是1了,如果是目录的话,那它的数目就是该目录中的文件个数了。
第三个栏位,表示该文件或目录的拥有者。若使用者目前处于自己的home,那这一栏大概都是它的账号名称。
第四个栏位,表示所属的组(group)。每一个使用者都可以拥有一个以上的组,不过大部分的使用者应该都只属于一个组,只有当系统管理员希望给予某使用者特殊权限时,才可能会给他另一个组。
第五栏位,表示文件大小。文件大小用byte来表示,而空目录一般都是1024byte,你当然可以用其它参数使文件显示的单位不同,如使用ls -k就是用kb莱显示一个文件的大小单位,不过一般我们还是以byte为主。
第六个栏位,表示创建日期。以"月,日,时间"的格式表示,如Aug 15 5:46表示8月15日早上5:46分。
第七个栏位,表示文件名。我们可以用ls -a显示隐藏的文件名。
[root@localhost /]# ls -l total 36 lrwxrwxrwx. 1 root root 7 Nov 28 23:41 bin -> usr/bin dr-xr-xr-x. 3 root root 4096 Nov 28 23:50 boot drwxr-xr-x. 19 root root 3160 Nov 30 22:18 dev drwxr-xr-x. 95 root root 8192 Nov 30 22:18 etc drwxr-xr-x. 4 root root 28 Nov 30 16:17 home lrwxrwxrwx. 1 root root 7 Nov 28 23:41 lib -> usr/lib lrwxrwxrwx. 1 root root 9 Nov 28 23:41 lib64 -> usr/lib64 drwxr-xr-x. 2 root root 6 May 25 2015 media drwxr-xr-x. 2 root root 6 May 25 2015 mnt drwxr-xr-x. 3 root root 15 Nov 28 23:45 opt dr-xr-xr-x. 436 root root 0 Nov 30 22:17 proc dr-xr-x---. 4 root root 4096 Nov 30 18:45 root drwxr-xr-x. 28 root root 840 Nov 30 22:18 run lrwxrwxrwx. 1 root root 8 Nov 28 23:41 sbin -> usr/sbin drwxr-xr-x. 2 root root 6 May 25 2015 srv dr-xr-xr-x. 13 root root 0 Nov 30 22:17 sys -rwxr-xr-x. 1 root root 4 Nov 30 15:44 test drwxrwxrwt. 11 root root 4096 Nov 30 22:26 tmp drwxr-xr-x. 13 root root 4096 Nov 28 23:41 usr drwxr-xr-x. 21 root root 4096 Nov 30 22:17 var
3.2.2 权限设置命令
1、chmod
功能说明:变更文件或目录的权限。
语 法:chmod [-cfRv][--help][--version][<权限范围>+/-/=<权限设置...>][文件或目录...] 或 chmod [-cfRv][--help][--version][数字代号][文件或目录...] 或 chmod [-cfRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]
补充说明:在UNIX系统家族里,文件或目录权限的控制分别以读取,写入,执行3种一般权限来区分,另有3种特殊权限可供运用,再搭配拥有者与所属群组管理权限范围。您可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。符号连接的权限无法变更,如果您对符号连接修改权限,其改变会作用在被连接的原始文件。权限范围的表示法如下:
u:User,即文件或目录的拥有者。
g:Group,即文件或目录的所属群组。
o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围。
a:All,即全部的用户,包含拥有者,所属群组以及其他用户。
有关权限代号的部分,列表于下:
r:读取权限,数字代号为"4"。
w:写入权限,数字代号为"2"。
x:执行或切换权限,数字代号为"1"。
-:不具任何权限,数字代号为"0"。
s:特殊?b>功能说明:变更文件或目录的权限。
参 数:
-c或--changes 效果类似"-v"参数,但仅回报更改的部分。
-f或--quiet或--silent 不显示错误信息。
-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-v或--verbose 显示指令执行过程。
--help 在线帮助。
--reference=<参考文件或目录> 把指定文件或目录的权限全部设成和参考文件或目录的权限相同
--version 显示版本信息。
用法:
chmod u+w 给所有者用户添加写入权限
chmod g-r 给所在分组去掉读取权限
[root@localhost test]# chmod g+w 1.txt [root@localhost test]# ls -l total 0 -rw-rw-r--. 1 root root 0 Nov 30 23:32 1.txt [root@localhost test]# chmod g-r 1.txt [root@localhost test]# ls -l total 0 -rw--w-r--. 1 root root 0 Nov 30 23:32 1.txt [root@localhost test]#
2、chown
功能说明:变更文件或目录的拥有者或所属群组。
语 法:chown [-cfhRv][--dereference][--help][--version][拥有者.<所属群组>][文件或目录..] 或chown [-chfRv][--dereference][--help][--version][.所属群组][文件或目录... ...] 或chown [-cfhRv][--dereference][--help][--reference=<参考文件或目录>][--version][文件或目录...]
补充说明:在UNIX系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。您可以使用chown指令去变更文件与目录的拥有者或所属群组,设置方式采用用户名称或用户识别码皆可,设置群组则用群组名称或群组识别码。
参 数:
-c或--changes 效果类似"-v"参数,但仅回报更改的部分。
-f或--quite或--silent 不显示错误信息。
-h或--no-dereference 之对符号连接的文件作修改,而不更动其他任何相关文件。
-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-v或--version 显示指令执行过程。
--dereference 效果和"-h"参数相同。
--help 在线帮助。
--reference=<参考文件或目录> 把指定文件或目录的拥有者与所属群组全部设成和参考文件或目 录的拥有者与所属群组相同。
--version 显示版本信息。
把1.txt的所有者和组设置为test11用户。
[root@localhost test]# ls -l total 0 -rw--w-r--. 1 root root 0 Nov 30 23:32 1.txt [root@localhost test]# useradd test11 [root@localhost test]# chown test11:test11 1.txt [root@localhost test]# ls -l total 0 -rw--w-r--. 1 test11 test11 0 Nov 30 23:32 1.txt
3.2.3 文件相关
1、touch 创建文件或跟新文件时间标记,touch *更新文件时间标记为当前时间。
[root@localhost test]# ls -l total 0 -rw--w-r--. 1 test11 test11 0 Nov 30 23:32 1.txt -rw-r--r--. 1 root root 0 Nov 30 23:45 2.txt [root@localhost test]# touch * [root@localhost test]# ls -l total 0 -rw--w-r--. 1 test11 test11 0 Nov 30 23:45 1.txt -rw-r--r--. 1 root root 0 Nov 30 23:45 2.txt [root@localhost test]#
2、mkdir 创建目录命令 -p递归创建目录
3、cp 复制文件或目录 -r递归复制 -f强制覆盖 -p保持源文件属性不变 -i覆盖文件目录提醒
4、rm 删除文件或目录 -r递归删除 -f 强制删除不提醒 -i 删除时用户提醒
5、mv 移动文件或目录
6、wc 统计文件中出现的单词数量字节数量和行数
7、cat 查看文件内容命令
8、find命令
功能说明:查找文件或目录。
语 法:find [目录...][-amin <分钟>][-anewer <参考文件或目录>][-atime <24小时数>][-cmin <分钟>][-cnewer <参考文件或目录>][-ctime <24小时数>][-daystart][-depyh][-empty][-exec <执行指令>][-false][-fls <列表文件>][-follow][-fprint <列表文件>][-fprint0 <列表文件>][-fprintf <列表文件><输出格式>][-fstype <文件系统类型>][-gid <群组识别码>][-group <群组名称>][-help][-ilname <范本样式>][-iname <范本样式>][-inum <inode编号>][-ipath <范本样式>][-iregex <范本样式>][-links <连接数目>][-lname <范本样式>][-ls][-maxdepth <目录层级>][-mindepth <目录层级>][-mmin <分钟>][-mount]
[-mtime <24小时数>][-name <范本样式>][-newer <参考文件或目录>][-nogroup][noleaf] [-nouser][-ok <执行指令>][-path <范本样式>][-perm <权限数值>][-print][-print0][-printf <输出格式>][-prune][-regex <范本样式>][-size <文件大小>][-true][-type <文件类型>][-uid <用户识别码>][-used <日数>][-user <拥有者名称>][-version][-xdev][-xtype <文件类型>]
补充说明:find指令用于查找符合条件的文件。任何位于参数之前的字符串都将被视为欲查找的目录。
参 数:
-amin<分钟> 查找在指定时间曾被存取过的文件或目录,单位以分钟计算。
-anewer<参考文件或目录> 查找其存取时间较指定文件或目录的存取时间更接近现在的文件或目录。
-atime<24小时数> 查找在指定时间曾被存取过的文件或目录,单位以24小时计算。
-cmin<分钟> 查找在指定时间之时被更改的文件或目录。
-cnewer<参考文件或目录> 查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录。
-ctime<24小时数> 查找在指定时间之时被更改的文件或目录,单位以24小时计算。
-daystart 从本日开始计算时间。
-depth 从指定目录下最深层的子目录开始查找。
-expty 寻找文件大小为0 Byte的文件,或目录下没有任何子目录或文件的空目录。
-exec<执行指令> 假设find指令的回传值为True,就执行该指令。
-false 将find指令的回传值皆设为False。
-fls<列表文件> 此参数的效果和指定"-ls"参数类似,但会把结果保存为指定的列表文件。
-follow 排除符号连接。
-fprint<列表文件> 此参数的效果和指定"-print"参数类似,但会把结果保存成指定的列表文件。
-fprint0<列表文件> 此参数的效果和指定"-print0"参数类似,但会把结果保存成指定的列表文件。
-fprintf<列表文件><输出格式> 此参数的效果和指定"-printf"参数类似,但会把结果保存成指定的列表文件。
-fstype<文件系统类型> 只寻找该文件系统类型下的文件或目录。
-gid<群组识别码> 查找符合指定之群组识别码的文件或目录。
-group<群组名称> 查找符合指定之群组名称的文件或目录。
-help或--help 在线帮助。
-ilname<范本样式> 此参数的效果和指定"-lname"参数类似,但忽略字符大小写的差别。
-iname<范本样式> 此参数的效果和指定"-name"参数类似,但忽略字符大小写的差别。
-inum<inode编号> 查找符合指定的inode编号的文件或目录。
-ipath<范本样式> 此参数的效果和指定"-ipath"参数类似,但忽略字符大小写的差别。
-iregex<范本样式> 此参数的效果和指定"-regexe"参数类似,但忽略字符大小写的差别。
-links<连接数目> 查找符合指定的硬连接数目的文件或目录。
-iname<范本样式> 指定字符串作为寻找符号连接的范本样式。
-ls 假设find指令的回传值为True,就将文件或目录名称列出到标准输出。
-maxdepth<目录层级> 设置最大目录层级。
-mindepth<目录层级> 设置最小目录层级。
-mmin<分钟> 查找在指定时间曾被更改过的文件或目录,单位以分钟计算。
-mount 此参数的效果和指定"-xdev"相同。
-mtime<24小时数> 查找在指定时间曾被更改过的文件或目录,单位以24小时计算。
-name<范本样式> 指定字符串作为寻找文件或目录的范本样式。
-newer<参考文件或目录> 查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录。
-nogroup 找出不属于本地主机群组识别码的文件或目录。
-noleaf 不去考虑目录至少需拥有两个硬连接存在。
-nouser 找出不属于本地主机用户识别码的文件或目录。
-ok<执行指令> 此参数的效果和指定"-exec"参数类似,但在执行指令之前会先询问用户,若回答"y"或"Y",则放弃执行指令。
-path<范本样式> 指定字符串作为寻找目录的范本样式。
-perm<权限数值> 查找符合指定的权限数值的文件或目录。
-print 假设find指令的回传值为True,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称之前皆有"./"字符串。
-print0 假设find指令的回传值为True,就将文件或目录名称列出到标准输出。格式为全部的名称皆在同一行。
-printf<输出格式> 假设find指令的回传值为True,就将文件或目录名称列出到标准输出。格式可以自行指定。
-prune 不寻找字符串作为寻找文件或目录的范本样式。
-regex<范本样式> 指定字符串作为寻找文件或目录的范本样式。
-size<文件大小> 查找符合指定的文件大小的文件。
-true 将find指令的回传值皆设为True。
-typ<文件类型> 只寻找符合指定的文件类型的文件。
-uid<用户识别码> 查找符合指定的用户识别码的文件或目录。
-used<日数> 查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以日计算。
-user<拥有者名称> 查找符合指定的拥有者名称的文件或目录。
-version或--version 显示版本信息。
-xdev 将范围局限在先行的文件系统中。
-xtype<文件类型> 此参数的效果和指定"-type"参数类似,差别在于它针对符号连接检查。
[root@localhost /]# find /etc -name "php.*" /etc/httpd/conf.d/php.conf /etc/php.d /etc/php.ini [root@localhost /]# find /etc -name "resol*.conf" /etc/resolv.conf [root@localhost /]#
9、vi编辑器。
vi是一个较大的UNIX命令,在启动的时候也有它自己的选项和参数
基本语法:
vi [-options] [+[n]] [file]
常用选项有:-r, -R
-r用于恢复系统突然崩溃时正在编辑的文件
-R用于以只读方式打开文件
+n用来指明进入vi后直接位于文件的第n行,如果不指定n,则位于最后一行
(1)打开命令:
vi+filename (还有各种打开的姿势,只不过我比较顺手这个)
(2)退出命令:
:q 退出而且不保存修改的内容
:q! 强制退出不保存修改的内容
:wq 退出并且保存修改的内容
:wq! 强制保存修改的内容然后退出(修改了只读文件会用到)
:X! 执行并退出
ZZ 退出并且保存修改的内容,相当于:wq,看个人习惯
(3)光标移动命令
个人比较喜欢上下左右方向键,字母 h (左) ,j (下), k(上),l(右)也是可以的
^ 光标移到行首
$ 光标移到行尾
shift+g 光标移动到文件最后一行
gg 光标移动到文件第一行
(4)控制命令
打开一个内容很多的文件的时候经常用到。
Ctrl+d 向下滚半屏
Ctrl+u 向上滚半屏
Ctrl+f 向下滚全屏
Ctrl+b 向上滚全屏
(5)编辑命令
主要是进入编辑状态,也就是insert状态
i 光标当前位置开始编辑
o 光标的下一行开始编辑
shift+o 光标的上一行开始编辑
(6)删除命令
dd 删除一行,可以带个数字,如6dd,表示向下删除6行
d$ 删除光标到行尾的内容(也可以使用ctrl+d)
d^ 删除光标到行首的内容
x 删除光标位置的字符(向后删除)
shift+x 删除光标位置的字符(向前删除)
(7)替换命令
r 按esc退出insert状态再按个r,然后再输入一个字符,将会替换光标位置的字符
R 跟r一样,只不过是可以替换多个字符
:s/aa/bb/g 替换当前行的所有aa将会变成bb
:%s/aa/bb/g 替换整个文件的,所有aa将会变成bb
:n1,n2s/aa/bb/g 替换n1到n2行之间所有的aa变成bb
(8)查找命令
/String 查找一个字符串(向下开始)
?String 查找一个字符串(向上开始)
n 向后查找下一个
shift+n 向前查找下一个
(9)粘贴复制命令
yw 复制一个单词
yy 复制一行,和删除dd一样可以带个数字,6yy复制六行(向下复制6行)
p 粘贴到光标位置的下一行
shift+p 粘贴到光标位置的上一行
(10)同时打开两个文件
比如:aa.txt ss.txt
打开第一个文件vi aa.txt然后输入下面的命令
:sp ss.txt 此时就在同一个窗口打开另外一个ss.txt
Ctrl+w 进行两个文件上下窗口切换(需要再按上下方向键)
(11)其他常用命令
:e! 重新加载文件,再查看日志文件的时候可以用,不断在变化的文件。
shift+j 将下一行拼接到上一行
u 撤销
:gg=G 全文自动缩进
:set nu 显示行号
:n 跳转到第n行(按回车才会跳)
Ctrl+g 会在显示屏的底部显示文件名字和总的行数,当前光标的位置行号
这个将会改变光标位置的字符的大小写
Ctrl +a 跳到当前命令行里的首位,比如 cd /etc/profile ,这个是一个文件,我想改成vi /etc/profile 就可以按 ctrl+a 光标就会移到cd位置,如果碰到比较长的命令,这个还是非常的实用的
ctrl+e 跳到当前命令行的末尾。和ctrl+a 相反
搜索了几个命令可以对标点内的内容进行操作,感觉还是比较好用,收藏下:
ci’、ci"、ci(、ci[、ci{、ci< - 分别更改这些配对标点符号中的文本内容
di’、di"、di(或dib、di[、di{或diB、di< - 分别删除这些配对标点符号中的文本内容
yi’、yi"、yi(、yi[、yi{、yi< - 分别复制这些配对标点符号中的文本内容
vi’、vi"、vi(、vi[、vi{、vi< - 分别选中这些配对标点符号中的文本内容
按住shift和输入冒号:进入底行模式:
输入2光标会进入第2行
:2
输入2d删除第2行
:2d
3.3 文件传输
3.3 文档编辑
3.4 磁盘管理
3.5 磁盘维护
3.6 网络通讯
3.6.1 ifconfig
功能说明:显示或设置网络设备。
语 法:ifconfig [网络设备][down up -allmulti -arp -promisc][add<地址>][del<地址>][<hw<网络设备类型><硬件地址>][io_addr<I/O地址>][irq<IRQ地址>][media<网络媒介类型>][mem_start<内存地址>][metric<数目>][mtu<字节>][netmask<子网掩码>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>][IP地址]
补充说明:ifconfig可设置网络设备的状态,或是显示目前的设置。
参 数:
add<地址> 设置网络设备IPv6的IP地址。
del<地址> 删除网络设备IPv6的IP地址。
down 关闭指定的网络设备。
<hw<网络设备类型><硬件地址> 设置网络设备的类型与硬件地址。
io_addr<I/O地址> 设置网络设备的I/O地址。
irq<IRQ地址> 设置网络设备的IRQ。
media<网络媒介类型> 设置网络设备的媒介类型。
mem_start<内存地址> 设置网络设备在主内存所占用的起始地址。
metric<数目> 指定在计算数据包的转送次数时,所要加上的数目。
mtu<字节> 设置网络设备的MTU。
netmask<子网掩码> 设置网络设备的子网掩码。
tunnel<地址> 建立IPv4与IPv6之间的隧道通信地址。
up 启动指定的网络设备。
-broadcast<地址> 将要送往指定地址的数据包当成广播数据包来处理。
-pointopoint<地址> 与指定地址的网络设备建立直接连线,此模式具有保密功能。
-promisc 关闭或启动指定网络设备的promiscuous模式。
[IP地址] 指定网络设备的IP地址。
[网络设备] 指定网络设备的名称。
3.6.2 route –n 查看系统路由信息
[root@localhost /]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.225.2 0.0.0.0 UG 100 0 0 eno16777736 192.168.225.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777736
3.6.3 netstat命令
查看系统的网络连接状态、路由表、接口统计等信息
格式:netstat [选项]
常用选项:
-a:显示所有活动连接
-n:以数字形式显示
-p:显示进程信息
-t:查看TCP协议相关信息
-u:查看UDP协议相关信息
-r:显示路由表信息
查看内网其他服务器
[root@localhost snow]# netstat -tnlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1500/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1811/master tcp6 0 0 :::22 :::* LISTEN 1500/sshd tcp6 0 0 ::1:25 :::* LISTEN 1811/master [root@localhost snow]# netstat -an Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp 0 52 192.168.225.137:22 192.168.225.1:65428 ESTABLISHED tcp6 0 0 :::22 :::* LISTEN tcp6 0 0 ::1:25 :::* LISTEN udp 0 0 0.0.0.0:68 0.0.0.0:* udp 0 0 0.0.0.0:7345 0.0.0.0:* udp 0 0 127.0.0.1:323 0.0.0.0:* udp6 0 0 :::56006 :::* udp6 0 0 ::1:323 :::* raw6 0 0 :::58 :::* 7 Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 16 [ ] DGRAM 8192 /dev/log unix 2 [ ACC ] STREAM LISTENING 20884 private/tlsmgr unix 2 [ ACC ] STREAM LISTENING 20887 private/rewrite unix 2 [ ACC ] STREAM LISTENING 20890 private/bounce unix 2 [ ACC ] STREAM LISTENING 20893 private/defer unix 2 [ ACC ] STREAM LISTENING 13600 /run/lvm/lvmetad.socket
3.7 系统设置
3.8备份压缩命令
3.3.1 压缩命令 gzip bzip2
只针对单个文件压缩或
-9 显示高压缩比
-d 释放压缩文件
gzip 文件名 压缩文件 格式为后缀有.gz
bzip2 文件名 压缩成的文件名 格式为 文件名.bz2 它相对与gzip 压缩率更高
压缩文件 [root@localhost snow]# gzip 2.txt 2.txt.gz gzip: 2.txt.gz already has .gz suffix -- unchanged [root@localhost snow]# ll total 8 -rwxr-xr-x. 1 test test 4 Nov 30 15:41 1.txt -rw-r--r--. 1 root root 55 Nov 30 15:50 2.txt.gz -rw-r--r--. 1 root root 0 Nov 30 15:41 3.txt -rw-r--r--. 1 root root 0 Nov 30 15:41 4.txt -rw-r--r--. 1 root root 0 Nov 30 15:41 5.txt drwxr-xr-x. 2 root root 18 Nov 30 15:45 test
解压缩
[root@localhost snow]# gzip -d 2.txt.gz
3.3.2 归档命令 tar
tar 归档命令 释放归档文件 没有压缩功能
格式 tar 选项 归档文件名 源文件或目录
-c 创建归档文件 扩展名为.tar
-v 输出详细信息 -f 表示使用归档文件 如 -cvf 创建归档文件
tar -cvf 4.tar 1 2 3 将文件1 2 3 打包归档为4.tar
tar -xvf 4.tar 解包归档文件4.tar -xvf 解包归档文件
-x 解开归档文件 -t 列表查看包内的文件(不释放解包)
tar -tvf 4.tar -r 追加TAR文件至归档结尾
tar -rvf 4.tar 5 把5加入4.tar
-p 解包时保留原始文件及目录的权限
-C (大) 解包时指定释放的目标文件夹
-z 调用gzip 程序 进行解压或压缩 -j 调用bzip2 程序进行压缩或解压
tar -cvzf test.tar.gz 被压缩的文件1 被压缩的文件2 创建归档压缩文件 后缀为gz
tar -cvjf test.tar.bz2 被压缩的文件1 被压缩的文件2 创建归档压缩文件 后缀为bz2
tar -xvzf test.tar.gz -C /usr/src 解压释放归档到 /usr/src 里面
tar -xvjf test.tar.bz2 -C /usr/src 解压释放归档到 /usr/src 里面
打包: root@localhost snow]# cp 2.txt a [root@localhost snow]# cp 2.txt b [root@localhost snow]# cp 2.txt c [root@localhost snow]# ll total 20 -rwxr-xr-x. 1 test test 4 Nov 30 15:41 1.txt -rw-r--r--. 1 root root 28 Nov 30 15:50 2.txt -rw-r--r--. 1 root root 0 Nov 30 15:41 3.txt -rw-r--r--. 1 root root 0 Nov 30 15:41 4.txt -rw-r--r--. 1 root root 0 Nov 30 15:41 5.txt -rw-r--r--. 1 root root 28 Nov 30 16:07 a -rw-r--r--. 1 root root 28 Nov 30 16:07 b -rw-r--r--. 1 root root 28 Nov 30 16:07 c drwxr-xr-x. 2 root root 18 Nov 30 15:45 test [root@localhost snow]# tar -cvf x.tar a b c a b c [root@localhost snow]# ll total 32 -rwxr-xr-x. 1 test test 4 Nov 30 15:41 1.txt -rw-r--r--. 1 root root 28 Nov 30 15:50 2.txt -rw-r--r--. 1 root root 0 Nov 30 15:41 3.txt -rw-r--r--. 1 root root 0 Nov 30 15:41 4.txt -rw-r--r--. 1 root root 0 Nov 30 15:41 5.txt -rw-r--r--. 1 root root 28 Nov 30 16:07 a -rw-r--r--. 1 root root 28 Nov 30 16:07 b -rw-r--r--. 1 root root 28 Nov 30 16:07 c drwxr-xr-x. 2 root root 18 Nov 30 15:45 test -rw-r--r--. 1 root root 10240 Nov 30 16:07 x.tar [root@localhost snow]# gzip x.tar x.tar.gz
[root@localhost snow]# ll
total 24
-rwxr-xr-x. 1 test test 4 Nov 30 15:41 1.txt
-rw-r--r--. 1 root root 28 Nov 30 15:50 2.txt
-rw-r--r--. 1 root root 0 Nov 30 15:41 3.txt
-rw-r--r--. 1 root root 0 Nov 30 15:41 4.txt
-rw-r--r--. 1 root root 0 Nov 30 15:41 5.txt
-rw-r--r--. 1 root root 28 Nov 30 16:07 a
-rw-r--r--. 1 root root 28 Nov 30 16:07 b
-rw-r--r--. 1 root root 28 Nov 30 16:07 c
drwxr-xr-x. 2 root root 18 Nov 30 15:45 test
-rw-r--r--. 1 root root 183 Nov 30 16:07 x.tar.gz
解压缩:
[root@localhost snow]# rm -rf a b c
[root@localhost snow]# ls
1.txt 2.txt 3.txt 4.txt 5.txt test x.tar.gz
[root@localhost snow]# tar zxvf x.tar.gz
a
b
c
[root@localhost snow]# ls
1.txt 2.txt 3.txt 4.txt 5.txt a b c test x.tar.gz
[root@localhost snow]#
3.9 其他
3.9.1 网络接口配置文件
/etc/sysconfig/network-scripts/ 目录下的
ifcfg-eth0:第1块以太网卡的配置文件
ifcfg-eth1:第2块以太网卡的配置文件
修改了配置文件要
重启网络服务
Service network restart
[root@localhost ~]# ls /etc/sysconfig/network-scripts/ifcfg-*
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-lo
[root@localhost ~]#vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.4.1
NETMASK=255.255.255.0
GATEWAY=192.168.4.2
3.9.2 域名解析配置文件
/etc/resolv.conf 文件
用途:保存本机需要使用的DNS服务器的IP地址
[root@localhost snow]# cat /etc/resolv.conf # Generated by NetworkManager search localdomain nameserver 192.168.225.2
3.9.3 软件安装命令
1、安装或升级RPM软件
格式:rpm [选项] RPM包文件...
用法:不同选项适用于不同情况
-i:安装一个新的rpm软件包
-U:升级某个rpm软件,若原本未装,则进行安装
-F:更新某个rpm软件,若原本未装,则放弃安装
卸载指定的RPM软件
格式:rpm -e 软件名
安装软件包:可能出现依赖关系,安装A必须先安装B等。
2、配置yum源
yum -y install httpd 使用yum安装httpd软件包
yum –y remove httpd 使用yum移除httpd软包
3、Deb软件包安装
dpkg –i xxx.deb 安装软件包
dpkg –r xxx.deb 移除软件包
3.9.4 源代码安装
步骤1:tar解包
用途:解压并释放源代码包到指定的目录
步骤2:./configure 配置
用途:设置安装目录、安装模块等选项
步骤3:make 编译
用途:生成可执行的二进制文件
步骤4:make install 安装
用途:复制二进制文件到系统,配置应用环境
参考文章:
https://blog.csdn.net/Georgetan888/article/details/123026891