Two system values control the library list initially assigned to new jobs. System value QSYSLIBL is always used to determine the system portion of the library list. QUSRLIBL, however, is used only if the job description used to start the job has *SYSVAL in the INLLIBL parameter. For example, when a user signs on, the job description used is the one referenced in the user profile's JOBD parameter. When you submit a job to batch using the SBMJOB command, the JOBD parameter names the job description.
System value QSYSLIBL can contain a list of up to 15 library names. These libraries are considered to be in the system portion of the library list. QSYSLIBL should always contain library QSYS.
If you change QSYSLIBL, existing jobs are not affected. New jobs started after the change, however, will use the new system portion of the library list.
You should consider creating a user library (call it ALTQSYS) and place it before QSYS in the system portion of the library list. Then you can place objects you have duplicated from QSYS and changed in this library. Your copies will be used instead of the original objects from QSYS. Using this technique, you can modify commands and other system objects without actually changing the originals.
System value QUSRLIBL can contain up to 25 library names, which will make up the user portion of the library list. If you use QUSRLIBL, make sure the job descriptions reference INLLIBL(*SYSVAL).
Different users have different library list requirements. As a general rule, it is better to use job descriptions to control the user portion of the library list.